来自命令行的 xcodebuild - 权利问题 -SecItemCopyMatching:缺少权利

Posted

技术标签:

【中文标题】来自命令行的 xcodebuild - 权利问题 -SecItemCopyMatching:缺少权利【英文标题】:xcodebuild from command line - entitlement issues -SecItemCopyMatching: missing entitlement 【发布时间】:2013-03-19 17:46:04 【问题描述】:

我有两个应用程序 - 一个名称中有空格,另一个没有。当我尝试通过命令行构建过程运行应用程序时,我遇到了应用程序无法正常运行的问题 - 即:“SecItemCopyMatching:缺少权利”

--- 当我尝试使用空格检查应用程序命令行上的权利时:

>machine:Release-iphoneos builder$ codesign -d --entitlements - Application\ Name.app 
Executable=/Users/Shared/Jenkins/Home/jobs/My_Application_Name/workspace/build/Release-iphoneos/Application Name.app/Application Name

--- 当我在名称中没有空格的应用程序上运行它时:

machine:Release-iphoneos builder$ codesign -d --entitlements - application.app         
Executable=/Users/Shared/Jenkins/Home/jobs/My_Application_Name/workspace/ios/build/Release-iphoneos/Application.app/Application
??qq?<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>ABC123456.com.company.app</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>ABC123456.com.company.app</string>
    </array>
</dict>
</plist>

所以这里最大的问题是 - 此应用程序名称已在全球范围内使用,我无法更改它 - 如何解决此问题以便我可以进行这些命令行构建?

恕我直言:Apple 在 xcode 中的非 posix 合规性方面犯了一个大错误。

任何建议表示赞赏。

APPLE 的回复:“只有在使用 Xcode 应用程序构建和签署您的应用程序时,DTS 才支持 iOS 应用程序的代码签名。使用 xcodebuild 签署 iOS 应用程序的工作流程不受支持。”

所以他们不支持自己的命令行工具...

【问题讨论】:

您使用的是哪个版本的 Xcode,您有最新版本的命令行工具吗?我刚刚设置了一个名为“Test App.app”的带有空格的测试应用程序,并且能够运行您遇到问题的权利检查。我在 Xcode 4.6.2 上使用最新的命令行工具。 现在可以使用了。一夜之间,我没有进行任何真正的修改,可能是删除并重新提取了我的配置文件。 【参考方案1】:

删除所有配置文件可能解决了这个问题,尽管我在上次没有运气之前做过几次。一个晚上,它在自动化构建中自行解决,令我惊讶的是......

【讨论】:

以上是关于来自命令行的 xcodebuild - 权利问题 -SecItemCopyMatching:缺少权利的主要内容,如果未能解决你的问题,请参考以下文章

来自命令行的 Xcode 代码覆盖率

xcodebuild 未签名 IPA - 缺少推送通知权利(在 XCode 中直接签名应用程序时工作)

为啥 Xcode 12.5 `xcodebuild -archive` 抱怨在没有 AppClip 的应用程序中缺少 appclip 权利?

在构建脚本中使用 xctool 和 xcodebuild 进行代码签名后,ITC 上的代码签名权利无效

使用命令行的 Xcode 4 单元测试

Ionic/cordova:如何使用 fastlane 或 xcodebuild 添加推送功能?