【发布时间】:2019-04-17 13:43:11
【问题描述】:
我的组织有开发者帐户(不是企业),并将我作为“团队成员”添加到组织的团队帐户中,并共享了开发者证书和开发配置文件(包括 1 台设备)。使用这些,我可以开发一个应用程序、存档并从 XCode 创建一个 IPA(选择的分发方法为“开发”)并导出到磁盘上的一个文件夹。导出时,我在磁盘上创建了以下文件
- DistributionSummary.plist
- ExportOptiona.plist
- manifest.pList
- Packaging.log
- app.ipa
我组织的管理员想要退出这个 ipa 以分发到应用商店,并按照下面提到的所有步骤,使用分发证书和 dist。配置文件(应用商店)。然后将辞职的 ipa 分发(OTA)给用户,并且不会安装在他们的手机上。
我按照以下步骤重新签署了我们的 ipa
解压应用程序
解压 -q *.ipa
删除旧签名
rm -rf Payload/*.app/_CodeSignature/
替换嵌入式配置文件
cp "XXXXXXXXXX_distribution.mobileprovision" Payload/*.app/embedded.mobileprovision
从应用中提取权利
codesign -d --entitlements :entitlements.plist Payload/*.app/
重新签署嵌入式框架
codesign -f -s "iPhone Distribution: Certificate Name. (ABC44343XZ)" --entitlements entitlements.plist Payload/.app/Frameworks/
重新签署应用程序(带有权利)
codesign -f -s "iPhone Distribution: Certificate Name. (ABC44343XZ)" --entitlements entitlements.plist Payload/*.app/
Zip 重新签名的应用程序
zip -qr resigned.ipa 负载
清理
rm entitlements.plist
rm -r 负载/
我可以重新签署开发者的应用程序以分发到应用程序商店吗?有人可以告诉我哪里出错了吗?非常感谢任何帮助。
【问题讨论】:
-
您已退出 IPA 以交付给 App Store,但您正试图将应用程序直接交付给用户;这行不通。您必须将应用程序上传到 App Store 并提交给 Apple 进行审核。一旦获得批准,用户就可以从 App Store 安装。要直接分发给用户,您需要为临时分发签名并包含一个配置文件,其中包含您要在其上运行应用程序的所有设备标识符。
-
谢谢保罗。重新签署应用程序后,我尝试通过 Application Loader 将已签名的 ipa 上传到 App Store Connect,大约 30-40 分钟后,我收到以下错误消息 ERROR ITMS-90164:“无效的代码签名权利。您的应用程序包中的权利签名与配置文件中包含的签名不匹配。根据配置文件,捆绑包包含一个不允许的键值:“有效负载/xxxxxxx”中的键“get-task-allow”为“true”。应用程序/xxxxxxxxx'”。我是否必须在 ipa 辞职过程中进行任何更改,例如编辑权利文件?
-
[更新] 我在重新签名过程中将密钥“get-task-allow”的权利文件编辑为假,并使用 Application Loader 上传到重新签名的应用程序到应用商店连接成功上传。但是,当我登录 App Store Connect 时,我看不到那里的构建。有什么想法???
-
[更新] 我收到了一封来自苹果的电子邮件,其中包含以下要修复的问题“无效的 Swift 支持 - 缺少 SwiftSupport 文件夹。使用当前公共 (GM) 版本的 Xcode 重新构建您的应用程序并重新提交它。”有人可以帮我吗?
-
你为什么要做所有这些手动工作,而不是让 Xcode 为你将应用交付到 App Store?