【问题标题】:Resigning .ipa from distribution to developer profile将 .ipa 从分发版退出到开发者资料
【发布时间】:2016-02-22 10:34:55
【问题描述】:

我在退出之前使用分发配置文件签名的 .ipa 文件时遇到了问题。尽管该应用程序通过 iTunes 成功安装,但它在启动时崩溃。我需要开发人员签名的二进制文件才能对其进行 appium 测试,但我没有源代码,只有 ipa 文件。因此,我按照以下步骤在我的个人资料上签名。

unzip distrBuild.ipa
cp myProvisioningProfile.mobileprovision Payload/Application.app/embedded.mobileprovision
codesign -f -s "iPhone Developer: Nad Arian" --entitlements entitlements.plist Payload/Application.app

我的 entitlements.plist 如下:

<dict>
        <key>keychain-access-groups</key>
        <array>
            <string>34XXXXXXXX.*</string>
        </array>
        <key>get-task-allow</key>
        <true/>
        <key>application-identifier</key>
        <string>34XXXXXXXX.com.myapp.resigned</string>
        <key>com.apple.developer.team-identifier</key>
        <string>34XXXXXXXX</string>
        <key>aps-environment</key>
        <string>development</string>
    </dict>
</plist>

问题在于,尽管应用程序通过 iTunes 成功安装,但它在启动时崩溃并显示以下日志:

kernel[0] <Notice>: AMFI: QuickFix(pid 931) - [deny-mmap] process has team identifier 34XXXXXXXX: /private/var/mobile/Containers/Bundle/Application/57503E66-DC05-4F83-8EBC-1DC914238ACA/QuickFix.app/Frameworks/MFCoreData.framework/MFCoreData
kernel[0] <Notice>: AMFI: QuickFix(pid 931) - [deny-mmap] mapped file has team identifier Q6YYYYYYYY: /private/var/mobile/Containers/Bundle/Application/57503E66-DC05-4F83-8EBC-1DC914238ACA/QuickFix.app/Frameworks/MFCoreData.framework/MFCoreData
kernel[0] <Notice>: AMFI: QuickFix(pid 931) - [deny-mmap] mapped file does not the same team identifier as main process: /private/var/mobile/Containers/Bundle/Application/57503E66-DC05-4F83-8EBC-1DC914238ACA/QuickFix.app/Frameworks/MFCoreData.framework/MFCoreData

我尝试将 --deep 标志与 codesign 一起使用,但问题仍然存在。配置文件有问题还是权利错误?为什么/在哪里仍然存储旧的团队标识符?我也使用了 iResign 工具,结果相同。

【问题讨论】:

  • 这和appium有什么关系?如果没有,我们应该更改标签吗?
  • 该应用程序是否有任何嵌入式框架或扩展?您可能还需要辞去他们的职务。
  • @Mats 我试图像here 一样辞职,但结果相同。这太奇怪了,因为我曾经设法放弃了一个构建,看来我这次一定错过了一些步骤。

标签: ios xcode codesign


【解决方案1】:

您必须在签署 .app 之前退出框架

codesign -f -s “codeSigningCertificateName“ applicationName.app/Frameworks/*

注意:

如果您使用相同的证书为 .app 签名,则无需执行上述步骤。

【讨论】:

  • 我已经尝试过了,但对我来说,它仍然在启动时崩溃,并出现完全相同的错误 - mapped file does not have the same team identifier as the main process。知道还有什么可以尝试的吗?
  • 你签署了所有的框架吗?你试过 * 通配符吗?
  • 是的,我做到了。我只有一个框架,但我尝试了使用通配符和没有。我发布了一个问题,显示了崩溃的整个堆栈跟踪——如果你有时间,你能不能看看它,看看你是否发现我做错了什么?谢谢你的建议!
  • @SaiyanGirl - 当然
  • @DuraiAmuthan.H 我收到以下错误 ***.app/Frameworks: bundle format unrecognized, invalid, or unsuitable
猜你喜欢
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多