lane :upload_latest_dsyms do download_dsyms(version: "latest") upload_symbols_to_crashlytics clean_build_artifacts end
を実行したら、こんなエラーが出た
[22:29:22]: ------------------------------------------- [22:29:22]: --- Step: upload_symbols_to_crashlytics --- [22:29:22]: ------------------------------------------- [22:29:23]: Extracting '/Users/hoge/hoge-1.0.0-201911121041.dSYM.zip'... [22:29:23]: $ unzip -qo /Users/hoge/hoge-1.0.0-201911121041.dSYM.zip +------------------+--------------------------------------------------------------------------------------+ | Lane Context | +------------------+--------------------------------------------------------------------------------------+ | DEFAULT_PLATFORM | ios | | PLATFORM_NAME | | | LANE_NAME | upload_latest_dsyms | | DSYM_PATHS | ["/Users/kensuke/hoge/hoge-1.0.0-201911121041 | | | .dSYM.zip"] | +------------------+--------------------------------------------------------------------------------------+ [22:29:23]: invalid byte sequence in UTF-8
どうやら unzip が失敗しているようなので、手元で unzip してみると、確かに unzip でこけている。
$ unzip -qo /Users/kensuke/hoge/hoge-1.0.0-201911121041.dSYM.zip error: cannot create bf73f681-9f66-3e36-83e4-f79219bafdf6.dSYM/Contents/Resources/DWARF/��������+������SS Illegal byte sequence
issue を探すと、ここに行き着いた。.app ファイル名が悪いらしい。
.app ファイルを見てみると、 ダメージ計算SS.app
となっており、日本語ファイル名になっている。これを英語名に変える必要がある。
.app ファイル名を変える
Build Settings > Packaging > Product Name を確認すると確かに日本語になっている。
これに対処するためには、以下の順序で設定を変える。
- display name を英語のにする
- Info.plist の
Bundle display name
をアプリ名に置き換える。
そうすると、Product Name は英語で指定した Display Name になり、アプリ名は Bundle display name で指定したものにできる。そして Display Name は Bundle display name で指定したものになる。
めちゃくちゃややこしい。
注意
今度アプリ名を変える時、 Display Name を変えると Bundle display name が上書きされてしまうので、 Bundle display name だけを変えるようにしましょう。