Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

时间:2022-03-31 08:08:23

  在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然。

现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来。

官方说明文档  http://developer.apple.com/library/mac/#qa/qa1484/_index.html

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

你要理解这两种方法代表什么意思:
1.Create groups for any added folders:把选择的文件添加到工程的group下,如果你选择的是文件,则把文件夹认为是group。他添加的文件夹对应的工程目录和文件路径不一定是一一对应的。你可以删除文件,可以把这个文件删除在工程外,也可以删除文件对应的本地文件。应该它生成的文件夹是黄色的。
2.Create folder references for any added folders:这种方法是建立一个文件夹的索引,同时文件夹中的所有文件也会添加到整个工程。他添加的文件夹对应的工程目录和文件路径是一一对应的。你要删除其中的文件的话可以直接到文件目录下把文件删除,然后再刷新一下目录,文件就会被删除了。这样添加文件夹的方法很方便,你在做cocos2d的工程时应该会经常用到。应该他生成的文件夹是蓝色的。

其实我们可以根据上面的截图看到主要就是三个说明信息:

Destination   Copy items into destination group's folder (if needed)

Folders         Create groups for any added folders

Create folder references for any added folders

下面这几条信息进行说明:

1、Destination   Copy items into destination group's folder (if needed)

主要是说明,是否要将文件拷贝到工程所在目录。

如果不选中,而且该库文件不在工程目录下,引入文件的时候就仅仅是引入逻辑链接,不拷贝文件。(如果库文件移动,则可能在编译工程的时候出错)

如果选中,则将该文件拷贝到工程目录下(系统推荐的方式),虽然引用的也是逻辑链接,但是不会因为引动库文件而引起错误

当选择拷贝到工程目录下时,Xcode默认将文件夹拷贝到如下路径:与xxx.xcodeproj文件在同一层目录结构:

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders


2、Folders         Create groups for any added folders

导入文件的时候会是逻辑结构,而不是物理结构,目录结构图标如下,黄色的文件夹结构,和构建的Group是一样的

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

3、 Create folder references for any added folders

创建引入的是蓝色的文件夹结构,物理路径

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

在引用的过程中发现之前的一个错误,把库文件和系统自身的文件放置在一起,只是用文件夹区分,引用的时候总是需要加上文件夹名称,导致引用的路径很长,

其实发现Xcode自身就做了处理。

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

采取这样的方式加载第三方库文件的时候是需要给出文件夹的路径的,比较麻烦,最好的方式还是把第三方库文件放在和.xcodeproj平级的目录

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

但是这样虽然省略了文件夹引用路径,但是又来了一个缺点,引用的时候无法自动提示,需要手动敲入头文件,正确之后才不会报错

Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

还没找到很好的方法解决,但是这个问题可以很好的提示自己不要出错,不然就一个红色的感叹号在那里!

初步写了一下,还不是很完善,后面再整理一下,供大家参考。