• Xcode 工程文件“.xcodeproj”文件夹解析


    项目.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文件。

  • 相关阅读:
    asp.net Ctrl+回车提交
    Request.Form.Keys保存的是什么?
    让iframe子窗体取父窗体地址栏参数(querystring)
    Repeater在无数据记录时显示类似GridView空模板(EmptyDataTemplate)
    jQuery与javascript对照学习(获取父子前后元素)
    internet缓存Temp中的tmp文件
    C#反射遍历一个对象属性(小技巧)
    silverlight序列化反序列化,在c#其他程序反序列化
    Silverlight序列化反序列化(json.net)
    卸载oracle
  • 原文地址:https://www.cnblogs.com/xieyulin/p/7060193.html
Copyright © 2020-2023  润新知