zoukankan      html  css  js  c++  java
  • 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文件。

  • 相关阅读:
    Codeforces Gym 100571A A. Cursed Query 离线
    codeforces Gym 100500 J. Bye Bye Russia
    codeforces Gym 100500H H. ICPC Quest 水题
    codeforces Gym 100500H A. Potion of Immortality 简单DP
    Codeforces Gym 100500F Problem F. Door Lock 二分
    codeforces Gym 100500C D.Hall of Fame 排序
    spring data jpa 创建方法名进行简单查询
    Spring集成JPA提示Not an managed type
    hibernate配置文件中的catalog属性
    SonarLint插件的安装与使用
  • 原文地址:https://www.cnblogs.com/lurenq/p/7026185.html
Copyright © 2011-2022 走看看