我正在尝试改进iOS的Hudson CI,并在系统启动后立即启动Hudson.为此,我使用以下launchd脚本:
<?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>Label</key>
<string>Hudson CI</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-jar</string>
<string>/Users/user/Hudson/hudson.war</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>user</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当由Hudson启动的xcodebuild尝试签署应用程序时,它失败了,因为它无法在钥匙串中找到正确的密钥/证书.但是密钥/证书对是存在的,因为如果我从命令行启动Hudson它正常工作.
你知道为什么会这样吗?
我刚刚更新了我的xcode安装以使用xcode 6.0.1,以便开始为ios8设备编译我的应用程序.出于某种原因,我无法正确签署使用以下内容生成的应用程序文件:
xcodebuild -project GrantM/GrantM.xcodeproj -configuration Release
Run Code Online (Sandbox Code Playgroud)
它编译代码,看起来很好,但运行:
/usr/bin/codesign --verify -vvvv GrantM/GrantM.app
Run Code Online (Sandbox Code Playgroud)
给我吗:
Program /usr/bin/codesign returned 1 : [GrantM/GrantM.app: resource envelope is obsolete]
Codesign check fails : GrantM/GrantM.app: resource envelope is obsolete
Run Code Online (Sandbox Code Playgroud)
使用以下命令检查代码是否已签名:/ usr/bin/codesign -dv GrantM/GrantM.app
收益:
Executable=Documents/GrantM/GrantM/GrantM.app/GrantM
Identifier=com.grantapps.GrantM
Format=bundle with Mach-O universal (armv7 (16777228:0))
CodeDirectory v=20200 size=647 flags=0x0(none) hashes=23+5 location=embedded
Signature size=4336
Signed Time=24 Sep 2014 12:54:53 pm
Info.plist entries=34
TeamIdentifier=N3KKU46JLY
Sealed Resources version=2 rules=5 files=55
Internal requirements count=1 size=180
Run Code Online (Sandbox Code Playgroud)
有没有其他人在OSX 10.9.5和xcode 6.0.1上遇到类似的问题?或者我只是有点愚蠢并做一些明显错误的事情?
另外,我能够找到在xcode中生成的应用程序的调试版本,并且可以成功签名,但它是一个调试版本,它不适用于distrobution.我甚至无法手动签署xcodebuild生成的应用程序文件.
感谢您提前提供的任何帮助或建议.