⚙️

Flutter Dart-defineでInfo.plistの値も変更する

2022/07/26に公開

Dart-define便利

https://zenn.dev/riscait/articles/separating-environments-in-flutter

簡単にビルド設定切り替えられてとっても便利。感謝です。

でもちょっとだけ悩んだのがgoogle_sign_inで、

https://pub.dev/packages/google_sign_in

iOSでGoogle Signinしたい時は、Info.plistにREVERSED_CLIENT_ID相当の値を埋め込まないといけない。当然取り込むGoogleService-Info.plistが変わった時はInfo.plist内の値も変えないと駄目。面倒だ。

xcconfigファイルで定義する

元の記事ではFlavorに対応してxcconfigファイルを作成しています。これを利用すれば解決出来そう、と取り組んでみました。

//  dev.xcconfig

FLAVOR=dev
REVERSED_CLIENT_ID=com.googleusercontent.apps....
//  prod.xcconfig

FLAVOR=prod
REVERSED_CLIENT_ID=com.googleusercontent.apps....

REVERSED_CLIENT_IDを定義したらInfo.plist中で使うだけです。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>$(REVERSED_CLIENT_ID)</string>
        </array>
    </dict>
</array>

Discussion