LoginSignup
7
2

More than 5 years have passed since last update.

超古いアプリがiOS11で急にアプリが起動できなくなったら(64bit 対応とかいろいろ)

Posted at

急に会社の人から
「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。

スクリーンショット 2017-10-23 18.08.26.png

適当に調べると上で終わりのところが多かったのですが、それだけでは動かなかったので、動かない人は以下参照。

上記で動かない方

その1 Architecture

Project → [Build Settings] → [Architectures] → [Architecture] を Standard architecture...に変更。
※元々は $(ARCHS_STANDARD_32_BIT) - $ みたいな感じになってました。たぶんこのままだと32bitビルドになりますのでiOS11でビルドできません。

スクリーンショット 2017-10-23 18.15.02.png

その2 Bitcode

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

スクリーンショット 2017-10-23 18.22.18.png
※画像はYESだけどNOにする

その3 許可系

ATS

もう説明不要でしょうが、iOS9から追加されたATSを無効にしましょう。
※できればちゃんと対応してほしいが、広告とか入れているアプリはどうせ無効にするので...
参考
https://qiita.com/tonkotsuboy_com/items/9c056b4b2b1ffb85615e

カメラとか写真(PhotoLibrary)とか音楽とかマイクとか...を使っている場合

iOS10から許可をとらないといけないです。
※ビルドはできるが実行時に落ちるので注意

カメラだったらKeyは、Privacy - Camera Usage Description です。
Valueに書いた内容がアラートに表示されます。

スクリーンショット 2017-10-23 18.42.52.png

対象となる操作 対応するキー
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用のスプラッシュ画像も)
入れなくても申請できるかもなんですが、アーカイブ上げた時にエラーが出るので入れておいたほうが無難です。

スクリーンショット 2017-10-23 18.30.24.png

7
2
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
7
2