Xcodeプロジェクトを変更し、プロジェクトのターゲットに「スクリプトビルドフェーズの実行」を追加する必要があるライブラリのCocoapods仕様を作成しようとしています。 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フックを* resource_bundles *または* prepare_command *に置き換える方法がわかりません。私の問題を解決するための他のアプローチを誰が知っていますか?出来ますか?
もう1つの問題は、Xcodeプロジェクトを変更してビルドフェーズを追加する方法ですが、実際には「post_hook問題」が解決された場合にのみ発生します。
Xcodeproj Ruby gem(Cocoapodsの一部)を使用して、Xcodeプロジェクトを変更するスクリプトを記述します。
次に、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