将分发中的.ipa从开发人员简档中删除

问题描述:

我遇到了以前使用分发概要文件签名的.ipa文件的退出问题。尽管应用程序通过iTunes成功安装,但它在启动时崩溃。我需要开发人员签名的二进制文件启动appium测试,但我没有源代码,只有ipa文件。因此,我按照此步骤使用我的个人资料签名。将分发中的.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

这与appium有什么关系?如果不是,我们应该更换标签吗? – nullpointer

+0

该应用程序是否有任何嵌入式框架或扩展?你可能也需要辞职。 – Mats

+0

@Mats我试图像[这里](https://techblog.badoo.com/blog/2015/02/09/code-signing-and-distributing-swift/)辞职,但结果相同。这太奇怪了,因为我曾经管理过一次辞职构建,而且这次看起来我必须错过一些步骤。 – Nadarian

你必须签署的.app

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

注前辞职框架:

如果使用相同的证书上面这一步是没有必要辞职的。应用程序。

+0

我试过这个,但是对我来说,它仍然在启动时崩溃,但是完全相同的错误 - 映射文件没有与主进程相同的组标识符。任何想法还有什么可以尝试? – SaiyanGirl

+0

你签了所有的框架吗?你用*通配符来试试? –

+0

是的,我做到了。我只有一个框架,但我尝试使用通配符而没有。我发布了一个问题,显示了崩溃的整个堆栈轨迹 - 如果你有时间,你能否看看它,看看你是否还有其他可以做错的事情?谢谢你的建议! – SaiyanGirl