急に会社の人から
「iOS11になったら〇〇アプリが動かなくなったんだがなんとかしろ」
と言われたので、最後にビルドしたのが何年前(3年前ぐらいかな)なのかわからないアプリをビルドできるようにしました。
ビルドできなくなった理由
基本的に、起動できなくなった理由は64bit対応だと思います。
iOS11から64bit対応していないアプリは起動できなくなったっぽい。
(アプリを起動すると、最新版をストアから落としてね!みたいな固定文言が出て落ちたような気がします)
※未だに64bit対応していないアプリが64bit対応だけで申請できるようになるほどAppleは甘くありません。
参考
http://sbapp.net/appnews/app/upinfo/ios11/32bit-67893
早速64bit対応
ちゃんとやりたい人は以下参照
https://developer.apple.com/jp/documentation/CocoaTouch64BitGuide.pdf
Project → [Build Settings] → [Architectures] → [Valid Architecture] にarm64を追加。
左(上)から armv7 armv7s arm64 になっていたらOK。

適当に調べると上で終わりのところが多かったのですが、それだけでは動かなかったので、動かない人は以下参照。
上記で動かない方
その1 Architecture
Project → [Build Settings] → [Architectures] → [Architecture] を **Standard architecture...**に変更。
※元々は $(ARCHS_STANDARD_32_BIT) - $
みたいな感じになってました。たぶんこのままだと32bitビルドになりますのでiOS11でビルドできません。

その2 Bitcode
Project → [Build Settings] → [Build options] → [Enable Bitcode] を NO に変更。
※YESでもちゃんと設定したり、使ってなかったりするとYESでも大丈夫かもしれません。めんどくさいのでNOで。

その3 許可系
ATS
もう説明不要でしょうが、iOS9から追加されたATSを無効にしましょう。
※できればちゃんと対応してほしいが、広告とか入れているアプリはどうせ無効にするので...
参考
https://qiita.com/tonkotsuboy_com/items/9c056b4b2b1ffb85615e
カメラとか写真(PhotoLibrary)とか音楽とかマイクとか...を使っている場合
iOS10から許可をとらないといけないです。
※ビルドはできるが実行時に落ちるので注意
カメラだったらKeyは、Privacy - Camera Usage Description
です。
Valueに書いた内容がアラートに表示されます。

対象となる操作 | 対応するキー | |
---|---|---|
1 | メディアライブラリへのアクセス | NSAppleMusicUsageDescription |
2 | Bluetooth インターフェースへのアクセス | NSBluetoothPeripheralUsageDescription |
3 | カレンダーへのアクセス | NSCalendarsUsageDescription |
4 | カメラへのアクセス | NSCameraUsageDescription |
5 | 連絡先へのアクセス | NSContactsUsageDescription |
6 | ヘルスデータへのアクセス | NSHealthShareUsageDescription |
7 | ヘルスデータの変更 | NSHealthUpdateUsageDescription |
8 | HomeKit の設定データへのアクセス | NSHomeKitUsageDescription |
9 | 位置情報へのアクセス (常に許可) | NSLocationAlwaysUsageDescription |
10 | 位置情報へのアクセス (使用中のみ許可) | NSLocationWhenInUseUsageDescription |
11 | マイクへのアクセス | NSMicrophoneUsageDescription |
12 | 加速度計へのアクセス | NSMotionUsageDescription |
13 | フォトライブラリへのアクセス | NSPhotoLibraryUsageDescription |
14 | リマインダーへのアクセス | NSRemindersUsageDescription |
15 | Siri へユーザーデータ送信 | NSSiriUsageDescription |
16 | Speech Recognition Server へのユーザーデータ送信 | NSSpeechRecognitionUsageDescription |
引用:[iOS 10] 各種ユーザーデータへアクセスする目的を記述することが必須になるようです | ||
https://dev.classmethod.jp/smartphone/iphone/ios10-privacy-data-purpose-description/ |
最後に
最後に1024 * 1024 のアプリアイコンを用意して入れましょう。(余裕があればiPhoneX用のスプラッシュ画像も)
入れなくても申請できるかもなんですが、アーカイブ上げた時にエラーが出るので入れておいたほうが無難です。
