【Unity】Xcodeで設定が必要なビルド前チェックリスト(自分用)

Unityで制作したアプリをiOS向けにApp Storeで配布するには、まずUnityでiOS用にビルド(Xcode用のファイルを書き出す)をしてその後Xcodeでビルド。問題なければApp Store ConnectにDistribute、そこからあれやこれやの回答を済ませようやく審査へ。無事審査に通れば晴れて公開という流れになります。(長い)

この記事はUnityで書き出したファイル(大体はUnity-iPhone.xcworkspaceのはず)をXcodeで開いた際に、ビルド(実機テスト含む)を行う前にXcode上で行う必要がある設定とそのやり方のメモです。

やってることはざっくり以下の通り。

・サインイン
・アプリ名の日本語対応
・ATT(App Tracking Transparency)対応

なお以下の設定はUnityでiOS用のビルドをする度にリセットされるので、Unity側で何らかの修正をした場合は毎回設定し直す必要があります。

それを避けるために後述の設定をUnityのEditorフォルダ内にスクリプト置いてXcodeに自動反映する方法もありますがここではそれはしていない前提です。

先人たちの教えを参考に、試行錯誤の末辿り着いた設定や知見を自分で見返す用にまとめたものになりますがどこかの誰かの役に立てればということで公開します。

なお内容は2025年7月時点のものです。(一年後には変わってると思います)

参考になるかもしれない人
  • AdMobを導入した無料アプリを作っている
  • 主言語は日本語でATT対応が必要

Xcode Version 16.2 を使用

目次

サインイン

Signing

PROJECT:Unity-iPhone
TARGETS:Unity-iPhone → Signing & Capablitities

Signingを以下の通り設定します。

  • Automatically manage signing をチェック
  • Team を選択(任意のアカウントを選択)

アプリ名の日本語対応

Localizations

PROJECT:Unity-iPhone
info(タブの方)

Localizationsに「Japanese」を追加します。

infoPlist

PROJECT:Unity-iPhone
Unity-iPhone Tests → Supporting Files → infoPlist

infoPlistを選択して、画面右側のインスペクタから右上ファイルのアイコン(カーソル当てると「Show the File inspector」と表示)を選択。以下の通り設定します。

  • Localizationに先に追加した「Japanese」を追加
  • Target Membershipに「Unity-iPhone」を追加

デフォルトの「Japanese, deprecated」もありますが、こちらを選択するとArchiveしてValidate App した際にWarningが表示されました(名前の通り非推奨的な表示が出た)。

CFBundleDisplayName

PROJECT:Unity-iPhone
Unity-iPhone Tests → Supporting Files → infoPlist → infoPlist(Japanese)

先ほどLocalizationに「Japanese」を追加した際にinfoPlist(Japanese)が作成されているはずなので、そこに以下内容を追記します。(自分の日本語のアプリ名を入れる)

CFBundleDisplayName = "ここに自分のアプリ名";

ATT対応

前提として、Unityの場合「iOS 14 Advertising Support」を使用して対応するのが一番簡単かなと思います(自分はそうしました)。導入方法は以下marumaro7さんの記事がとても参考になります。

以下、先の内容と被りますがXcode側で必要な設定です。

Frameworks and Libraries

PROJECT:Unity-iPhone
TARGETS:UnityFramework → General

Frameworks and Libraries に以下を追加します。(既にあれば不要)

  • AdSupport.framework
  • AppTrackingTransparency.framework

AdSupport.framework は環境によってはデフォルトで含まれていることもあるようなのですが、自分は含まれていなかったので手動で追加しています。

Privacy – Tracking Usage Description

PROJECT:Unity-iPhone
info(画面左、設定ファイル?の方)

infomation Property Listに以下Keyを追加します。(Typeは自動でStringになるはず)

Privacy - Tracking Usage Description

ValueにはATTのダイアログが表示された際に表示したいテキストを入れます。(以下は例)

あなたの好みに合わせた広告を表示するために使用されます

infoPlist(English)

PROJECT:Unity-iPhone
Unity-iPhone Tests → Supporting Files → infoPlist → infoPlist(English)

先の日本語アプリ名の設定と同様のやり方で、infoPlist(English)に以下を追記します。
文言は任意でお好みに変更してください。

NSUserTrackingUsageDescription = "It is used to display ads tailored to your preferences.";

ATTダイアログ内で表示されるテキストですが、英語用のテキストがないと審査でリジェクト喰らうことがあるみたいなので一応設定しておくと良さそうです。

ATTダイアログが表示されないときは?

ちなみにATTのダイアログは一度表示すると以降は表示されなくなるため、アプリに修正を加えた後にもう一度テストで表示させたいのに表示されない!となることが良くあります。

解決策はいくつかあるようなのですが、自分の環境では

・Unityの「Build Profiles」で「Development Build」にチェックを入れてビルド
・Xcodeの「Bundle Identifier」を一時的に変更する(サインインの設定をしたところです)

のいずれかを行うことでATTのダイアログを実機テストで表示させることができました。(Bundle Identifierはアプリ固有の値になりますのでテスト後は必ず戻しましょう)

困ってる方は試してみてください。

余談

ちなみにですがググって「ATTのダイアログがうまく表示されない!」系の記事を探すとそれなりにヒットしますが、少し時間が経ってしまっているものやUnityではなくFlutterやSwiftで開発している場合の対応策だったりするので参考にする場合は注意しましょう。

先にも書きましたがUnityでATT対応する場合は「iOS 14 Advertising Support」を使用して対応するのが現時点では最もシンプルで良さそうです。(名前が今となっては紛らわしいですけどね)

参考記事

文中で紹介させていただいたもの以外。

本当に助かりました。感謝!

よかったらシェアしてね!
  • URLをコピーしました!
目次