利用xcodeproj修改xcode工程文件

转自:http://blog.csdn.net/xttxqjfg/article/details/54575982

文章主要介绍如何用命令行给xcode工程添加文件引用,当然,如果大伙觉得直接使用xcode添加文件更好,那接下来的内容就可以不用看了。

众所周知,xcode的工程文件是一堆让人无法理解的字符串,其实它也是有其规则的,我们可以使用xcodeproj这个插件来实现用代码修改xcode的工程文件。

首先:电脑安装ruby,且要求是2.2.2以上的版本,操作系统自带的是2.0的版本

安装步骤:

1、终端输入下面命令,目的是安装rvm,然后通过rvm来安装和管理ruby

curl -L get.rvm.io | bash -s stable

2、使用下面的命令载入rvm

source ~/.rvm/scripts/rvm

3、使用下面命令查看安装好的版本

rvm -v

4、安装ruby,版本号可以自己选择

rvm install 2.1.4

然后,安装xcodeproj插件,cocoapods就是利用这个插件来修改xcode工程文件的

安装步骤:

1、输入下面的命令即可安装,之后可以在终端中输入xcodeproj来检查是否安装成功

[sudo] gem install xcodeproj


到这里,插件的安装基本已经结束了,接下来的就是介绍如何用代码来修改xcodeproj文件

添加文件引用:

使用文本编辑器,保存下面ruby代码到名称为aa.rb的文件中。代码中的testXcodeproj为示例工程的名称,newGroup为新添加文件在xcode中的Group名称

[ruby]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. require 'xcodeproj'  
  2. project_path = ''    # 工程的全路径  
  3. project = Xcodeproj::Project.open(project_path)  
  4.   
  5. # 1、显示所有的target  
  6. project.targets.each do |target|  
  7.   puts target.name  
  8. end  
  9.   
  10. # 增加新的文件到工程中  
  11. target = project.targets.first  
  12. group = project.main_group.find_subpath(File.join('testXcodeproj','newGroup'), true)  
  13. group.set_source_tree('SOURCE_ROOT')  
  14.   
  15. # 获取全部的文件引用  
  16. file_ref_list = target.source_build_phase.files_references  
  17.   
  18. # 设置文件引用是否存在标识  
  19. file_ref_mark = false  
  20.   
  21. # 检测需要添加的文件是否存在  
  22. for file_ref_temp in file_ref_list  
  23.     puts file_ref_temp.path.to_s  
  24.     if file_ref_temp.path.to_s.end_with?('ViewController1.m'then  
  25.         file_ref_mark = true  
  26.     end  
  27. end  
  28.   
  29. if !file_ref_mark then  
  30.     file_ref = group.new_reference('ViewController1.h文件路径')  
  31.     target.add_file_references([file_ref])  
  32.     else  
  33.     puts '文件引用已存在'  
  34. end  
  35.   
  36. if !file_ref_mark then  
  37.     file_ref = group.new_reference('ViewController1.m文件路径')  
  38.     target.add_file_references([file_ref])  
  39.     else  
  40.     puts '文件引用已存在'  
  41. end  
  42. project.save  
  43. puts '文件添加完成'  

在终端中cd到rb文件的目录了,然后用下面明令运行rb文件,如果正常显示了,则表示xcode工程修改成功,可以用xcode打开工程查看

ruby aa.rb


下面代码为删除引用的ruby代码,操作步骤跟添加一致,比较粗糙,大伙看着自己修改

[ruby]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. require 'xcodeproj'  
  2. project_path = ''    # 工程的全路径  
  3. project = Xcodeproj::Project.open(project_path)  
  4.   
  5. # 1、显示所有的target  
  6. project.targets.each do |target|  
  7.   puts target.name  
  8. end  
  9.   
  10. # 从工程中删除文件  
  11. target = project.targets.first  
  12. group = project.main_group.find_subpath(File.join('testXcodeproj','newGroup'), true)  
  13. group.set_source_tree('SOURCE_ROOT')  
  14.   
  15. def removeBuildPhaseFilesRecursively(aTarget, aGroup)  
  16.     aGroup.files.each do |file|  
  17.         if file.real_path.to_s.end_with?(".m"".mm"".cpp"then  
  18.             aTarget.source_build_phase.remove_file_reference(file)  
  19.             elsif file.real_path.to_s.end_with?(".plist"then  
  20.             aTarget.resources_build_phase.remove_file_reference(file)  
  21.         end  
  22.     end  
  23.       
  24.     aGroup.groups.each do |group|  
  25.         removeBuildPhaseFilesRecursively(aTarget, group)  
  26.     end  
  27. end  
  28.   
  29. if !group.empty? then  
  30.     removeBuildPhaseFilesRecursively(target, group)  
  31.     group.clear()  
  32.     group.remove_from_project  
  33. end  
  34.   
  35. project.save  

祝大家成功实现!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值