[iOS] CocoaPodsによって自動生成されるターゲットのBuild Settingsを変更する

2018.08.03

この記事は公開されてから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の値を変更します。

以下の例では、AlamofireRxSwiftターゲットの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

参考資料