2013-03-19 198 views
1

我有两个应用程序 - 一个在名称中有一个空格,另一个没有。当我尝试通过命令行构建过程运行应用程序时,我遇到了应用程序能够正常工作的问题 - 即:用“SecItemCopyMatching:丢失授权”炸弹 来自命令行的xcodebuild - 授权问题-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> 

与空间的应用程序的命令行所以这里最大的问题是 - 这个应用程序的名称已被全球使用,我不能改变它 - 我该如何解决这个问题,以便我可以做这些命令行构建?

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

任何建议表示赞赏。

苹果的回应:“iOS应用程序的代码签名只有在使用Xcode应用程序构建和签署应用程序时才受DTS支持,它们不是支持使用xcodebuild签署iOS应用程序的工作流程。

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

+1

哪个版本的Xcode您使用的是和你有最新版本的命令行工具?我只是用名为'Test App.app'的空间设置了一个测试应用程序,并且能够运行您遇到问题时的权利检查。我在Xcode 4.6.2上使用最新的命令行工具。 – 2013-04-29 08:42:02

+0

现在有效。在夜间对我而言没有真正的改变,可能是删除并重新拉我的预置描述文件做了。 – 2013-05-15 22:07:49

回答

0

这有可能是删除所有配置的配置文件解决了这个,但我这样做,有几次前的最后一次,我没有做的运气。它解决了自身的自动化构建出乎我的意料一个晚上......