はじめに
こちらの記事で Google Mobile Ads SDK ver 7.42.0
からiOSビルド時にplistの追加が必要になったとの事で、対応を自動化できる方法をメモ
実装環境
- Unity 2018.3.8f1
- Xcode 10.2
方法
-
Assets/Editor
下でファイルを生成
(Editorフォルダ内であれば問題ないので、自分はAssets/Editor/hoge/Editor
下に置いてます) -
実装例
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内で記述することで対応可能です
・CreateArray
や CreateDict
メソッドを用いることで入れ子構造にすることが可能です