iOS自動打包之xcodeproj(二)

Demo地址:https://github.com/ayangcool/LeoLearnXcodeproj
iOS自動打包之xcodeproj(一)
iOS自動打包之xcodeproj(二)
iOS自動打包之xcodeproj(三)
iOS自動打包之xcodeproj(四)
iOS自動打包之xcodeproj(五)

添加.h .m文件
#!/usr/bin/ruby -w
#created by leo

# 添加 Person.h Person.m 到項目中  對應的刪除腳本為:remove_file_1.rb

require 'xcodeproj'

# 打開工程
project_path = './LeoXcodeProjDemo.xcodeproj'
project = Xcodeproj::Project.open(project_path)

# 查詢有多少個target
project.targets.each do |target|
    puts target.name
end

# 遍歷配置
project.targets[0].build_configurations.each do |config|
    puts config.name
    build_settings = config.build_settings
    build_settings.each do |key, value|
        print key, " == ", value, "\n"
    end
end

# 找到需要操作的target诫硕,我這里只有一個target
target_index = 0
project.targets.each_with_index do |target, index|
    if target.name == "LeoXcodeProjDemo"
        target_index = index
        puts target_index
    end
end
target = project.targets[target_index]

# 執(zhí)行shell命令紧憾,把 Person.h Person.m 復制到 LeoXcodeProjDemo 文件夾里
system 'cp ../testFile/PersonFile/Person.h ./LeoXcodeProjDemo/Person.h'
system 'cp ../testFile/PersonFile/Person.m ./LeoXcodeProjDemo/Person.m'

# 找到要添加的文件夾(此文件夾已存在且添加到項目中)
preson_file = project.main_group.find_subpath(File.join('LeoXcodeProjDemo'), false)

# 添加文件  .m到Compile Sources  .h只是索引
file_ref_mark = false
file_ref_list = target.source_build_phase.files_references

file_ref_list.each do |file_ref_temp| 
    puts file_ref_temp.to_s
    if file_ref_temp.path.to_s.end_with?("Person.m") then
        file_ref_mark = true
    end
end

file_h = "Person.h"
if !file_ref_mark 
    file_ref = preson_file.new_reference(file_h)
else
    puts "#{file_h} 文件引用已存在"
end

file_m = "Person.m"
if !file_ref_mark 
    file_ref = preson_file.new_reference(file_m)
    target.source_build_phase.add_file_reference(file_ref)
    # 也可以使用這個
    # target.add_file_references([file_ref])
else
    puts file_m + " 文件引用已存在"
end

project.save

把腳本放到和 .xcodeproj 同一層級的目錄衫仑,如圖:


腳本路徑.png

cd到腳本目錄內,執(zhí)行下面命令即可

ruby add_file_1.rb
刪除.h .m文件
#!/usr/bin/ruby -w
#created by leo

# 移除 Person.h Person.m  對應的添加腳本為:add_file_1.rb

require 'xcodeproj'

# 打開工程
project_path = './LeoXcodeProjDemo.xcodeproj'
project = Xcodeproj::Project.open(project_path)

# 查詢有多少個target
project.targets.each do |target|
    puts target.name
end

# 遍歷配置
project.targets[0].build_configurations.each do |config|
    puts config.name
    build_settings = config.build_settings
    build_settings.each do |key, value|
        print key, " == ", value, "\n"
    end
end

# 找到需要操作的target枪萄,我這里只有一個target
target_index = 0
project.targets.each_with_index do |target, index|
    if target.name == "LeoXcodeProjDemo"
        target_index = index
        puts target_index
    end
end
target = project.targets[target_index]

# 找到要操作的文件夾(此文件夾已存在且添加到項目中)
preson_file = project.main_group.find_subpath(File.join('LeoXcodeProjDemo'), false)

# 移除 .h索引
person_h_ref = preson_file.find_file_by_path("Person.h")
preson_file.remove_reference(person_h_ref)

# 移除 .m索引和Compile Sources引用
person_m_ref = preson_file.find_file_by_path("Person.m")
target.source_build_phase.remove_file_reference(person_m_ref)
preson_file.remove_reference(person_m_ref)

# 刪除源文件
system 'rm ./LeoXcodeProjDemo/Person.h'
system 'rm ./LeoXcodeProjDemo/Person.m'

project.save
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末舵稠,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子负蠕,更是在濱河造成了極大的恐慌,老刑警劉巖倦畅,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遮糖,死亡現場離奇詭異,居然都是意外死亡滔迈,警方通過查閱死者的電腦和手機止吁,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來燎悍,“玉大人敬惦,你說我怎么就攤上這事√干剑” “怎么了俄删?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奏路。 經常有香客問我畴椰,道長,這世上最難降的妖魔是什么鸽粉? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任斜脂,我火速辦了婚禮,結果婚禮上触机,老公的妹妹穿的比我還像新娘帚戳。我一直安慰自己,他們只是感情好儡首,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布片任。 她就那樣靜靜地躺著,像睡著了一般蔬胯。 火紅的嫁衣襯著肌膚如雪对供。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天氛濒,我揣著相機與錄音产场,去河邊找鬼。 笑死泼橘,一個胖子當著我的面吹牛涝动,可吹牛的內容都是我干的。 我是一名探鬼主播炬灭,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼醋粟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了重归?” 一聲冷哼從身側響起米愿,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鼻吮,沒想到半個月后育苟,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡椎木,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年违柏,在試婚紗的時候發(fā)現自己被綠了博烂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡漱竖,死狀恐怖禽篱,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情馍惹,我是刑警寧澤躺率,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站万矾,受9級特大地震影響悼吱,放射性物質發(fā)生泄漏。R本人自食惡果不足惜良狈,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一后添、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧们颜,春花似錦吕朵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阻问,卻和暖如春梧税,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背称近。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工第队, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刨秆。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓凳谦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衡未。 傳聞我的和親對象是個殘疾皇子尸执,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354