我刚刚更新了我的xcode安装以使用xcode 6.0.1,以便开始为ios8设备编译我的应用程序。出于某种原因,我无法正确签署使用以下内容生成的应用程序文件:
xcodebuild -project GrantM/GrantM.xcodeproj -configuration Release
它编译代码并且似乎很好,但正在运行:
/usr/bin/codesign --verify -vvvv GrantM/GrantM.app
告诉我:
Program /usr/bin/codesign returned 1 : [GrantM/GrantM.app: resource envelope is obsolete]
Codesign check fails : GrantM/GrantM.app: resource envelope is obsolete
使用以下方法检查代码是否已签名: / 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
还有其他人在OSX 10.9.5& xcode 6.0.1? 或者我只是有点愚蠢并做一些明显的错误?
另外,我能够找到在xcode中生成的应用程序的调试版本,并且可以成功签名,但它是一个调试版本,它不适用于distrobution。我甚至无法手动签署xcodebuild生成的应用程序文件。
提前感谢您的任何帮助或建议。
答案 0 :(得分:28)
如果您使用的是Mac OSX 10.9.5或更高版本,那么使用V2签名操作系统会出现问题。
因此,请使用--no-strict
标记codesign --verify
来克服此错误。
如果您正在使用PackageApplication创建.ipa文件,那么
使用vi PackageApplication
命令编辑PackageApplication perl脚本工具并更新代码签名函数实例以传递--no-strict
参数。
示例:
my $ result = runCmd(“/ usr / bin / codesign”,“ - verify”,“ - no-strict”, “-vvvv”,, $ plugin);
我面对同样的情况,得到了Apple Dev Team的以下回复。这个问题已经解决了。
命令行工具“codesign”在10.9.5和10.10中已更改,您需要将“--no-strict”选项传递给命令(问题已报告并将被修复)。 要解决此问题,请保存副本并修改PackageApplication以将“-no-strict”传递给codesign,您可以通过运行以下命令找到PackageApplication: xcrun -sdk iphoneos -f PackageApplication
答案 1 :(得分:4)
我有一个Jenkins CI系统设置,可以从我们的git repo中自动构建我们的iOS应用程序。此外,我还上传/提交内置于Crashlytics以进行崩溃日志监控。
Xcode 6.0 GM一切正常,但自从安装Xcode 6.0.1后,上传到Crashlytics失败并出现同样的错误。我正在寻求他们的帮助。
我的构建作业的一部分确实使用xcodebuild来生成应用程序的存档,并且我也使用PackageApplication来获取.ipa文件,而PackageApplication确实发出了codesign命令,并且不会失败。我正在使用分发版本,而不是调试。
以下是我在工作中用来清理/存档应用程序的命令:
xcodebuild clean archive -scheme MyScheme -target MyTarget -sdk iphoneos -configuration AdHoc CODE_SIGN_IDENTITY="iPhone Distribution: MyCompany" PROVISIONING_PROFILE="UDID_Of_Provisioning_Profile"
这是我用来从生成的档案中打包/获取应用程序的.ipa文件的命令:
xcrun -sdk iphoneos PackageApplication "Path/to/MyApp.app" -o "/Path/To/MyApp.ipa" --sign "iPhone Distribution: MyCompany" --embed "Path/To/UDID_Of_Provisioning_Profile.mobileprovision"
尝试修改它们以适合您的设置,看看是否收到同样的错误。
答案 2 :(得分:1)
在我的情况下,我验证了每个框架和dylib我曾经找出哪个被拒绝,然后辞职这个框架或dylib,整个应用程序保存了我的屁股。
答案 3 :(得分:1)
请按照以下步骤操作以避免此错误。
答案 4 :(得分:0)
在OS 10.10中,我必须删除--resource-rules
行
codesign
my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve
metadata=identifier,entitlements","--sign", $opt{sign});