嵌入式框架的代码签名问题

时间:2016-05-02 17:28:18

标签: ios xcode codesign

我的iOS企业签名应用有时无法在设备中安装。来自设备控制台的日志显示其中一个嵌入式框架的代码签名是问题。

<Error>: 0x16e3eb000 __MobileInstallationInstallForLaunchServices_block_invoke222: Returned error Error Domain=MIInstallerErrorDomain Code=13  
 "Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.joar7U/extracted/Payload/MyApp.app/Frameworks/MyAppFramework.framework : 0xe8008001 (An unknown error has occurred.)"   
UserInfo={LibMISErrorNumber=-402620415, LegacyErrorString=ApplicationVerificationFailed, SourceFileLine=142, FunctionName=+[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:],   
NSLocalizedDescription=Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.joar7U/extracted/Payload/MyApp.app/Frameworks/MyAppFramework.framework : 0xe8008001 (An unknown error has occurred.)} 

这个问题并非一直存在,但是当发生这种情况时,我注意到ipa中框架内的_codesignature文件夹包含4个文件。 (codeDirectory,codeResources,codeSignature和codeRequirements)。在正常情况下,我只看到CodeResources。我还注意到info.plist文件中的变量没有扩展。

我尝试使用“codesign -vvv”通过代码签名工具验证我得到的代码符号是有效的。它在构建之前尝试了干净,但问题也在此之后发生。

非常感谢任何帮助或指针。

2 个答案:

答案 0 :(得分:1)

更改任何嵌入式框架的包标识符绝对可以解决问题。我甚至不确定你改变它的重要性只要它设置好了。

答案 1 :(得分:0)

我的案例中的问题是空的“PRODUCT_BUNDLE_IDENTIFIER”。即使设置了CFBUNDLE_IDENTIFIER,xcodebuild在嵌入式框架的情况下也期望它(PBI)。

但是真的很奇怪,只有少数构建被破坏了。