macOS App 使用 App Store 的配置文件手动签名得到错误代码签名无效

Posted

技术标签:

【中文标题】macOS App 使用 App Store 的配置文件手动签名得到错误代码签名无效【英文标题】:macOS App manually signing with provisioning profile for App Store got error Code signature invalid 【发布时间】:2019-01-10 02:25:56 【问题描述】:

我尝试使用配置文件在 macOS 中使用手动签名。但是每次我尝试运行它都会因错误而崩溃

EXC_CRASH(代码签名无效)

如果我尝试使用自动管理签名或手动管理签名但没有配置配置文件,它可以正常工作。我的配置文件有什么问题?我需要使用手动管理签名,因为我的应用程序实际上是 Xamarin.mac,这在 VS for Mac 中无法自动签名或在没有配置文件的情况下手动签名。我没有使用奇怪的权利。我只需要应用沙箱来发布应用商店,所以在我的配置文件中我不添加任何功能

【问题讨论】:

如果你能发布你正在执行的命令会很有帮助。 只是一个疯狂的猜测:我曾经遇到过代码签名问题,因为我的 App 包包含扩展属性(尝试xattr -lr mybundle.app)。如果存在扩展属性,请在代码签名前通过执行xattr -cr mybundle.app 将其删除。 我其实不知道如何手动进行代码签名。我从 IDE 中使用它(VS for Mac/XCode)。在 XCode 中,如果我使用配置文件,它会构建应用程序,但是当我启动它并出现错误 Code Signature Invalid 时它会崩溃。我正在新创建的应用上试用它。 您使用的是 macOS 和 Xamarin,但您正在开发 ios 应用程序吗?还是安卓? 我正在开发 macOS 应用程序@Oren_C 【参考方案1】:

如果您的签名无效,很可能是您没有创建正确类型的证书。有多种证书类型可以实例化,如果您创建了错误的证书类型,您的应用将无法正确构建。

常见的证书类型包括:

iOS 开发 iOS 分发版 Mac 应用开发 Mac 应用分发 Mac 安装程序分发 开发者 ID 应用程序 开发者 ID 安装程序

有关手动创建证书的更多信息,请参阅我对此问题的回答:macOS installer certificate evaluation error in Keychain: Invalid Extended Key Usage

另请注意,在开发过程中您将使用 iOS 开发证书,但要通过 iTunes Connect 上传到 App Store,您将需要 iOS 分发证书,并且需要在已为 iOS 分发付费的 Apple ID 上启用它.有关注册 Apple 开发人员计划的更多信息,这将使您能够获得有效的分发证书,请参阅此处:https://developer.apple.com/support/enrollment/

如果您确定证书本身没有问题,请注意手动创建配置文件时还涉及其他参数 - 它不仅仅是证书 + 私钥。这是一个需要在 Apple 开发人员门户中创建的配置文件,但只要您有一个有效的 Apple ID 可用于创建配置文件,这应该不难。这里有详细说明:https://docs.microsoft.com/en-us/xamarin/ios/get-started/installation/device-provisioning/manual-provisioning 但请允许我解释一下:

1) 前往 Apple Developers Member Center (https://developer.apple.com/membercenter/index.action),然后在 Certificates、Identifiers & Profiles 部分下选择“Provisioning Profiles”。

2) 单击右上角的 + 按钮以创建新的配置文件。

3) 在开发部分,选择 iOS 应用开发旁边的单选按钮,然后按继续:

4) 从下拉菜单中选择要使用的 App ID

5) 选择要包含在配置文件中的证书,然后按继续

6) 选择将安装应用程序的所有设备,这将是属于您的 Apple ID 的所有设备和计算机,这些设备和计算机上将安装分发证书。

7) 为 Provisioning Profile 提供一个可识别的名称,然后按 Continue 以创建配置文件

8) 按“下载”将配置文件下载到 Mac 上

9) 双击该文件以在 Xcode 中安装配置文件。请注意,除了打开之外,Xcode 可能不会显示它已安装配置文件的任何视觉线索。这可以通过浏览到 Xcode > Preferences > Accounts 来验证。选择您的 Apple ID 并单击“查看详细信息...” 您的新配置文件应该会列出,如下图所示:

成功创建配置文件后,可能需要重新启动 Xcode,以便正确加载所有开发证书并可供使用。


清单:

我的代码签名证书类型是否正确 我的配置文件是否在 Apple 开发者门户 (https://developer.apple.com) 中正确注册了用于构建应用程序的机器上的 Apple ID 我的 Apple ID 是否已正确注册 Apple Developer 计划,且无需支付任何未付费用,也无需接受 EULA 等许可。 我是否从我的 Apple 开发者门户下载了我的配置文件并将其正确安装在我尝试构建/发布应用程序的机器上。

注意: 为了将应用程序分发到应用程序商店,您别无选择,只能在开发人员门户中创建配置文件并支付费用,然后通过从 Apple 下载将其安装到您的计算机上。

祝你好运!

【讨论】:

我其实是在开发macOS应用,现在开发iOS应用没有问题

以上是关于macOS App 使用 App Store 的配置文件手动签名得到错误代码签名无效的主要内容,如果未能解决你的问题,请参考以下文章

如何从 App Store Connect 中删除自动创建的 macOS 应用程序

从App Store 获取ipa 文件

Xcode10发布App Store,iOS9崩溃

在 Apple 的 App Store 之外分发时,我可以使用 In-App-Purchases 吗?

PWA-Android,iOS,MacOS,Windows Store,Chrome添加到主屏幕-具有多个域的多租户应用程序出现问题

无法将 Apple ID 更改为 App Store