KITASENJU DESIGN BLOG

memo, html, javascript, unity

iOSアプリ開発で画像保存でフリーズする時

https://answers.unity.com/questions/1509438/infoplist-must-contain-an-nsphotolibraryusagedescr.html

こんなメッセージが出てた

plistに NSPhotoLibraryUsageDescription という、フォトライブラリ使用の説明を書かないと、止まっちゃう。

毎回XCodeに追記するのはだるいので、unity上で設定するのは以下を参考に。 ※ Editorフォルダにれる

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

code

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

namespace Kitasenju
{
    public class AddPlist
    {
        [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("NSPhotoLibraryUsageDescription", "Save the recorded video");

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

"FOOTER"