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

时间:2013-03-19 17:46:05

标签: ios xcode xcodebuild codesign entitlements

我有两个应用程序 - 一个在名称中有空格,另一个没有。当我尝试通过命令行构建过程运行应用程序时,我遇到了应用程序能够正常运行的问题 - 即:使用“SecItemCopyMatching:missing entitlement”进行轰炸

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

>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>

所以这里最大的问题是 - 这个应用程序名称已经全局使用,我无法更改它 - 如何解决这个问题,以便我可以执行这些命令行构建?

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

任何建议表示赞赏。

APPLE'S响应:“使用Xcode应用程序构建和签署应用程序时,DTS仅支持iOS应用程序的代码签名。它们不是使用xcodebuild对iOS应用程序进行签名的受支持工作流程。”

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

1 个答案:

答案 0 :(得分:0)

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