LoginSignup
1
1

More than 5 years have passed since last update.

fastlane の info.plist 指定でハマったのでメモ

Last updated at Posted at 2017-10-26

tl;dr

info_plist_path の実体が xcodeproj + ".." + plist_path になるようにパラメータを書け

どういうこと?

update_app_identifier() とか update_info_plist() とかは、 iOS向けビルドを作るために fastlane にお仕事してもらう際、アプリのBundle IDとかアプリ名称とかを変更してもらう時に使う。
Dev版と本番で名前変えたいとかそういうたぐい。こんな使い方。

update_app_identifier(
  xcodeproj: PROJ_PATH,
  plist_path: PLIST_PATH,
  app_identifier: "com.example.testapp.dev"
)
update_info_plist(
  xcodeproj: PROJ_PATH,
  plist_path: PLIST_PATH,
  display_name: "[dev] example app"
)

んで、カンで 「xcodeproj と plist_path それぞれそのものを示してればいいんだろうなー」と考えて設定していたが、どうしてもfastlaneがその .plist を見つけられない。

原因は

この2つ、 .plist へのパスをこんな風に作ってやがりました。

info_plist_path = File.join(params[:xcodeproj], '..', params[:plist_path])

('A`)なんで

遠因は

この時いじっていたのが ionic だったので、プロジェクトフォルダが ./platforms/ios/target.xcodeproj とかにあり、真面目に相対パス書いてたのでこのパスの作り方の地雷を踏んだ形。

update_info_plist(
  xcodeproj: "./platforms/ios/target.xcodeproj",
  plist_path: "./platforms/ios/target/target-Info.plist"
)

info_plist_path = "./platforms/ios/platforms/ios/target/target-Info.plist"

そりゃそんな所には何もありませんわ....

対処は

別に xcodeproj に指定してるパスに対して何かをしてるわけではなさそうなので、出来上がる info_plist_path を想像しながら

update_info_plist(
  xcodeproj: "./target.xcodeproj",
  plist_path: "target/target-Info.plist"
)

とか書いてやりゃあいい。
地雷踏んでた ionic の例だとこう。

update_info_plist(
  xcodeproj: "./platforms/ios/target.xcodeproj",
  plist_path: "target/target-Info.plist"
)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1