我爲需要引用sqlite3.dylib的iOS創建了Xcode 4項目模板。如果我在模板的Definitions元素中將PathType設置爲Absolute for sqlite3.dylib,我可以獲取模板來創建有效的項目。在Xcode 4中設置PathType相對於SDK的TemplateInfo.plist
我希望能夠將PathType定義爲相對於SDK,任何人都可以提供關於相對於SDK使用的庫引用的正確PathType的建議。
謝謝。
我爲需要引用sqlite3.dylib的iOS創建了Xcode 4項目模板。如果我在模板的Definitions元素中將PathType設置爲Absolute for sqlite3.dylib,我可以獲取模板來創建有效的項目。在Xcode 4中設置PathType相對於SDK的TemplateInfo.plist
我希望能夠將PathType定義爲相對於SDK,任何人都可以提供關於相對於SDK使用的庫引用的正確PathType的建議。
謝謝。
這一個花了我幾個小時。我也面臨同樣的問題,沒有任何來自蘋果的文檔,幾乎不可能弄清楚。我在XCode二進制文件上做了一些逆向工程,並在Xcode3UI
二進制文件中找到了證據。他們定義了以下(內部)枚舉:
_PBXSourceTree_Absolute
_PBXSourceTree_BuildProduct
_PBXSourceTree_CurrentSDK
_PBXSourceTree_DeveloperDir
_PBXSourceTree_Group
_PBXSourceTree_Project
我測試了它,並且確實如此。以下是爲PathType ALL有效值:
我覺得你很對「CurrentSDK」感興趣。
希望這會有所幫助&問候,克里斯蒂安
這是我已經解決它:
<key>libsqlite3.dylib</key>
<dict>
<key>Path</key>
<string>/usr/lib/libsqlite3.dylib</string>
<key>PathType</key>
<string>Absolute</string>
<key>FileType</key>
<string>wrapper.framework</string>
</dict>
這不是從SDK目錄,但效果很好的iOS 4.x和5.x模擬器。
好吧,如果你真的想從SDK,添加到您的TemplateInfo.plist:
<key>Targets</key>
<array>
<dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>ShellScript</string>
<key>ShellPath</key>
<string>/bin/bash</string>
<key>ShellScript</key>
<string>
grep '/usr/lib/libsqlite3.dylib; sourceTree = "<absolute>"' "$PROJECT_DIR/$PROJECT_NAME.xcodeproj/project.pbxproj" &&
sed -i -e 's|/usr/lib/libsqlite3.dylib; sourceTree = "<absolute>"|usr/lib/libsqlite3.dylib; sourceTree = SDKROOT|g' "$PROJECT_DIR/$PROJECT_NAME.xcodeproj/project.pbxproj"
唯一不方便的:你需要的變化生效之前建立從模板生成的項目。第一次構建完成後,您需要關閉/打開prj。