簡體   English   中英

如何在Xcode模板中包含靜態庫依賴項?

[英]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.

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