古いiOSデバイスのサポートを切りたい
高性能なiOSデバイスでだけインストールできるようにしたい
iOS 14は一番古いiOSデバイスだとiPhone 6s、iPhone SE(初代)からサポートしているらしい。
いま個人でつくっているアプリがCore MLによる推論や動画エンコードが根幹となるので、処理能力が貧弱なデバイスへのインストールはできないようにしたい。
というわけでひさしぶりにUIRequiredDeviceCapabilitiesを漁ってみた。
ちなみに長いこと4sがサポートされていた頃は、Device Capabilityで `metal` を指定すれば4sをサポート外にできるというハックがあった。
iphone-ipad-minimum-performance-a12
Possible Valuesのリストから、`iphone-ipad-minimum-performance-a12` なるものを発見。
Performance and capabilities of the A12 Bionic and later chips. Available in iOS 12.0 and later.
ということで、A12 Bionic以降のチップを搭載しているデバイスに制限できるらしい!iOS 12で追加されたようだが知らなかった。
A12 BionicといえばiPhone XS以降。
うーむちょっと厳しすぎるような...せめてiPhone X以降ぐらいにしたい...
neural-engine とかの値を追加してくれませんかねAppleさん...
(Neural EngineはA11 Bionic / iPhone X以降)
nfc, arkit
UIRequiredDeviceCapabilitiesの新しめの値でいうと、`nfc`と`arkit`がある。もちろんアプリ内でNFC/ARKitを利用する機能がないと指定できないものだが、インストール可能なデバイスを制限する選択肢として効力があるのかどうか検討してみる。
まずARKitはそもそも「多くのデバイスで使えるように」というコンセプトでデプス等のハイエンドデバイスの機能を使わないようにつくられている(最近はそうでもないが)という認識なので、デバイスを制限する意図には合わないかなと。
たとえばiPhone 7 PlusのようにDepth(デプス/深度)を取れるようなデバイスの場合、それを使ってより精度良く検出するような処理を内部でやってたりするのか?ということを聞きました。
→ 回答:使ってない
普通のカメラだけで精度良く動くようなアルゴリズムになっていて、デバイスによる処理の差異はないそうです。
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/