確認時の状態
- Xcodeバージョン: 12.5.1
- 配布対象アプリのタイプ: iOS
Include bitcode for iOS content
概要
AppStoreがアプリをコンパイルできるようにするため、アップロード内容にビットコード
(中間ファイル)を含める
詳細
AppStoreがアプリをコンパイルをできるようになると以下2点のメリットがある
- 対象デバイスとOSのバージョンに最適化されたアプリをコンパイルして配信してくれる
- 将来ハードウェア・ソフトウェア・コンパイラの変更があった際に、変更を適用した状態のアプリを再コンパイルし配信してくれる
そのためにアプリのビットコード
(中間ファイル)が必要な為、アップロード内容に含めるか選択する
Upload your app’s symbols to receive symbolicated reports from Apple
概要
Appleから受け取るクラッシュログのスタックトレースにclass名・func名などの情報も含めるため、クラッシュログ(.ipsファイル)の解析に必要なシンボル情報をAppleにアップロードする
詳細
iOSのクラッシュログ(.ipsファイル)は以下のようにエラーが発生したclassやfuncの場所がわからないようになっている
クラッシュログ
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libswiftCore.dylib 0x00000001b02cc398 0x1b029b000 + 201624
1 libswiftCore.dylib 0x00000001b02cc398 0x1b029b000 + 201624
2 test 0x00000001003518ac 0x10034c000 + 22700
3 UIKitCore 0x00000001af1e5ca4 0x1ae6af000 + 11758756
そこでアプリのシンボル情報
(.dSYMや.bcsymbolmap)を使用し、クラッシュログにクラス名や関数名の情報を付与する(このことをシンボル化(symbolicate)
という)
シンボル化後のクラッシュログ
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libswiftCore.dylib 0x00000001b02cc398 _assertionFailure+ 201624 (_:_:file:line:flags:) + 1504
1 libswiftCore.dylib 0x00000001b02cc398 _assertionFailure+ 201624 (_:_:file:line:flags:) + 1504
2 test 0x00000001003518ac @objc ViewController.didTapErrorButton(_:) + 22700 (<compiler-generated>:18)
3 UIKitCore 0x00000001af1e5ca4 -[UIApplication sendAction:to:from:forEvent:] + 96
この項目では、シンボル化された状態のクラッシュログをAppleから受け取るためにシンボル情報
をアップロードするか選択する