この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは。モバイルアプリサービス部の平屋です。
CocoaPodsによって自動生成されるターゲットのBuild Settingsを変更する機会があったので、その方法を紹介します。
検証環境
- macOS High Sierra 10.13.5
- Xcode Version 9.4.1
- cocoapods Version 1.5.3
実装
Podfileの中にBuild Settingsを変更する処理を書きます。
post_install
フックを使用して、ライブラリのインストール後にBuild Settingsの値を変更します。
以下の例では、Alamofire
とRxSwift
ターゲットのSWIFT_OPTIMIZATION_LEVEL
を変更しています。
platform :ios, '10.0'
use_frameworks!
target 'SampleApp' do
pod 'Alamofire'
pod 'RxSwift'
end
# インストール後に実行される処理
post_install do |installer|
# 変更対象のターゲット名
target_names = ["Alamofire", "RxSwift"]
target_names.each do |target_name|
# 変更対象のターゲット を探す
pods_target = installer.pods_project.targets.find{ |target| target.name == target_name }
unless pods_target
raise ::Pod::Informative, "Failed to find '" << target_name << "' target"
end
# ビルド設定を追加
pods_target.build_configurations.each do |config|
# Debug/Debug_Mockターゲットのみ変更する
if config.name == 'Debug' || config.name == 'Debug_Mock'
config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone'
end
end
end
end