我在重新签名以前使用分发配置文件签名的.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工具,结果相同。
答案 0 :(得分:0)
在签署.app
之前,您必须重新签名框架codesign -f -s “codeSigningCertificateName“ applicationName.app/Frameworks/*
注意:的
如果您使用相同的证书撤销.app,则无需执行上述步骤。