[英]How do I include a static library dependency in an Xcode Template?
我可以在TemplateInfo.plist文件中包含這樣的框架:
<key>Frameworks</key>
<array>
<string>QuartzCore</string>
<string>OpenGLES</string>
<string>OpenAL</string>
<string>AudioToolbox</string>
<string>AVFoundation</string>
<string>UIKit</string>
<string>Foundation</string>
<string>CoreGraphics</string>
</array>
但我找不到如何使用靜態庫做類似的事情。 這將大大改善我的模板。 有這樣的功能嗎?
我找到了解決方案。
在templateInfo.plist中添加關鍵目標 - > SharedSettings
<key>OTHER_LDFLAGS</key>
<string>ObjC -all_load -weak_library /usr/lib/libz.dylib ..</string>
它將你的dylib添加到調試和運行設置..不能使用自動完成,因為xcode可以用於框架,但仍然比手動更好
編輯:expalin
<key>Targets</key>
<array>
<dict>
<key>Dependencies</key>
<array><integer>0</integer></array>
<key>Frameworks</key>
<array>
<string>CoreAudio</string>
</array>
<key>SharedSettings</key>
<dict>
<key>OTHER_LDFLAGS</key>
<string>-ObjC -all_load -weak_library /usr/lib/libz.dylib -weak_library /usr/lib/libstdc++.dylib </string>
</dict>
</dict>
我發現這樣做的最好方法是在templates文件夾中創建/ usr / lib目錄的別名。 從那里,您可以訪問/ usr / lib中的所有庫,甚至是別名本身的庫。
首先,我通過在XCode中編輯.plists來創建模板,而不是通過編輯xml表示本身。 所以,這就是我將如何解釋我將靜態庫包含到模板中的步驟。
1)我有一個項目模板:iPhoneOS.platform / Developer / Library / Xcode / Templates / Project Templates / Application / C4 Application.xctemplate
(在Xcode 4.3中,可以直接在Xcode.app中找到項目模板/應用程序,方法是右鍵單擊該包並選擇“顯示包內容”)
這個文件夾的內容如下所示:
2)正如您在上圖中看到的,我為包含靜態庫的lib文件夾( /usr/lib
)創建了一個別名,並將別名移動到我的.xctemplate文件夾中。
3)在我的TemplateInfo.plist文件中,我指定了兩件事:一個字典和一個節點。 我把它們放在TemplateInfo.plist的Definitions和Nodes中
首先,在Definitions節點中,我指定一個名為:Libs / libalias.dylib的字典
在這個lib里面我有2個字符串組:Libs Path:lib / libalias.dylib
該節點如下所示:
重要的是語法必須與此完全相同,最重要的是,Dictionary本身的名稱指定了要導入的庫。 在這種情況下,我正在導入libalias.dylib庫。
Path是lib / libalias.dylib也很重要,因為這將指向指向/ usr / lib文件夾的別名。
其次,在Nodes數組中,我將一個項指定為一個名為Libs / libalias.dylib的字符串(注意:與我在Definitions中指定的字典完全相同)
這就是節點項應該是什么樣子。
4)設置完這些內容后,您可以創建一個包含lib的新項目。
注意:因為我調用了我的Dictionary Libs / ...並將其指定為Group,因為我導入的庫出現在我的Project Navigator中名為Libs的子文件夾中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.