2015-01-05 105 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