签署 iOS 应用程序:应用程序 ID 无法注册到您的开发团队

Posted

技术标签:

【中文标题】签署 iOS 应用程序:应用程序 ID 无法注册到您的开发团队【英文标题】:Signing iOS App: App ID Cannot be Registered to Your Development Team 【发布时间】:2017-10-09 00:13:11 【问题描述】:

我需要用新的 Ionic3 / Cordova 混合应用替换已部署的 ios 原生应用。新的混合应用程序构建成功(在 macOS Sierra 10.12.6 上),但我无法签署应用程序(以便可以将其上传到应用商店)。

作为第一步,我专注于在应用商店中获取新应用(作为使用 TestFlight 进行测试的 alpha 版本)。我已从 developer.apple.com 中删除了所有“开发”证书/配置文件。

网络上有很多关于签名应用的信息/问题/答案。我在这个问题上花了几天时间,无论我阅读什么或尝试什么都无法让它发挥作用。

当前 iOS 应用代码(已部署)

在 Info.plist 中,$(PRODUCT_BUNDLE_IDENTIFIER)

在 /bbh.xcodeproj/project.pbxproj 中,PRODUCT_BUNDLE_IDENTIFIER = "NSP.BBH-Mobile";

重新制定发展规定

    打开钥匙串。删除所有开发者/iPhone 证书。删除所有键。

    在 developer.apple.com 上,删除开发证书和开发配置文件。

    确认我的 iPhone 设备已使用正确的 UDID 注册。

    在 Keychain 中,生成证书签名请求文件。

    在developer.apple.com中,创建开发证书,上传上一步生成的证书签名请求,下载证书.cer文件。

    双击 .cer 文件。钥匙串打开。选择添加到“登录”。

    在钥匙串>证书中,选择导出,指定强密码。将生成 Certificates.p12 文件。

    在 developer.apple.com 中,创建开发配置文件。选择“iOS 应用程序开发”。选择一个 App ID ...但是哪个?

    developer.apple.com 中的应用 ID BBH 移动 = com.bbh.* BBH 移动 = NSP.BBH-移动 Xcode iOS 通配符应用 ID = *

    屏幕上的通知显示: “如果您计划使用 Game Center、应用内购买和推送通知等服务,或者想要单个应用唯一的 Bundle ID,请使用显式应用 ID。 如果您想为多个应用创建一个配置文件或不需要特定的捆绑 ID,请选择通配符应用 ID。通配符 App ID 使用星号 (*) 作为 Bundle ID 字段中的最后一位数字。 请注意,iOS App ID 和 Mac App ID 不能互换使用。”

    我们需要推送通知,因此请选择明确的 App ID = AYW4J8P7X3.NSP.BBH-Mobile app id = team id(由苹果生成)+ bundle id(由用户提供) 选择包含当前部署的 iOS 的捆绑包 ID 的应用 ID 是有意义的。 https://www.screencast.com/t/C0QdPdxwh09t

    选择一个开发证书(刚刚创建),选择所有设备。

    下载开发配置文件并双击安装(在 Xcode 中)。

双击似乎没有任何作用?我怎么知道它是否正确安装在 Xcode 中? 我需要 iPhone 上的 .mobileprovision 文件吗? mac 服务器在云端,所以我的 iPhone 没有通过 USB 连接到 mac。

    打开 Xcode。确认我在 Xcode > Preferences > Accounts 中添加的苹果帐户。在项目中,targets,signing,点击“Automatically manage to sign”。

    选择我的个人团队。显示以下错误:

    错误 1: 应用 ID“NSP.BBH-Mobile”无法注册到您的开发团队。将您的捆绑包标识符更改为唯一字符串以重试。

    为什么会提示更改 bundle id?拥有一个应用 ID 并同时生成调试/开发和发布不是标准吗?

    错误 2:未找到“NSP.BBH-Mobile”的配置文件 Xcode 找不到任何与“NSP.BBH-Mobile”匹配的 iOS 应用开发配置文件。

但我们刚刚创建了一个新的开发条款并选择了 App ID = NSP.BBH-Mobile。为什么 Xcode 不能识别这个?

【问题讨论】:

【参考方案1】:

您可以尝试取消选择Automatically manage signing 并手动导入provisioning profile

【讨论】:

这个片段/方法非常有帮助。我读过的大部分内容都说让 Xcode 处理签名。所以这就是我大部分时间都在度过的。使用这种手动方法,我没有签名(调试)错误。我现在需要解决签名(发布)的错误。【参考方案2】:

这些是我最终解决此问题所采取的步骤。它可能不是最佳的,但至少有效。

1.在Xcode中,关闭自动管理签名。 2. 对于签名(调试),选择我的开发配置文件。 3. 对于签名(发布),创建一个生产配置文件,然后选择新的生产配置文件。

注释/观察:

尽管我只想创建一个签名调试来进行测试,但似乎我仍然必须提供有效的签名发布条款。 即使在删除所有密钥/证书等并从头开始之后,Xcode 似乎也创建了一个证书。烦人 - 现在很难说是谁创造了什么。 无需更改要替换的原始 iOS 原生应用的捆绑 ID。 创建新的生产供应不会影响现有的生产供应(我无法使用,因为我没有密钥)。

【讨论】:

以上是关于签署 iOS 应用程序:应用程序 ID 无法注册到您的开发团队的主要内容,如果未能解决你的问题,请参考以下文章

应用 ID 无法注册到您的开发团队

如何为 App Store 分发重新签署 iOS 应用程序?

签署 mac 应用程序失败

Xcode:作为团队成员签署应用程序失败

在 iOS (swift) 应用中,第二个 Firebase 应用的注册无法接收远程通知

Android C2DM 注册无效