簡體   English   中英

Xcode 10 命令行構建:存檔失敗,Fabric Info.plist 錯誤

[英]Xcode 10 command-line building: Archive failed with Fabric Info.plist Error

我有用於自動構建 iOS 項目的 Jenkins 服務器,它有兩個目標。 使用命令行實用程序xcodebuild構建項目。

完整的命令是

/usr/bin/xcodebuild -workspace "Our project.xcworkspace"
    -scheme "First target"
    -configuration Release
    archive
    DEVELOPMENT_TEAM=TEAMCODE
    -allowProvisioningUpdates

/usr/bin/xcodebuild -workspace "Our project.xcworkspace"
    -scheme "Second target"
    -configuration Release
    archive
    DEVELOPMENT_TEAM=TEAMCODE
    -allowProvisioningUpdates

在我將 Xcode 更新到版本 10 之前,它運行良好。 但是每次更新后我看到錯誤

錯誤:織物:Info.plist 錯誤

無法在路徑 /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/Our_project-xxxx/Build/Intermediates.noindex/ArchiveIntermediates/Our project/BuildProductsPath/Release-iphoneos/First application.app/Info 處處理 Info.plist .plist 這可能是一個時間問題,請確保 Fabric 運行腳本構建階段是最后一個構建階段,並且沒有其他腳本從 Xcode 生成它的位置移動了我們的 application.app。 您還可以添加 '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' 作為 Fabric 運行腳本構建階段的“輸入文件”依賴項。

** 存檔失敗 **

在谷歌搜索和閱讀錯誤描述后,我確實在 Xcode 中打開了Build phases選項卡並進行了設置(將Run script項移到底部, Run script only when installing檢查Run script only when installing並將$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)到輸入文件並刪除空Run script項)。

從命令行手動構建現在可以工作了 - 問題似乎解決了。 甚至詹金斯也確實建立了第一個目標! 但是第二個目標並沒有出現同樣的錯誤。

我打開項目,查看構建階段選項卡,看到Run script項移動到上方並出現新的空Run script 之后我做了實驗:設置構建階段,在 Xcode GUI 中重建項目並看到這些階段再次重新排序。 因此,它發生在構建期間或之后。

我該如何修復這個錯誤?

說,我可以從命令行手動訂購構建階段嗎? 如果是,我只是在 Jenkins 步驟中附加行。

另外:此錯誤僅出現在命令行構建中。 當我從 Xcode GUI 構建項目時,它總是成功。

好的,我從 Fabrics 中得到了解決方案。 對於 Xcode 10,將此路徑添加到 XCode $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) 中構建階段的輸入文件

在此處輸入圖片說明

在“嵌入 pods 框架”和“復制 pods 資源”之后,我將帶有 crashlytics 的“運行腳本”移到最后,這有幫助在此處輸入圖片說明

我找到了類似拐杖的解決方案:在File -> Workspace Settings -> Build System in Xcode GUI 中選擇Legacy Build System

為什么這個解決方案不好? 因為:

  • Legacy Build SystemNew Build System (Default)慢。

  • 這不是 Xcode 設置,而是工作區。 即在 Jenkins 中清理工作區文件夾或某些版本控制系統操作后,將此設置重置為默認值,非工作選項將再次選擇。

使用以下方法完成 Crashlytics 和/或 Fabric 設置的解決方案:

  1. 轉到構建設置
  2. 搜索“調試信息格式”
  3. 將“Debug”的值從“DWARF”更改為“DWARF with dSYM File”
  4. 再次構建您的項目。

更改“矮人”

在此處輸入圖片說明

到“帶有 dSYM 文件的 DWARF”

在此處輸入圖片說明

我刪除了項目的派生數據並解決了問題

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)放在Build Phases Run Script Input Files

暫無
暫無

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

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