fastlane: 2.3.0
Fastlaneでplistを更新する方法を調べたのでメモ。
update_info_plist
というアクションを使う。
fastlane/update_info_plist.rb at master · fastlane/fastlane · GitHub
app_identifier
とdisplay_name
についてはアクションのパラメータに直接渡せるが、それ以外は更新するロジックをブロックに書いて渡す。
以下はURL Schemeを環境別に更新する例。
正確なパラメータ名はplistファイルをxmlエディタで開いて確認する。
Fastfile
platform :ios do lane :update_url_scheme_dev do update_url_scheme(scheme: 'Dev') end lane :update_url_scheme_beta do update_url_scheme(scheme: 'Beta') end private_lane :update_url_scheme do |options| update_info_plist( plist_path: 'path/to/Info.plist', block: lambda { |plist| plist['CFBundleURLTypes'].each {|urlType| if urlType['CFBundleURLName'] == 'com.example.default-url-identifier' urlSchemes = urlType['CFBundleURLSchemes'] urlSchemes.map! {|urlScheme| TARGET_URL_SCHEME = 'myapp' if urlScheme.start_with?(TARGET_URL_SCHEME) "#{TARGET_URL_SCHEME}-#{options[:scheme].downcase}" else urlScheme end } end } } ) end end
実行
$ fastlane ios update_url_scheme_beta