После установки Cocoapod получите основной проект напрямую - PullRequest
0 голосов
/ 03 октября 2018

При создании CocoaPod Podspec для vendored_framework мне нужно установить скрипт оболочки, который будет запускаться после всех других build_phases в основном проекте.Единственный способ сделать это - найти каталог для файла .xcodeproj из Podfile.

post_install do |installer|
  project_name = Dir.glob("*.xcodeproj").first
  project = Xcodeproj::Project.open(project_name)
  project.targets.each do |target|
    inject_shell_script_build_phase(target)
  end
  project.save
end

. Это кажется смешным, учитывая, что pod install или pod update запущен иясно, что эта информация уже есть.Есть ли способ получить ссылку project напрямую, без необходимости глобализации или жесткого кодирования имени файла проекта?

1 Ответ

0 голосов
/ 05 октября 2018

https://guides.cocoapods.org/syntax/podfile.html

Существует installer.pods_project

post_install do |installer|
  project = installer.pods_project

  project.targets.each do |target|
    inject_shell_script_build_phase(target)
  end

  project.save
end

https://www.rubydoc.info/gems/cocoapods/Pod/Installer#pods_project-instance_method https://www.rubydoc.info/gems/cocoapods/Pod/Project наследуется от https://www.rubydoc.info/gems/xcodeproj/Xcodeproj/Project


для итерации * .xcodeproj вы можете сделать

post_install do |installer|
  installer.aggregate_targets.each do |target|
    user_project = target.user_project

    puts "#{user_project.path}"
  end
end

https://www.rubydoc.info/gems/cocoapods/Pod%2FInstaller%3Aaggregate_targets https://www.rubydoc.info/gems/cocoapods/Pod/AggregateTarget

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...