0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter】iOSとAndroidのOSバージョンアップの対応がなぜ必要か整理

0
Posted at

はじめに

毎年、iOSとAndroidのOSバージョンアップに伴い、モバイルアプリ開発者として対応が必要になりますが、あらためてなぜ必要か整理しました。

対応が必要な理由

古いOSバージョンが対象の場合、アップデートや新規リリースできなくなるからです。

端的にいうと、GoogleやAppleが古いOSバージョンを対象にしているアプリを許さないからです。

  1. ストアへの新規提出・アップデートの禁止
    毎年特定の時期(秋〜冬頃)を過ぎると、最新のOSバージョンを対象として、ビルドされていないアプリは、ストアの審査自体が拒否されます。
  2. ストアの検索結果からの除外(Android)
    放置されている過去のアプリでも、ユーザーのスマホOSより2世代以上古いOSバージョンを対象としていると、Playストアの検索結果に表示されなくなり、新規ダウンロードができなくなります。

どうすればいいのか?

iOS

XCodeのバージョンを対象のOSバージョンを対象としているバージョンにあげる

Android

build.gradleにあるtargetSdkとcompileSdkを対象のOSバージョンを対象としているバージョンにあげる

Flutter

上記のXCodeと、targetSdkとcompileSdkに対応したバージョンにあげる

なぜバージョンを上げないといけないのか?

iOS

iOSの方は、XCodeと対象のiOSバージョンが紐づいているので、新しいiOSバージョンを対象にするためには、対象のiOSバージョンをターゲットにしているXCodeのバージョンを使用して、ビルドしないといけない

どのXCodeのバージョンがどのiOSバージョンをターゲットにしているかは下記で確認できる
SDKという書いてあるところが対象のiOSバージョンである

Android

Androidの方は、targetSdkとcompileSdkのバージョンによって、どのAndroid OSのバージョンが対象か決まる。
以下に記載がある。

Androidビルドにおける「3つのSDK」の違い

Androidのビルド設定(build.gradle)には、主に3つのSDKバージョンが存在します。それぞれの役割がごっちゃになるので整理しておきます。

  • minSdk
    アプリが動作する一番古いOSバージョン。これより古いOSの端末にはインストールすらできません。
  • compileSdk
    アプリをビルド(コンパイル)する際に使用するSDKのバージョン。開発者がコード上で「どの最新機能(API)まで使えるか」を決定します。
  • targetSdk
    アプリが動作を最適化し、テストを完了している目標のOSバージョン。どのOSバージョンのルールに従って動くのかという宣言です。

targetSdkについて
targetSdk は、Androidシステムに対して「このアプリは、Android 〇〇の仕様(ルール)に合わせて作られています!」と宣言する設定です。
Androidは、アプリの targetSdk を見て挙動を変えます。

  • 端末のOSが最新(例: 15)でも、アプリの targetSdk が古い(例: 14)場合
    • OSは「このアプリは古い時代に作られたんだな」と判断し、特別に古いOS風の挙動(互換モード)で大目に見て動かしてくれます
  • targetSdk を 35 (Android 15) に上げたとき、Android 14の端末ではどうなる?
    よくある疑問として、「targetSdkを最新に上げたら、古いOSの端末で動かなくなるのでは?」という不安があります。
    結論から言うと、古いOSの端末でも問題なく動きます。
    Androidのシステムは、「端末のOSバージョン」と「アプリのtargetSdk」を比較して、適用するルールを自動で判断します。
    ※基本的には compileSdk ≧ targetSdk という絶対ルールがあるため、通常はこれらを同じ最新バージョンに揃えて設定するのがベストプラクティスです。

Flutter

iOSのXCodeのバージョンアップと、AndroidのtargetSdkとcompileSdkのバージョンアップに対応するため、Flutterのバージョンも上げる必要がある。

以下にサポートしているOSバージョンが載っている。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?