美文网首页
关于-ld_classic的脚本

关于-ld_classic的脚本

作者: 执拗的男孩 | 来源:发表于2023-11-12 11:13 被阅读0次
    #!/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的脚本

          本文链接:https://www.haomeiwen.com/subject/yonlwdtx.html