ios - PackageApplication 失败,因为应用程序不满足其指定要求

标签 ios command-line build ipa

我在将应用程序打包为 IPA 时遇到问题 PackageApplication 。代码设计验证失败,并显示“不满足其指定的要求”:

+ /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 => 开头的行。接下来是您的指定要求。此输出的示例如下:

指定 => 标识符“com.organization.project”和证书根 = H“abcdef0123456789abcdef0123456789abcdef12”

-d 标志显示信息,-r- 标志将要求写入stdout

您可以使用 Apple 在 Code Signing Requirement Language 上的页面来解释这些要求的含义。

如果您想缩小失败的特定要求的范围,可以通过输入以下命令单独运行测试:

codesign -v -R="证书根= H\"abcdef0123456789abcdef0123456789abcdef12\""/path/to/file.app

-v 标志对您的应用执行验证,-R 标志传递明确的测试要求。

关于ios - PackageApplication 失败,因为应用程序不满足其指定要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11868522/

相关文章:

ios - Flutter build iOS 停留在为设备构建 [bundle id](iOS 版本)

iphone - 有没有办法在应用程序中通用设置背景颜色或导航栏?

android - adb "geo fix"命令到Android真机?

c - 如何在 Alpine 上编译 time.c?

macos - 通过命令行 (mac) 添加启动项

linux - 在后续 git 命令中使用 git 命令的输出路径的最简单方法是什么?

build - 团队构建 - 获取工作空间 - 从特定路径获取最新信息,而不是所有内容

ios - Realm 快速通知停止触发

ios - Swift/IOS 重置 CollectionViewCell 中的 ImageView 缩放

ios - 现有方法的 "No visible interface"