メモ書き
ネットで色々調べればすぐ分かる内容ですが、情報がたくさんありすぎて苦労したのでメモとしてまとめました。
コンソールからの dSYM のアップロードは 2020 年 3 月 1 日をもってサポート終了となります。このアップロード処理はアップローダー スクリプトに置き換わります。上記のアップロード スクリプトを使用できます。
上記のようにFirebaseで案内していますが、コンソールからアップロードは廃止される予定です。
まず、Firebaseドキュメントを参考にXCodeのRunScriptに追加したらOKらしい。
"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
早速、RunScriptを作ったのはこんな感じです。
まず、RunScriptの環境変数を調べる
とりあえずこれを叩くと全てのパスが確認できる
xcodebuild -showBuildSettings
または、
$ xcodebuild -showBuildSettings | grep "XXX"
環境ことにGoogleService-Infoを置き換える
ビルド環境が分けてあって複数のGoogleService-Infoを使っている場合は下記のように置き換える必要があります。
#[CP]GoogleService-Info.json
# Replace GoogleService-Info.json file by environment
if [ "${CONFIGURATION}" = "Debug" ]; then
cp "${PROJECT_DIR}/${PROJECT_NAME}/GoogleService-Info-Debug.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
echo "Debug(Develop) GoogleService-Info copied."
elif [ "${CONFIGURATION}" = "Staging" ]; then
cp "${PROJECT_DIR}/${PROJECT_NAME}/GoogleService-Info-Staging.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
echo "Staging(Staging) GoogleService-Info copied."
elif [ "${CONFIGURATION}" = "Release" ]; then
cp "${PROJECT_DIR}/${PROJECT_NAME}/GoogleService-Info.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
echo "Production(Release) GoogleService-Info copied."
fi
シンボルをアップロードする
上記のように環境が分けてあるのでアップロードも分けて処理するようにしておく。
#upload symbols
if [ "${CONFIGURATION}" = "Debug" ]; then
"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info-Debug.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}"
echo "Debug(DEV) uploaded symbols."
elif [ "${CONFIGURATION}" = "Staging" ]; then
"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info-Staging.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}"
echo "Staging(Staging) uploaded symbols."
elif [ "${CONFIGURATION}" = "Release" ]; then
"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}"
echo "Production(Release) uploaded symbols."
fi
Fabric initialize
これなんのためなのか分からないが、Firebaseドキュメントに書いてあったので最後に追加しました。
#Fabric Initialize
"${PODS_ROOT}/Fabric/run"
ダメだった。
Archiveする際にアップロードはできているが(ログ上の確認)なぜか、Firebase上ではアップロードされませんでした。
誰かご存知の方、教えてください。
結局、ArchivingしたファイルからdSYMsをコピーしてターミナルでアップロードしました。
(これで一応SymbolはアップロードできてFirebase上でもアップロード表示に変わります。)
ターミナルコマンド
{プロジェクトのパス}/Fabric/upload-symbols -gsp {プロジェクトのパス}/GoogleService-Info.plist -p ios {dSYMsの場所}
以上。