内容简介:开发过程中经常遇到需要脚本拷贝文件,添加文件引用到Xcode,新建group,添加文件到Build Phase以及增加-fno-objc-arc标识等,这些都可以通过脚本实现。1.查找*.xcodeproj并打开
开发过程中经常遇到需要脚本拷贝文件,添加文件引用到Xcode,新建group,添加文件到Build Phase以及增加-fno-objc-arc标识等,这些都可以通过脚本实现。
准备工作
了解几个概念
- Target:指定了一个用于产品(product), 并且包含了从工程中的一些文件中构建产品的命令.
- Group:Group 其实是 Xcode 中用来组织文件的一种方式, 它对文件系统没有任何影响 , 无论你创建或者删除一个 Group, 都不会导致 folder 的增加或者移除. 当然如果在你删除时选择 Move to Trash 就是另外一说了,不过Xcode9开始已经同步了Group和Folder,New Group默认创建了对应的Folder.
- FileRef:FileRef 其实就是 File Reference 的缩写, 当你从 Xcode 中删除一个文件的时候, 它会弹出Remove Reference的提示框. 而其中的 Remove Reference 选项并不会将这个文件移除到垃圾桶, 而只是会将这个文件的引用从 Xcode 的工程文件中删除.
开始操作
1.查找*.xcodeproj并打开
project = Xcodeproj::Project.open('./*.xcodeproj')
2.获取Target
target = project.targets.first
3.创建Group
xcodeproj/project/object/group.rb
group = project.main_group.find_subpath(group的path)
4.添加文件到Group中
xcodeproj/project/object/group.rb 为了避免重复添加引用,添加之前先判断是否引用已经存在
if group.find_file_by_path(file_path) //引用已经存在 else //添加引用 file_ref = group.new_reference(file_path) end 复制代码
本次操作之后,这个文件就添加到了 group 中, 会出现在工程中的导航栏中。
但是这个文件并没有被添加到 Build Phases 中, 无论你是编译还是作为资源来使用, Xcode 都会提示你无法找到这个文件. 我们还需要把这个文件加入到 Build Phases 中.
5.添加文件到Build Phases中,为MRC设置-fno-objc-arc标识
xcodeproj/project/object/native_target.rb
如果文件是ARC,执行指令
target.add_file_references([file_ref])
如果文件是MRC,执行指令
target.add_file_references([file_ref],'-fno-objc-arc')
6.保存project
project.save
完整代码如下:
def add_file_reference_to_group(target, project, directory_path, to_group, need_mrc) if to_group and File::exist?(directory_path) then Dir.foreach(directory_path) do |entry| if entry != "." and entry != ".." and entry != ".DS_Store" pb_gen_file_path = entry if to_group.find_file_by_path(pb_gen_file_path) puts pb_gen_file_path + " reference exist" else file_reference = to_group.new_reference(pb_gen_file_path) if need_mrc and entry.include?("pbobjc.m") target.add_file_references([file_reference],'-fno-objc-arc') else target.add_file_references([file_reference]) end end end end project.save end end project = Xcodeproj::Project.open('./*.xcodeproj') target = project.targets.first group = project.main_group.find_subpath(要添加到的Group的path) add_file_reference_to_group(target, project, 想要添加到指定Group的file的path, group, true) 复制代码
以上所述就是小编给大家介绍的《ruby操作项目.xcodeproj》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- [最全操作指南] 在线六个项目全部迁移Linux
- 安全操作系统 Qubes OS 创始人宣布退出项目
- 这波操作不错——你真的会高效的在GitHub搜索开源项目吗?
- 移动端h5监听浏览器返回操作(目前在react项目中用到)
- 技术面试更注重项目经验还是操作系统、数据结构等基础知识?
- 前端项目无独立部署环境时,使用shell命令简化依赖后台部署的繁杂操作
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。