LoginSignup
10
4

More than 3 years have passed since last update.

UnityのiOSビルド時にplistの項目を追加する方法

Last updated at Posted at 2019-04-12

はじめに

こちらの記事で Google Mobile Ads SDK ver 7.42.0からiOSビルド時にplistの追加が必要になったとの事で、対応を自動化できる方法をメモ

実装環境

  • Unity 2018.3.8f1
  • Xcode 10.2

方法

  1. Assets/Editor 下でファイルを生成

    (Editorフォルダ内であれば問題ないので、自分はAssets/Editor/hoge/Editor下に置いてます)

  2. 実装例

PostXcodeBuild.cs
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

namespace Hoge
{
    public class PostXcodeBuild
    {
        [PostProcessBuild]
        public static void SetXcodePlist(BuildTarget buildTarget, string pathToBuiltProject)
        {
            if (buildTarget != BuildTarget.iOS) return;

            var plistPath = pathToBuiltProject + "/Info.plist";
            var plist = new PlistDocument();
            plist.ReadFromString(File.ReadAllText(plistPath));

            var rootDict = plist.root;
            // ここに記載したKey-ValueがXcodeのinfo.plistに反映されます
            rootDict.SetString("GADApplicationIdentifier", "hogehoge");

            File.WriteAllText(plistPath, plist.WriteToString());
        }
    }
}

[PostProcessBuild]を付け、 public static なメソッドであればメソッド名やクラス名は特に指定ありません

補足

・カメラ、位置情報、マイク等の許可設定はPlayer Settings の Other Settings内で記述することで対応可能です
スクリーンショット 2019-07-04 15.31.31.png
CreateArrayCreateDict メソッドを用いることで入れ子構造にすることが可能です

参考サイト

10
4
1

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
10
4