簡體   English   中英

Xcode項目模板:如何指定靜態庫依賴項?

[英]Xcode project templates: How can I specify a static library dependency?

我正在嘗試創建一個包含兩個可編譯目標的Xcode項目模板,其中一個目標(一個應用程序)依賴於另一個目標(一個靜態庫)。

到目前為止,一切工作正常,除了我無法弄清楚如何在模板中指定實際的依賴關系,以便它顯示在通過模板創建的Xcode項目的應用程序目標的“構建階段”選項卡的“目標依賴關系”部分中。

我已將項目的TemplateInfo.plist配置如下:

包含靜態lib依賴項的項目的TemplateInfo.plist

“組件”部分標識了靜態庫項目模板,並將該模板的內容及其目標成功地帶入了應用程序項目。 編譯完所有內容后,最后將通過OTHER_LDFLAGS條目中的項目3成功鏈接靜態庫。

但是,請嘗試嘗試,模板的“依賴關系”部分不會導致靜態庫出現在應用程序目標的“構建階段”選項卡的“目標依賴關系”部分中。 我嘗試使用數字值0和1指定依賴項,並嘗試使用靜態庫目標(cocos2d)的名稱將其作為字符串使用,但是這些都不起作用。

最后,在通過該模板創建的每個Xcode項目中,我都需要執行以下步驟:導航到應用程序目標的“構建階段”選項卡的“目標依賴項”部分,然后手動選擇並添加靜態庫目標。 盡管這是一個相對簡單的任務,但完全沒有必要。

誰能為我提供有關如何配置模板依賴項的建議,因此無需執行此手動步驟?

如您所指出的, Targets下的Dependancies標記引用目標數組索引。 在您發布的示例中,您的依賴項位於Components下。

在將模板文件中的目標添加到項目之后,組件似乎被添加為目標。 如果您參考Xcode隨附的Cocoa Touch應用程序模板,那么Cocoa Touch應用程序單元測試包將作為組件提供。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Temlpates / Application

可可觸摸應用程序-TemplateInfo.plist

查看Cocoa Touch應用程序單元測試捆綁包的plist,它與目標0有依賴關系。給定組件似乎是在“本地”目標之后添加的,當添加了單元測試目標時,項目0中存在目標0是針對主要目標創建的。

可可觸摸應用程序單元測試套件-TemplateInfo.plist

通過在Cocoa Touch應用程序中添加對目標1的依賴關系來反向嘗試此操作不起作用。

我唯一能找到的解決方法是將“ 組件”移至“ 祖先”,並在模板的“ 目標”部分中復制每個組件中的“ 目標”項。 從那里,您可以引用目標數組中包含的任何組件的索引。

您應該注意,即使采用這種技術,目標似乎仍會按順序添加到項目中,並且您似乎只能對已添加的索引設置依賴關系(即索引0不能引用索引2)。

暫無
暫無

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

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