Добавьте фреймворк для ссылки на двоичный файл с библиотеками, используя xcodeproj

В настоящее время я борюсь с Xcodeproj, чтобы иметь возможность добавить некоторые библиотеки и изменить некоторые детали. в моем проекте Xcode. Я новичок в Ruby и обычно использую Xcode только для компиляции своих проектов, поэтому вот где я сейчас нахожусь, пытаясь добавить CoreTelephony.framework, чтобы он отображался в «ссылке на двоичный файл с библиотеками», если я открываю проект в Xcode...

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)

... и это не работает, конечно. Если бы кто-то мог дать мне руку, чтобы я начал, это было бы очень признательно!


person marist    schedule 16.06.2016    source источник


Ответы (1)


Хорошо, я нашел несколько интересных примеров в 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
person marist    schedule 16.06.2016