/// <summary> /// URLスキームを追加します /// </summary> /// <param name="path"> 出力先のパス </param> public static void AddIOSUrlScheme(string path) { #if UNITY_IOS string plistPath = Path.Combine(path, "Info.plist"); PlistDocument plist = new PlistDocument(); // 読み込み plist.ReadFromFile(plistPath); PlistElementArray urlTypeArray = plist.root.CreateArray("CFBundleURLTypes"); PlistElementDict urlTypeDict = urlTypeArray.AddDict(); PlistElementArray urlSchemeArray = urlTypeDict.CreateArray("CFBundleURLSchemes"); SDKConfiguration sdkConfiguration = UrlSchemeEditTool.LoadSDKConfiguration(); if (sdkConfiguration == null) { return; } var urlScheme = sdkConfiguration.IOSUrlScheme; var Validator = new UriSchemeValidator(urlScheme); if (!Validator.Validate()) { Debug.LogError("iOSのURLスキーマが不正なのでURLスキーマの追加処理をスキップしました"); return; } Uri uri; try { uri = new Uri(urlScheme); } catch (UriFormatException) { return; } // URLスキームを追加 urlSchemeArray.AddString(uri.Scheme); // 書き込み plist.WriteToFile(plistPath); #endif }
private void ProcessForAndroidUrlScheme() { if (!AndroidManifestFile.IsFileExists()) { AndroidManifestFile.CopyFromExample(); } var manifestXml = AndroidManifestFile.MakeManifestXml(); SDKConfiguration sdkConfiguration = UrlSchemeEditTool.LoadSDKConfiguration(); if (sdkConfiguration == null) { return; } var urlScheme = sdkConfiguration.AndroidUrlScheme; var Validator = new UriSchemeValidator(urlScheme); if (!Validator.Validate()) { Debug.LogError("AndroidのURLスキーマが不正なのでURLスキーマの追加処理をスキップしました"); return; } Uri uri; try { uri = new Uri(urlScheme); } catch (UriFormatException) { return; } manifestXml.UpdateUrlScheme(uri); manifestXml.Save(AndroidManifestFile.AndroidManifestPath); }