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

时间:2017-10-09 00:13:12

标签: ios

我需要使用新的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";

重新制定发展条款

  1. 打开钥匙扣。删除所有开发人员/ iphone证书。删除所有键。
  2. 在developer.apple.com上,删除开发证书和开发配置文件。
  3. 确认我的iPhone设备已使用正确的UDID注册。
  4. 在Keychain中,生成证书签名请求文件。
  5. 在developer.apple.com中,创建开发证书,上传上一步生成的证书签名请求,下载证书.cer文件。
  6. 双击.cer文件。钥匙串打开。选择添加到"登录"。
  7. 在钥匙串中>证书,选择导出,指定强密码。将生成Certificates.p12文件。
  8. 在developer.apple.com中,创建开发配置文件。选择" iOS App Development"。选择一个应用程序ID ...但是哪一个?

    developer.apple.com上的应用ID BBH Mobile = com.bbh。* BBH Mobile = NSP.BBH-Mobile Xcode iOS通配符App ID = *

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

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

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

  9. 下载开发资料,然后双击安装(在Xcode中)。

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

    1. 打开Xcode。确认我在Xcode中添加的Apple帐户>偏好>帐户。在项目,目标,签名,点击"自动管理签名"。
    2. 选择我的个人团队。显示以下错误:

      enter image description here

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

      为什么提示更改捆绑ID?拥有一个应用程序ID并生成调试/开发和发布是不是标准?

      错误2:没有针对' NSP.BBH-Mobile'被发现Xcode无法找到与NSP.BBH-Mobile相匹配的任何iOS App Development配置文件。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

注释/观察:

  • 即使我只是想创建一个签名的调试进行测试,我似乎仍然需要提供有效的签名发布条款。
  • 即使删除了所有的密钥/证书等,并从头开始,似乎Xcode也创建了一个证书。烦人 - 现在很难分辨谁创造了什么。
  • 无需更改正在替换的原始iOS本机应用程序中的软件包ID。
  • 创建新的生产条款并不会影响现有的生产条款(我无法使用,因为我没有密钥)。