簡體   English   中英

xcodebuild生成與Xcode 7.0.1不同的存檔

[英]xcodebuild produces different archive to Xcode 7.0.1

我正在使用xcodebuild從工作區生成檔案。 我使用以下命令:

xcodebuild -workspace MyProject.xcworkspace -scheme "MyProject" 
           -destination generic/platform=iOS archive 
           -archivePath "../PathToArchive/MyProject.xcarchive

(為了便於閱讀,我將其分成多行)

此命令生成一個MyProject.xcarchive 但是,它會生成通用的 “ Xcode存檔”而不是“ iOS App存檔”。 無法將其提交到App Store。

如果我使用Xcode.app版本7.0.1(7A1001)而不是xcodebuild存檔完全相同的工作區和方案,那么我會得到一個“ iOS App存檔”,可以將其提交到App Store。

檢查這兩個xcarchive的內容表明,主要區別在於捆綁的Info.plist文件。 Xcode.app生成的一個包含附加的ApplicationProperties字典,其中包含版本控制和簽名詳細信息。 xcodebuild生成的代碼在其Info.plist中缺少這些詳細信息。

復制Xcode.app產生的Info.plist到xcarchive所產生xcodebuild “修復”存檔,可以提交到App Store。 但是,這不是解決方案,因為這意味着我無法在命令行上構建。

請注意,執行xcodebuild -version輸出:

Xcode 7.0.1
Build version 7A1001

編輯: 有時 xcodebuild似乎會生成正確的iOS App存檔,而不是Generic存檔 我不確定為什么會這樣。 這是不一致的。

您正在使用可可豆嗎? 如果是這樣,請嘗試使用預發行版本gem install cocoapods --pre 由於復制吊艙階段不應該出現在某個地方,因此出現了問題,請訪問https://github.com/CocoaPods/CocoaPods/issues/4021,您應該找到適合您的解決方案。

經過很多挫折之后,我發現了xcodebuild產生錯誤的xcarchive軟件包的原因。

我必須為正在構建的方案禁用“並行構建”選項。

並行構建設置

取消選中此選項后,構建會花費更長的時間,但是xcodebuild始終生成“ iOS App Archive”而不是“ Generic Archive”。 啟用“ Parallelize Build”后, xcodebuild將在90%的時間內生成“通用存檔”,偶爾會生成正確的存檔。

因為我想 Xcode我的生成時間不受影響,我離開了我的計划中啟用了“並行化編譯”選項。 我復制了要使用xcodebuild構建的方案,並取消了僅針對部署方案的選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM