2016-06-16 73 views
1

我目前正在努力與Xcodeproj能夠添加一些庫,並更改我的Xcode項目中的一些細節。 我很新的Ruby,通常只使用Xcode編譯我的項目,所以這裏是我目前的位置,試圖添加CoreTelephony.framework,使其出現在「鏈接到二進制庫」如果我在Xcode中打開項目..使用xcodeproj添加一個框架「鏈接到二進制庫」使用xcodeproj

require 'rubygems' 
require 'Xcodeproj' 

buildPath = '/Users/matth/Desktop/buildiOS/' 
origName = 'Unity-iPhoneOrig.xcodeproj' 
destName = 'Unity-iPhoneMod.xcodeproj' 

project = Xcodeproj::Project.new(buildPath + origName) 
project::Object::AbstractTarget::add_system_framework("CoreTelephony.framework") 
project.save(buildPath + destName) 

......當然,它不起作用。 如果有人能幫我一把,所以我開始了,這將是非常感謝!

回答

2

好吧,我發現了一些有趣的例子在gist

這裏有相應的一個,完美的作品:

def add_system_frameworks(project, names, optional = false) 
    project.targets.each do |target| 
     next unless TARGET == target.name 

     build_phase = target.frameworks_build_phase 
     framework_group = project.frameworks_group 

     names.each do |name| 
      next if exist_framework?(build_phase, name) 
      path = "System/Library/Frameworks/#{name}.framework" 
      file_ref = framework_group.new_reference(path) 
      file_ref.name = "#{name}.framework" 
      file_ref.source_tree = 'SDKROOT' 
      build_file = build_phase.add_file_reference(file_ref) 
      if optional 
       build_file.settings = { 'ATTRIBUTES' => ['Weak'] } 
      end 
     end 
    end 
end