将.ipa从分发版调入开发人员资料

时间:2016-02-22 10:34:56

标签: ios xcode codesign

我在重新签名以前使用分发配置文件签名的.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工具,结果相同。

1 个答案:

答案 0 :(得分:0)

在签署.app

之前,您必须重新签名框架
codesign -f -s “codeSigningCertificateName“ applicationName.app/Frameworks/*

注意:

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