Add run script build phase to Xcode project from podspec

两盒软妹~` 提交于 2019-12-18 10:52:36

问题


I'm trying to write Cocoapods specification for my library which must modify Xcode project and add "Run Script Build Phase" to project's target. I thought I can use post_install hook. But "pod spec lint" says that this hook is deprecated:

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

I have no idea how I can replace post_install hook with *resource_bundles* or *prepare_command*. Who knows any other approach to solve my problem? Is it possible?

And another problem is how to modify Xcode project to add build phase, but it is actual only when "post_hook problem" is solved.


回答1:


Use the Xcodeproj ruby gem (which is part of Cocoapods) to write a script that modifies your Xcode project.

You then call this script using the 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()

Documentation: http://rubydoc.info/gems/xcodeproj/frames

You can get a list of build setting variables and their values by running…

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

UPDATE: A few things have changed since this answer was written. The issue of accessing environment variables is currently being discussed here: https://github.com/CocoaPods/CocoaPods/issues/2115



来源:https://stackoverflow.com/questions/20072937/add-run-script-build-phase-to-xcode-project-from-podspec

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!