我在使用PackageApplication
将应用程序打包为IPA时遇到麻烦。协同设计验证失败,并显示“不满足其指定的要求” :
+ /usr/bin/codesign --verify -vvvv -R=anchor apple generic and (certificate 1[field.1.2.840.113635.100.6.2.1] exists and (certificate leaf[field.1.2.840.113635.100.6.1.2] exists or certificate leaf[field.1.2.840.113635.100.6.1.4] exists)) /var/folders/8j/n5d5y1bj6wz3l8gs_djqn3400000gn/T/8xonyTiAuP/Payload/Planner.app
Program /usr/bin/codesign returned 3 : [/var/folders/8j/n5d5y1bj6wz3l8gs_djqn3400000gn/T/8xonyTiAuP/Payload/Planner.app: valid on disk
/var/folders/8j/n5d5y1bj6wz3l8gs_djqn3400000gn/T/8xonyTiAuP/Payload/Planner.app: does not satisfy its designated Requirement
/var/folders/8j/n5d5y1bj6wz3l8gs_djqn3400000gn/T/8xonyTiAuP/Payload/Planner.app: explicit requirement satisfied
在这里指定什么要求?!?
我正在使用xcodebuild构建:
xcodebuild -workspace MyWorkspace.xcworkspace -scheme Planner -ask iphoneos clean build archive
到目前为止,它在
~/Library/Developer/Xcode/Archives
中为我创建了一个Xcode存档。然后,我读到人们使用PackageApplication,但这对我来说是失败的:
xcrun -sdk iphoneos PackageApplication -v path/to/Planner.app -o Planner.ipa --sign 9990807058544973D70EA9A9F3BB3949D51C0983 --embed my_profile.mobileprovision
与上述错误。
我在这里想念哪一部分?还有另一种方法吗?
这是Xcode 4.5。
最佳答案
您可以通过运行以下命令来检查.app
文件的指定要求是什么:
codesign -d -r- path/to/file.app
您的输出应包括以designated =>
开头的行。以下是您的指定要求。此输出的示例为:designated => identifier "com.organization.project" and certificate root = H"abcdef0123456789abcdef0123456789abcdef12"
-d
标志显示信息,并且-r-
标志将需求写入stdout
。您可以在Code Signing Requirement Language上使用Apple的页面来解释这些要求的含义。
如果要缩小失败的特定要求,可以输入以下命令来单独运行测试:
codesign -v -R="certificate root = H\"abcdef0123456789abcdef0123456789abcdef12\"" /path/to/file.app
-v
标志对您的应用执行验证,并且-R
标志传递了明确的测试要求。关于ios - PackageApplication失败,因为应用程序无法满足其指定要求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11868522/