2011-11-08 75 views
12

我可以包括在TemplateInfo.plist文件像這樣的框架:如何在XCode模板中包含靜態庫依賴項?

<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> 

但我找不到怎麼做靜態庫類似的東西。這將大大提高我的模板。有沒有這樣的功能?

+0

嗨,我正在尋找相同的,你找到一個解決方案? – moka

+0

不,對不起!沒有運氣... :( –

回答

7

我找到了解決方案。

在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> 

+0

你可以指定你的意思是目標 - > SharedSettings?我試圖讓這個工作,但不能... –

3

我發現這樣做的最好方法是爲模板文件夾中的/ usr/lib目錄創建一個別名。從那裏,您可以訪問/ usr/lib中的所有庫,甚至可以訪問自己的別名。

首先,我通過編輯XCode中的.plists創建模板,而不是通過自己編輯xml表示。所以,這就是我將如何解釋我將靜態庫包含到我的模板中的步驟。


1)我有一個項目模板: iPhoneOS.platform /開發/庫/ Xcode中/模板/項目模板/應用/ C4 Application.xctemplate

(在Xcode的4.3項目模板/應用可以通過右鍵單擊包並選擇顯示包內容在Xcode.app直接找到)

image

此文件夾的膽量是這樣的:

image

2)正如你可以在上面的圖片中看到,我創建了一個別名包含靜態庫lib文件夾(/usr/lib)和移動的別名到我.xctemplate文件夾中。

image

3)在我TemplateInfo.plist文件我指定兩兩件事:一個字典和一個節點。我把他們的定義和節點內的TemplateInfo.plist

image

首先,在定義節點我指定的字典叫: 利布斯/ libalias.dylib

這裏面的lib我有2個字符串 組:Libs 路徑:lib/libalias。dylib

節點如下:

image

的語法完全像這是很重要的,最重要的是,詞典本身的名稱指定要導入庫。在這種情況下,我正在導入libalias.dylib庫。

Path是lib/libalias.dylib也很重要,因爲它會指向指向您的/ usr/lib文件夾的別名。

其次,節點陣列中的我指定的項目作爲被稱爲利布斯/ libalias.dylib串(注:作爲字典我在定義中指定的完全相同的名稱)

image

這是節點項目應該看起來像什麼。

4)一旦你設置了這些東西,你可以創建一個新的項目,你的lib已經包含在內。

image

注:因爲我把我的字典利布斯/ ...並指定這是集團利布斯在我的項目導航叫利布斯子我進口出現的庫。

+0

我早就這樣做了..但我發現添加flag更容易模板,因爲我需要與我的團隊成員分享我的模板,要求每個人創建一個別名很困難。 – Kamal

+0

我與很多人分享我的模板,我給他們一個安裝程序,它工作得很好,很乾淨。無論哪種方式,我認爲我的答案是相當不錯的。 –

+0

現在應該很開心:) – Kamal

相關問題