Xcode 命令行构建错误

Xcode command line build error

我正在尝试使用 xcodebuildxcrun 从命令行终端归档我的 Xcode 项目。为清楚起见,我是从 ANT 脚本中执行此操作的。

<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: 无法读取资源

然后,我找到了下面的post。

Xcode - Sharing app - PackageApplication failed with exit code 1

据此,我在构建设置的代码签名部分添加了以下内容。

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

这解决了我的问题,但警告仍然存在。但我看到了 Apple 的技术说明@https://developer.apple.com/library/mac/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG401,其中指出:

“OS X Mavericks 之前的系统记录了签名功能 (--resource-rules) 以控制捆绑包中的哪些文件应由代码签名密封。此功能已被Mavericks 已过时。Mavericks 中的代码签名和后来始终将所有文件密封在一个包中;不再需要明确指定。这也意味着 [=] 中的代码签名资源规则路径构建设置49=] 不应再使用,应留空 。 因此,不再可能从签名中排除部分捆绑包。捆绑包在签名后应被视为只读。"

我现在完全糊涂了。如果我将该字段留空,则会出现错误。如果我包括在内,它就违反了 Apple 的指导方针。我现在该怎么办?任何帮助将不胜感激。

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

Apple 声明 "there is no need..." 这就像被忽略了,但你没有违反任何规则,我认为编译此项目的其他平台仍在考虑该字段,因此如果你在编译时遇到问题或归档只需将 $(SDKROOT)/ResourceRules.plist 添加到 代码签名资源规则路径 并重试。