![](/img/trans.png)
[英]Info.plist: Permission denied . Command PhaseScriptExecution failed with a nonzero exit code Xcode 10
[英]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 構建項目時,它總是成功。
我找到了類似拐杖的解決方案:在File
-> Workspace Settings
-> Build System
in Xcode GUI 中選擇Legacy Build System
。
為什么這個解決方案不好? 因為:
Legacy Build System
比New Build System (Default)
慢。
這不是 Xcode 設置,而是工作區。 即在 Jenkins 中清理工作區文件夾或某些版本控制系統操作后,將此設置重置為默認值,非工作選項將再次選擇。
我刪除了項目的派生數據並解決了問題
將$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
放在Build Phases
Run Script
Input Files
下
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.