簡體   English   中英

在 Xcode 項目中構建所有目標(或方案)

[英]Build all targets (or schemes) in Xcode project

我有一個包含許多目標的 Xcode 項目。 其中六個是使用構建階段下的運行腳本構建最終發布產品(靜態庫、框架)的聚合體。 我可以單獨構建它們,但是我找不到任何方法來點擊“一個按鈕”來構建它們。

方法#1

首先,我嘗試從命令行使用 -alltargets,如下所示:

xcodebuild -project MyProject.xcodeproj -alltargets

因此,我的測試目標出現錯誤,聲稱它們不是為測試而構建的。 我不知道這意味着什么,因為他們通常正確地“測試”。 以這種方式嘗試時會有所不同。 但從技術上講,它包括我不感興趣的目標。如果它有效,我不會介意。

方法#2

接下來,我嘗試制作一個聚合,它有一個單獨構建每個聚合目標的運行腳本,如下所示:

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 的角度來看,它沒有出現任何錯誤,但有幾個聚合只是沒有正確構建。 我猜想,各個聚合中的運行腳本以某種方式受到頂級聚合的影響。

方法#3

接下來,我嘗試創建一個新的“RELEASE_PRODUCTS”方案,該方案在構建部分列出了六個聚合。 有了這個,我得到了這樣的錯誤:

在此處輸入圖片說明

還有其他一些關於構建產品未在預期位置找到的模糊錯誤。

方法#4

接下來,我創建了一個完全在 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,它可以報告成功或失敗。

你可以制作一個依賴於其他六個的虛擬目標。 在構建階段選項卡中使用目標依賴項

受到sansumbrella 在另一個論壇中的回答的啟發。

在您的項目中創建一個新目標(我選擇使用 CLI 工具,因為我的項目是基於 CLI 的)。

根據sansumbrella ,您可以創建一個應用程序並刪除它的 plist。 我的方法不依賴於任何特殊(或不存在)的 plist。

  1. 為您的目標命名,例如ALL ,滿足其余字段,然后按“完成”。

  2. 單擊新目標的Build Phases鏈接,然后:

    1. 刪除Compile Sources 中的條目,如果您按照我的方式進行操作,它將是main.c
    2. 打開Target Dependencies並通過單擊+或將目標拖到此空間來添加所有其他目標。

當您將此目標選為活動模式時,您現在可以構建清理整個項目。

暫無
暫無

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

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