我的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”通过代码签名工具验证我得到的代码符号是有效的。它在构建之前尝试了干净,但问题也在此之后发生。
非常感谢任何帮助或指针。
答案 0 :(得分:1)
更改任何嵌入式框架的包标识符绝对可以解决问题。我甚至不确定你改变它的重要性只要它设置好了。
答案 1 :(得分:0)
我的案例中的问题是空的“PRODUCT_BUNDLE_IDENTIFIER
”。即使设置了CFBUNDLE_IDENTIFIER
,xcodebuild在嵌入式框架的情况下也期望它(PBI)。
但是真的很奇怪,只有少数构建被破坏了。