Крюк в Podfile для редактирования файла моего проекта

Я хочу исправить ошибку Cocoapods, когда она добавляет Embed Pods Frameworks фаза сборки для целей расширения. Эти фазы там не нужны.

https://github.com/CocoaPods/CocoaPods/issues/4203

Я написал скрипт для его удаления

puts "Deleting not needed phases…"
project_path = "Keyboard.xcodeproj"
project = Xcodeproj::Project.open(project_path)
project.targets.each do |target|
    if target.name.include?("Extension")
        phase = target.shell_script_build_phases.find { |bp| bp.name == 'Embed Pods Frameworks' }
        if !phase.nil?
            puts "Deleting Embed Pods Frameworks phase…"
            target.build_phases.delete(phase)
        end
    end
end

project.save

Я могу запустить этот скрипт после pod install вручную, но я хочу как-то добавить его в Podfile. Это не работает в post_install крюк

post_install do |installer|
    ...
end

так как UserProjectIntegrator.integrate! называется после post_install и это отменяет мои изменения.

Есть ли способ интегрировать этот скрипт в Podfile?

2 ответа

Решение

Краткий ответ: нет.
Длинный ответ:
Из вывода pod install --verboseфаза сборки Embed Pods Frameworks добавляется в Integrating client project который запускается после шага post_install в Podfile. Вот почему вы должны выполнить этот скрипт отдельно после завершения установки модуля.

Мне удалось решить ту же проблему, используя хук post_integrate.

      post_integrate do |installer|
   # your changes to the build phase
end
Другие вопросы по тегам