はじめに

こんにちは!株式会社オルトプラスでクライアントエンジニアをしているHyuです。今回は、Unityを用いたアプリの対応OSバージョンのアップデートに取り組み、その過程で得た知見を共有したいと思います。

調査の結果、いくつかの変更点に注意が必要であることが分かりましたが、適切に対処することで問題なくアプリのアップデートを完了し、リリースすることができました。同様の対応を行う際の一助となれば幸いです。

対応OSバージョンのアップデートに至った経緯

App Store ConnectやGoogle Play Consoleにて「Xcodeのバージョンを更新するには対応OSをアップデートする必要がある」や「最新のリリースから 1 年以内の API レベルを対象としていない場合は、アプリを更新できなくなります。」という通知がきて対応OSレベルを上げないとアプリのアップデートができない状態になってしまうためアップデートについて調査しました。

image.png

動作確認環境(更新前 → 更新後)

フォーマット:

項目 更新前 更新後
Unity バージョン 2020.3.48f1 2023.2.20f1
Android Target SDK 33 34
iOS/tvOS MinimumOSVersion 11.0 13.0

試してみたこと

対応OSバージョンのアップデートで押さえておきたい要点について

共通で行うこと

ライブラリが入っている場合各種ライブラリもAPIレベルに対応したものに合わせる必要があります。また、クロスプラットフォームプラグインを使用していると、Android関連のエラーが出る場合があります。そのため、UnityのバージョンをAPIレベルに対応したものに合わせ、JDKやNDK、gradleの設定を見直す必要があります。

Unityに入っているライブラリ確認方法について

様々な方法はありますが、今回はスクリプトを作成して実行する方法を紹介します。

using UnityEngine;
using UnityEditor;
using System.IO;

public class LibraryChecker : MonoBehaviour
{
    [MenuItem("Tools/List All DLLs")]
    public static void ListAllDlls()
    {
        string[] dllPaths = Directory.GetFiles(Application.dataPath, "*.dll", SearchOption.AllDirectories);
        foreach (var dll in dllPaths)
        {
            Debug.Log($"Found DLL: {dll}");
        }
    }
}

Unityエディタのメニューバーに Tools > List All DLLs が表示されるのでクリックすると、コンソールにプロジェクト内のすべてのDLLがリスト表示されます。