Xcode 工程文件“.xcodeproj”文件夹解析
项目.xcodeproj 文件夹底下一般有4个文件:
project.pbxproj 文件
xcuserdata 文件夹
xcshareddata 文件夹
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”文件夹解析的更多相关文章
- Xcode工程添加第三方文件的详细分析 Create folder references for any added folders
在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...
- Xcode工程添加第三方文件的详细分析 Create folder references for any added folders(转)
在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...
- 细聊 Cocoapods 与 Xcode 工程配置
前言 文章比较长,所以在文章的开头我打算简单介绍一下这篇文章将要讲述的内容,读者可以选择通篇细度,也可以直接找到自己感兴趣的部分. 既然是谈 Cocoapods,那首先要搞明白它出现的背景.有经验的开 ...
- 论XCODE工程里使用的宏定义.
在XCODE开发过程中,经常会遇到引用头文件,引用库路径的问题,如果不是直接的源码引入,则需要在工程中增加设置.虽然现在有了Pod这类集合管理工具,但有时为了一个很小的lib引入Pod这尊大神还是有点 ...
- iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)
1. 来自 http://blog.csdn.net/fanjunxi1990/article/details/9352917 XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的, ...
- Xcode工程文件pbxproj
Xcode工程文件pbxproj Xcode会去读Project.pbxproj文件,把pbxproj转成plist文件,看起根目录结构 rootObject:指向的是我们的工程对象.(对应一个24个 ...
- SVN版本更新后,upData工程之后,Xcode 工程文件打不开解决办法
svn更新代码后,打开xcode工程文件,会出现 xxx..xcodeproj cannot be opened becausethe project file cannot be parsed. ...
- 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 ...
- 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 ...
随机推荐
- Financial Information Exchange (FIX) Protocol Interview Questions Answers[z]
What do you mean by Warrant?Warrant is a financial product which gives right to holder to Buy or Sel ...
- 解决 Windows 系统使用 Homestead 运行 Laravel 本地项目响应缓慢问题
laravel-china.com: https://laravel-china.org/articles/9009/solve-the-slow-response-problem-of-window ...
- 【转载】RHEL / CentOS 7 用 Yum 安裝 MySQL 5.6
久久未更新... 换好工作出去玩耍了一趟, 现在安装机器啦~ 装一个mysql 到centos 7, 一次转载一篇文章, 记录下: 原文地址:http://www.phpini.com/mysql/r ...
- python获取参数
argparse是python的一个命令行参数模块,可以解析命令行参数,生成帮助. 示例: #!/usr/bin/python from argparse import ArgumentParser ...
- HDU 2044 一只小蜜蜂...(递推,Fibonacci)
题意:中文题. 析:首先要想到达第 n 个蜂房,那么必须经 第 n-1 或第 n-2 个蜂房,那么从第 n-1 或第 n-2 个蜂房到达第 n 个,都各自有一条路线, 所以答案就是第 n-1 + 第 ...
- Exception in thread "main" java.lang.Error: Unresolved compilation problem
初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error: Unresolved ...
- python + selenium + Js 处理轮动条
selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借 ...
- [leetcode] 5. Minimum Depth of Binary Tree
二叉树基本功练习题,题目如下: Given a binary tree, find its minimum depth. The minimum depth is the number of node ...
- Windbg and resources leaks in .NET applications 资源汇总
Windows Forms Leaks 1.http://blogs.msdn.com/b/tess/archive/2008/02/04/net-debugging-demos-informatio ...
- 使用pscp/pslurp批量并发分发/回收文件
pssh pssh -h ip文件 本地文件 远程目录或文件 pslurp pslurp -h ip文件 -L 本地目录 远程文件 本地文件名称