簡體   English   中英

在不破壞xcodebuild存檔的情況下,將os x工具作為iOS項目的一部分進行構建嗎?

[英]Build os x tool as part of iOS project without breaking xcodebuild archive?

每次構建iOS項目時,我都希望它也構建幾個OS X項目。 這些是命令行工具。 我不在乎它們是否包含在存檔中,我只是想確保它們每次都能正確編譯。

它們只是用於訪問相同庫的特定任務的命令行工具。 過去,我很少頻繁地構建它們,因此它們會遭受代碼腐爛的困擾。 每當我構建iOS項目時,我都想構建它們,即使我只是在Xcode中構建。

為此,我嘗試將項目拖到我的iOS項目中並將其設置為依賴項。

這在IDE中工作正常,但是當我嘗試通過xcodebuild進行構建時:

xcrun xcodebuild -sdk iphoneos -workspace AppName.xcworkspace \
    -scheme AppName archive

我收到一個看起來像這樣的錯誤:

=== BUILD TARGET dslfi OF PROJECT dslfi WITH CONFIGURATION Release ===

Check dependencies
target specifies product type 'com.apple.product-type.tool', but there's no such
product type for the 'iphoneos' platform

** ARCHIVE FAILED **

The following build commands failed:
    Check dependencies
(1 failure)

在我仍然滿意xcodebuild有什么方法可以繼續構建這些嗎?

  1. 您可以將任意數量的目標(iOS應用,靜態庫,contole應用等)添加到同一項目中。
  2. 然后,您應該創建另一個目標- *匯總*目標
  3. 然后,您可以選擇:

3.1轉到計划設置的匯總目標並添加其他目標: 目標 您可以在其中指定要對特定目標執行的操作

3.2您可以選擇匯總目標並進行構建設置,並添加其他目標作為該目標的依賴項。

選項3.1似乎是您需要的選項:您可以添加任意數量的目標。 您可以指定另一個運行目標。 因此,您將獲得以下內容:

targets:
target 1 - iOS app
target 2 - other app
target 3 - other app
target 4 - aggregate target

scheme configuration for target 4
build section:
 target 1
 target 2
 target 3
run section:
 executable: target 1 (iOS app)

完成此操作后,您可以使用您的方案來構建xcodebuild -scheme your_scheme [...other options...] archive


UPDATE

您可以跳過創建聚合目標。 您可以直接創建新方案並創建所需的配置,而無需涉及聚合目標。

更新2

確保共享您的方案,以便能夠將其保留在源代碼管理中。

更新3

如果您的目標不直接相互依賴(據我所知),則不帶聚合目標的選項是實現此目標的更可取的方法。 這是計划的主要目的。

方案是設置的集合,這些設置指定啟動目標指定的產品時要構建的目標,要使用的構建配置以及要使用的可執行環境。 當您打開一個現有項目(或創建一個新項目)時,Xcode會自動為每個目標創建一個方案。

暫無
暫無

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

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