2015年4月、Appleは開発者に対し、2015年6月以降、App Storeに提出するすべてのアプリとアプリのアップデートは64ビット対応でなければならないと注意喚起しました。それから1年以上が経過した現在でも、一部のアプリは依然として32ビット版のままで、64ビットデバイスに対応していません。iOS 10では、64ビット版のiPhone、iPad、iPod touchで32ビットアプリを開いた際に表示される、新たな警告メッセージを導入することで、アプリ名を明記し、64ビット版のiPhone、iPad、iPod touchで32ビットアプリを開いた際に警告メッセージを表示するという、明確な対策が取られています。
アップルの名指しと非難のきっかけ
「このアプリは64ビットにアップデートされていません」と、64ビット非対応のアプリを起動するとiOSが表示するメッセージが表示されます。「使用すると、システム全体のパフォーマンスに影響する可能性があります。」
ユーザーは「OK」をタップしてダイアログを閉じ、アプリの使用を続ける必要があります。このプロンプトは初回起動時だけでなく、アプリを起動するたびに表示されます。ご存じない方のためにご説明すると、A7以降のプロセッサを搭載したすべてのiOSデバイスは64ビットです。これには、iPhone 5s以降のiPhoneとiPad、iPad Air以降のすべてのモデルが含まれます。
32ビットアプリがiOSのパフォーマンスに悪影響を与える理由
32ビットアプリを64ビットiOSデバイスで起動すると、なぜiOSのパフォーマンスに影響するのか疑問に思うかもしれません。64ビット版のiPhone、iPad、iPod touchでは、iOSカーネルの64ビット版、ライブラリ、ドライバがデフォルトで読み込まれます。しかし、64ビットをサポートしていない32ビットアプリを起動すると、iOSは32ビット版のライブラリをメモリに強制的に読み込むため、アプリに割り当てできるメモリが少なくなってしまいます。
Apple自身の言葉によれば、「iOSが64ビットデバイス上で実行される場合、iOSには32ビット版と64ビット版のシステムフレームワークが別々に含まれています」とのことです。デバイス上で実行されるすべてのアプリが64ビットランタイム用にコンパイルされている場合、iOSはこれらのライブラリの32ビット版をロードしません。つまり、システムのメモリ使用量が削減され、アプリの起動が速くなります。
「内蔵アプリはすべてすでに64ビットランタイムをサポートしているため、64ビットデバイスで実行されるすべてのアプリ、特にバックグラウンド処理をサポートするアプリを64ビットランタイム用にコンパイルすることは、すべての人にとって有益です」とAppleは開発者に伝えた。
パフォーマンスに敏感でないアプリでも、このメモリ効率の恩恵を受けることができます。
「お知らせですが、2015年6月1日以降、App Storeに提出されるアプリのアップデートには64ビットのサポートが含まれ、iOS 8 SDKでビルドされている必要があります」と、同社は2015年4月に開発者に送った電子メールでアドバイスしている。
Apple の移行ガイドでは、32 ビットと 64 ビットの両方のデバイスで実行されるアプリ バイナリをコンパイルできる Xcode を活用して、アプリを 64 ビット アーキテクチャに移植する方法について詳しく説明しています。