UnityからiOS書き出しをしてTestFlightにあげる際、アップロードした後に気が付くものとして、輸出コンプライアンス対応があります。いつも忘れる。
iOS書き出しした後、info.plistにて「App Uses Non-Exempt Encryption」(ITSAppUsesNonExemptEncryption)を「NO」にしとけばエラー回避できますが、Unityで再度書き出すと、毎度、これをやらねばなので、Unityの時点で書いておきたいです。
でもやってますが「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です。
アイコンの付け忘れもアップロード後最後の最後までエラー出ないので注意です。
東京造形大学卒業後、マクロメディア(現アドビ システムズ)に入社。Quality AssuranceやテクニカルサポートマネージャーとしてFlash、DreamweaverなどのWeb製品を担当。独立後、2007年に虫カゴデザインスタジオ株式会社を設立。2021年東京三鷹を拠点に。最近は、CakePHP、Laravel、Unity、ZBrush、Modo、Adobe Substance 3D Collection、Xcode、Firebaseにフォーカスしています。モバイルアプリ開発情報を主としたブログ「MUSHIKAGO APPS MEMO」の中の人。