项目.xcodeproj 文件夹底下一般有4个文件:

  1. project.pbxproj 文件

  2. xcuserdata 文件夹

  3. xcshareddata 文件夹

  4. project.xcworkspace 文件夹 (这里暂不讲解)

下面主要讲解涉及到 .xcschemes 相关文件,其他设置(例如断点一类的)暂不讲解

1.project.pbxproj 文件。

Xcode项目文件是一个老式的plist(下一个风格)根据括号分隔的层次结构。

refer:http://www.monobjc.net/xcode-project-file-format.html

解析此文件可以使用命令行工具“plutil”,例如

plutil -convert json -s -r  -o converted.json /Users/shaowei/Project/iphone-com-pub/baseframe/IphoneCom/IphoneCom.xcodeproj/project.pbxproj

plutil -convert xml1 -s -r  -o converted.xml /Users/shaowei/Project/iphone-com-pub/baseframe/IphoneCom/IphoneCom.xcodeproj/project.pbxproj

上面的命令是把指定project.pbxproj文件 转换到命令的当前目录下converted.son,详情请”man plural”来查询使用方法

注意:尽量带上“-o 结果文件”,否则的话此命令会修改project.pbxproj文件本身,想相信这不是你想要的。

还有converted.xml 的扩展名改为“converted.plist”,这样就能使用Xcode的来查看该文件,界面更友好,你懂得。

refer from: http://stackoverflow.com/questions/1452707/library-to-read-write-pbxproj-xcodeproj-files

其他解析方式如下(暂未验证有消息,只是网上找的):

http://stackoverflow.com/questions/7557273/tutorial-or-guide-for-scripting-xcode-build-phases

https://pypi.python.org/pypi/xUnique

2.xcuserdata 文件夹

此文件夹是项目创建时跟随创建的,

里面路径:mac用户名.xcuserdatad -> xcschemes -> (***.xcscheme + xcschememanagement.plist)

点击 Xcode的“manage schemes”,出现下图,

如果选中 “shared”,则会把该目录下的“mac用户名.xcuserdatad -> xcschemes -> ***.xcscheme”文件移动到“xcshareddata->xcschemes”文件夹下;

删除此文件夹的话,“ xcschememanagement.plist”会在启动该项目时重建的,但是“***.xcscheme”文件是不会重建的,你就会丢失xcscheme文件。

此目录下会有多个文件夹,这根据不同的用户来命名的,当使用版本管理器时,而且没有忽略该文件夹,你就会发现此目录下就可能会有多个人的目录。

一般来说,此目录不太建议放到svn里面,因为这个目录放的是一些个人设置,还有断点设置一类的,即使你放到svn里面,别人也不会加载,因为Xcode只会加载对应用户名的文件夹。

需要和别人共享的xcschemes,应该放到下面的“xcshareddata”文件夹,然后使用svn来同步“xcshareddata”文件夹

3.xcshareddata 文件夹

项目一开始时,是没有“xcshareddata”文件夹的。

当上图的 “shared”复选框被选中,则会把 “xcuserdata”里相应的xcscheme文件移动到本目录的xcschemes文件夹下,这时才会创建此文件夹。

多人开发时,为了支持共享xcscheme,一般会勾选“shared”,这样,相应的“***.xcscheme”就会被移动到该目录下。

所以在多人开发时,应该把此目录放到svn里去同步,同时注意,被共享的“***.xcscheme”也会影响到队友,要慎重修改。

注意:删除此目录后,重新打开项目也不会重建的,删之要慎重~

如果删除此目录,而“xcuserdata”文件夹下也没有xcscheme文件,那么你打开项目,就会出现如下图情况,就是无法编译了;

如果出现了下面的情况,那么你把”xcuserdata”文件夹给删除掉,重启项目,Xcode会重新创建xcuserdata文件夹和默认的xcscheme文件。

Xcode 工程文件“.xcodeproj”文件夹解析的更多相关文章

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

    在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...

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

    在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...

  3. 细聊 Cocoapods 与 Xcode 工程配置

    前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开 ...

  4. 论XCODE工程里使用的宏定义.

    在XCODE开发过程中,经常会遇到引用头文件,引用库路径的问题,如果不是直接的源码引入,则需要在工程中增加设置.虽然现在有了Pod这类集合管理工具,但有时为了一个很小的lib引入Pod这尊大神还是有点 ...

  5. iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)

    1. 来自 http://blog.csdn.net/fanjunxi1990/article/details/9352917 XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的, ...

  6. Xcode工程文件pbxproj

    Xcode工程文件pbxproj Xcode会去读Project.pbxproj文件,把pbxproj转成plist文件,看起根目录结构 rootObject:指向的是我们的工程对象.(对应一个24个 ...

  7. SVN版本更新后,upData工程之后,Xcode 工程文件打不开解决办法

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened becausethe project file cannot be parsed. ...

  8. Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed ...

  9. Xcode工程文件打不开:cannot be opened because the project file cannot be parsed

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed ...

随机推荐

  1. mybatis逆向工程的注意事项:mapper文件内容不是覆盖而是追加

    XXXMapper.xml文件已经存在时,如果进行重新生成则mapper.xml文件内容不被覆盖而是进行内容追加,结果导致mybatis解析失败. 解决方法:删除原来已经生成的mapper xml文件 ...

  2. netbeans下调试php程序-xdebug

    环境说明: pc系统:ubuntu 16.04 php版本:5.6.23 apache:Apache/2.4.18 (Ubuntu) 第一步:修改xdebug.ini 打开文件/etc/php/5.6 ...

  3. iOS Orientation获取

    [iOS Orientation获取] 1.[[UIDevice sharedInstance] orientation] 必须调用beginGeneratingDeviceOrientationNo ...

  4. php redis 单例模式

    单例模式思想其实很简单 首先 有一个实例的静态变量 构造方法和克隆方法设置为私有,防止外部直接new 提供一个获取实例的静态方法 代码如下: class Redis { private static ...

  5. cron.c

    /* $OpenBSD: cron.c,v 1.39 2007/02/18 23:59:03 jmc Exp $ */ /* Copyright 1988,1990,1993,1994 by Paul ...

  6. [转]Clean up after Visual Studio

    本文转自:https://weblogs.asp.net/psheriff/clean-up-after-visual-studio As programmer’s we know that if w ...

  7. CYUSB3014固件部分低版本工程在Eclipse中编译得到img文件时无效的解决方案

    最近在做基于我们AC6102开发板的UVC图像视频方案,下载了官方的an75779应用工程,但是倒入到FX3—SDK自带的Eclipse中后,却无法编译生成img文件,经过比对后确认是生成该文件的命令 ...

  8. 基数排序简单Java实现

    基数排序(radix sort)又称“桶子法”,在对多个正整数进行排序时可以使用.它的灵感来自于队列(Queue),它最独特的地方在于利用了数字的有穷性(阿拉伯数字只有0到9的10个). 基数排序使用 ...

  9. NETSH.EXE操作SSL

    NETSH.EXE操作SSL 程序位置:c:\windows\syswow64\netsh.exe 查看当前端口配置 netsh http show sslcert 将 SSL 证书绑定至端口号 ne ...

  10. Homework 4

    Homework 4 开发工具:dev c++ 开发语言:c++ 源代码上传至github:上传一直失败... 合作人:曹权 博客地址:http://www.cnblogs.com/c2016/ 这里 ...