Подтвердить что ты не робот

Добавить run script фазу сборки в проект Xcode от podspec

Я пытаюсь написать спецификацию Cocoapods для своей библиотеки, которая должна изменить проект Xcode и добавить "Запустить Script Фаза сборки" для цели проекта. Я думал, что могу использовать post_install. Но "pod spec lint" говорит, что этот хук устарел:

- WARN  | [iOS] The post install hook of the specification DSL has been deprecated, use the `resource_bundles` or the `prepare_command` attributes.

Я понятия не имею, как заменить post_install hook на * resource_bundles * или * prepare_command *. Кто знает какой-либо другой подход к решению моей проблемы? Возможно ли это?

И еще одна проблема заключается в том, как изменить проект Xcode для добавления фазы сборки, но это актуально только тогда, когда решена проблема post_hook.

4b9b3361

Ответ 1

Используйте рубиновый камень Xcodeproj (который является частью Cocoapods), чтобы написать script, который изменяет ваш проект Xcode.

Затем вы вызываете этот script с помощью prepare_command.

require 'xcodeproj'
path_to_project = "${SOURCE_ROOT}/${PROJECT_NAME}.xcodeproj"
project = Xcodeproj::Project.open(path_to_project)
main_target = project.targets.first
phase = main_target.new_shell_script_build_phase("Name of your Phase")
phase.shell_script = "do sth with ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/your.file"
project.save()

Документация: http://rubydoc.info/gems/xcodeproj/frames

Вы можете получить список переменных установки сборки и их значений, запустив...

xcodebuild -project [ProjectName].xcodeproj -target "[TargetName]" -showBuildSettings

UPDATE: С тех пор как этот ответ был написан, изменилось несколько вещей. Вопрос о доступе к переменным среды в настоящее время обсуждается здесь: https://github.com/CocoaPods/CocoaPods/issues/2115