#!/usr/bin/ruby
# 运行此脚本 ruby project_version.rb
# 需要先安装xcodeproj
# sudo gem install -n /usr/local/bin xcodeproj
require 'xcodeproj'
require 'json'
puts "需要传入 xcodeproj 文件路径"
project_path = gets.chomp.strip
# puts project_path
puts "需要添加或者删除-ld_classic,1:添加,2:删除"
ld_classic = gets.chomp.strip
# puts ld_classic
# 打开项目
project = Xcodeproj::Project.open(project_path)
# 修改构建设置
project.targets.each do |target|
# puts target
target.build_configurations.each do |config|
if config.build_settings.key?('OTHER_LDFLAGS')
puts "Config #{config.name} contains OTHER link flags"
other_ldflags = config.build_settings['OTHER_LDFLAGS']
if ld_classic == '1' #添加
if !other_ldflags.include?('-ld_classic')
other_ldflags.push('-ld_classic')
end
else #删除
if other_ldflags.include?('-ld_classic')
other_ldflags.delete('-ld_classic')
puts "Removed -ld_classic from OTHER_LDFLAGS in config #{config.name}"
end
end
# puts JSON.pretty_generate(OTHER_LDFLAGS)
else
# puts "Config #{config.name} does not contain OTHER link flags"
#如果不存在OTHER_LDFLAGS 则添加
if ld_classic == '1' #添加
if config.build_settings['OTHER_LDFLAGS'].nil? == true
puts "#{target.name} #{config.name} add $(inherited), -ld_classic"
config.build_settings['OTHER_LDFLAGS'] = ["$(inherited)", "-ld_classic"]
end
end
end
end
end
# 保存项目
project.save
关于-ld_classic的脚本
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- TOPS 杂谈 差点忘了还有一半的 ld 没写完,不过知识确实已经忘得差不多了!不得不吐槽下,只是看了的效果很差,...
- 这个困扰好久的问题终于找到答案了,亲测有效 ld:library not found for -lXXX 的问题有...
- 本章内容中心思想来自于我的老师Karena钟韵,她被誉为行走的埃及舞蹈文化教科书,对Classic的一些认知于东方...
- 每次遇到这种问题时解决起来都会很繁琐,因为这次用了这种方法解决了下次不一定管用,所以索性把问题和解决方法记录下来 ...