[英]Build all targets (or schemes) in Xcode project
我有一個包含許多目標的 Xcode 項目。 其中六個是使用構建階段下的運行腳本構建最終發布產品(靜態庫、框架)的聚合體。 我可以單獨構建它們,但是我找不到任何方法來點擊“一個按鈕”來構建它們。
首先,我嘗試從命令行使用 -alltargets,如下所示:
xcodebuild -project MyProject.xcodeproj -alltargets
因此,我的測試目標出現錯誤,聲稱它們不是為測試而構建的。 我不知道這意味着什么,因為他們通常正確地“測試”。 以這種方式嘗試時會有所不同。 但從技術上講,它包括我不感興趣的目標。如果它有效,我不會介意。
接下來,我嘗試制作一個聚合,它有一個單獨構建每個聚合目標的運行腳本,如下所示:
xcodebuild -project MyProject.xcodeproj -target FirstAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SecondAggregateTarget
xcodebuild -project MyProject.xcodeproj -target ThirdAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FourthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FifthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SixthAggregateTarget
從 Xcode 的角度來看,它沒有出現任何錯誤,但有幾個聚合只是沒有正確構建。 我猜想,各個聚合中的運行腳本以某種方式受到頂級聚合的影響。
接下來,我嘗試創建一個新的“RELEASE_PRODUCTS”方案,該方案在構建部分列出了六個聚合。 有了這個,我得到了這樣的錯誤:
還有其他一些關於構建產品未在預期位置找到的模糊錯誤。
接下來,我創建了一個完全在 Xcode 之外運行的腳本,如下所示:
#!/bin/bash
# Builds all release products
xcodebuild -project MyProject.xcodeproj -target FirstAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SecondAggregateTarget
xcodebuild -project MyProject.xcodeproj -target ThirdAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FourthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FifthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SixthAggregateTarget
這似乎是唯一有效的方法。 但我希望我可以在 Xcode 中使用它,如果我願意的話,最好是我可以從命令行點擊的東西,因為這樣我就不必離開 IDE,它可以報告成功或失敗。
你可以制作一個依賴於其他六個的虛擬目標。 在構建階段選項卡中使用目標依賴項
在您的項目中創建一個新目標(我選擇使用 CLI 工具,因為我的項目是基於 CLI 的)。
根據sansumbrella ,您可以創建一個應用程序並刪除它的 plist。 我的方法不依賴於任何特殊(或不存在)的 plist。
為您的目標命名,例如ALL ,滿足其余字段,然后按“完成”。
單擊新目標的Build Phases
鏈接,然后:
main.c
+
或將目標拖到此空間來添加所有其他目標。當您將此目標選為活動模式時,您現在可以構建和清理整個項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.