Unity iOSで輸出コンプライアンス対応

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

UnityからiOS書き出しをしてTestFlightにあげる際、アップロードした後に気が付くものとして、輸出コンプライアンス対応があります。いつも忘れる。

iOS書き出しした後、info.plistにて「App Uses Non-Exempt Encryption」(ITSAppUsesNonExemptEncryption)を「NO」にしとけばエラー回避できますが、Unityで再度書き出すと、毎度、これをやらねばなので、Unityの時点で書いておきたいです。

UnityからiOS向けにビルドして作成されるXcodeのプロジェクトのBuild Settingsの値を変更させたい場合が時々あります。そ...

でもやってますが「PostProcessBuildClass」で「SetBuildProperty」しとけばOKです。

using System.IO;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEditor.iOS.Xcode;

public class PostprocessBuild : IPostprocessBuildWithReport
{
    public int callbackOrder { get { return 0; } }

    public void OnPostprocessBuild(BuildReport report)
    {
        if (report.summary.platform == BuildTarget.iOS)
        {
            string plistPath = Path.Combine(report.summary.outputPath, "Info.plist");
            PlistDocument plist = new PlistDocument();
            plist.ReadFromFile(plistPath);
            plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false);
            plist.WriteToFile(plistPath);
        }
    }
}

このコードを「PostProcessBuildClass.cs」という名前で、UnityのAssets内の「Editor」フォルダ内に入れてiOSビルドを作成し、XcodeでTestFlightまでアップロードします。輸出コンプライアンスがなんたらというエラーはアップロード後に出るので、上記対応して緑のチェックマークまでいければOKです。

アイコンの付け忘れもアップロード後最後の最後までエラー出ないので注意です。

スポンサーリンク