首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相对于SDK在Xcode4 TemplateInfo.plist中设置PathType

问相对于SDK在Xcode4 TemplateInfo.plist中设置PathType
EN

Stack Overflow用户
提问于 2011-11-13 07:35:20
回答 2查看 1.1K关注 0票数 3

我已经为iOS创建了一个需要引用sqlite3.dylib的Xcode4项目模板。如果我在模板的Definitions元素中将sqlite3.dylib的PathType设置为Absolute,我就可以让模板创建一个有效的项目。

我希望能够将PathType定义为相对于软件开发工具包,有谁可以提供建议,什么是正确的PathType是使库参考相对于软件开发工具包。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 20:25:49

这个花了我几个小时。我也面临着同样的问题,如果没有来自苹果的任何文档,几乎不可能弄清楚。我对XCode二进制文件进行了一些逆向工程,在Xcode3UI二进制文件中发现了一个证据。他们定义了以下(内部)枚举:

代码语言:javascript
复制
_PBXSourceTree_Absolute
_PBXSourceTree_BuildProduct
_PBXSourceTree_CurrentSDK
_PBXSourceTree_DeveloperDir
_PBXSourceTree_Group
_PBXSourceTree_Project

我测试了一下,肯定是这样的。以下是PathType的所有有效值:

  • Absolute (相当于“绝对Path")
  • BuildProduct”(相当于“相对于构建项目”) allowed)
  • Project (相当于“相对于SDK")
  • DeveloperDir”(相当于“相对于开发人员组”)但请注意,没有相对定义是allowed)
  • Project(相当于“相对于项目”)

我想您对"CurrentSDK“的价值非常感兴趣。

希望这能有所帮助&致敬,克里斯蒂安

票数 4
EN

Stack Overflow用户

发布于 2012-02-23 04:27:09

我是这样解决这个问题的:

代码语言:javascript
复制
<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 dir,但在iOS 4.x和5.x模拟器上工作良好。

好的,如果你真的想从SDK中得到它,把这个添加到你的TemplateInfo.plist中:

代码语言:javascript
复制
                <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 &#39;/usr/lib/libsqlite3.dylib; sourceTree = &quot;&lt;absolute&gt;&quot;&#39; &quot;$PROJECT_DIR/$PROJECT_NAME.xcodeproj/project.pbxproj&quot; &amp;&amp;
                                    sed  -i -e &#39;s|/usr/lib/libsqlite3.dylib; sourceTree = &quot;&lt;absolute&gt;&quot;|usr/lib/libsqlite3.dylib; sourceTree = SDKROOT|g&#39; &quot;$PROJECT_DIR/$PROJECT_NAME.xcodeproj/project.pbxproj&quot;

唯一的不便之处是:在更改生效之前,您需要构建一个从模板生成的项目。在第一次构建完成后,您需要关闭/打开prj。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8108390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档