2015-01-05 74 views
0

我想从命令行终端存档我的Xcode项目使用xcodebuildxcrun。为了清楚起见,我正在从ANT脚本中做到这一点。Xcode命令行生成错误

<target name="build"> 

<exec executable="/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild"> 
<arg value="-project"/> 
<arg value="${local.projectPath}/${app.id}.xcodeproj"/> 
<arg value="-scheme"/> 
<arg value="${scheme}"/> 
<arg value="-configuration"/> 
<arg value="${configuration}"/> 
<arg value="clean"/> 
<arg value="build"/> 
</exec> 

</target> 

<target name="package" depends="build"> 

<exec executable="xcrun"> 
<arg value="-sdk"/> 
<arg value="iphoneos"/> 
<arg value="PackageApplication"/> 
<arg value="-v"/> 
<arg value="${local.projectPath}/DerivedData/dist/${app.id}/Build/Products/${configuration}-iphoneos/${app.id}.app"/> 
<arg value="-o"/> 
<arg value="${local.ipaPath}/${app.id}.${appVersion}.b${buildNumber}.${environment}.ipa"/> 
<arg value="--sign"/> 
<arg value="iPhone Distribution: ${developerName}"/> 
<arg value="--embed"/> 
<arg value="${provisioningProfile}"/> 
</exec> 

升级到6.1版后,出现以下错误。

/var/folders/hk/bg4j097j1kncryfrplv4b3bw0000gp/T/f3UZyfiqbS/Payload/MyApp.app/ResourceRules.plist:无法读取资源

然后,我发现下面的职位。

Xcode - Sharing app - PackageApplication failed with exit code 1

根据这一点,我添加构建设置下面的代码签名部分。

代码签名资源规则路径:$(SDKROOT)/ResourceRules.plist

这解决了我的问题,但警告仍然存在。但是,我在整个苹果公司的技术说明进来@https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG401其中指出:

“系统之前OS X小牛队记录了签名功能(--resource规则)来控制哪些文件在包应该由代码签名密封。这个特性已经被小牛队取代了,小牛队的代码签名和后来总是将所有的文件封装在一个包中,没有必要再明确指出这一点这也意味着代码签名资源规则路径在Xcode中建立设置应该不再使用,并且应该留空。 因此,不再可能从签名中排除一部分捆绑包,捆绑包在签名后应该被视为只读。

我现在完全混淆了。如果我将该字段留空,则会出现错误。如果我包含,它违反了Apple的准则。我现在应该怎么做?任何帮助将不胜感激。

回答

1

检查这个问题: Xcode - Sharing app - PackageApplication failed with exit code 1

苹果指出,“没有必要......”好像被忽略了,但你没有违反任何规则,我认为编译此项目仍在其他平台考虑到该字段,所以如果您在编译或存档时遇到问题,只需将$(SDKROOT)/ResourceRules.plist添加到代码签名资源规则路径,然后重试。

+0

谢谢。你的意思是我仍然可以在我的构建设置中添加它?什么实际上违反了任何规则? –

+0

你可以编写它,而你并没有“违反”任何规则。苹果表示“没有必要指定”,我明白你可以写或不写,但如果你这样做,什么都不会发生。 – LightMan