[Xcode] PostProcessBuild(with FixPodFile)
Unity3D/iOS / 2022. 12. 11. 13:52
Unity 2021.3.14f1
현재(2022-12-11) 기준 Xcode PostProcessBuild 파일
using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.iOS.Xcode;
using UnityEditor.Callbacks;
using System.Collections;
namespace blueasa
{
public class XcodeSettingsPostProcessor
{
#if UNITY_2019_3_OR_NEWER
// FixPodFile 사용법 참조
// https://github.com/googlesamples/unity-jar-resolver/issues/405 : Str4tos 댓글
[PostProcessBuild(45)]//must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and that it's added before "pod install" (50)
private static void FixPodFile(BuildTarget buildTarget, string buildPath)
{
/// Stop processing if target is NOT iOS
if (buildTarget != BuildTarget.iOS)
return;
using (StreamWriter sw = File.AppendText(buildPath + "/Podfile"))
{
// [Error 대응] (Xcode 14): Signing for "GoogleSignIn-GoogleSignIn" requires a development team.
// [해결방법 참조] https://github.com/CocoaPods/CocoaPods/issues/11402 : JosephPoplar 댓글
sw.WriteLine("\npost_install do |installer|\n installer.pods_project.targets.each do |target|\n if target.respond_to?(:product_type) and target.product_type == \"com.apple.product-type.bundle\"\n target.build_configurations.each do |config|\n config.build_settings['CODE_SIGN_IDENTITY'] = \"\"\n #prevent resource bundle from reading image nil\n config.build_settings.delete('PRODUCT_BUNDLE_IDENTIFIER')\n end\n end\n end\nend");
/// ex
//sw.WriteLine("\ntarget 'Unity-iPhone' do\nend");
}
}
#endif
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject)
{
/// Stop processing if target is NOT iOS
if (buildTarget != BuildTarget.iOS)
return;
/// Initialize PbxProject
var projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
//var projectPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";
PBXProject pbxProject = new PBXProject();
pbxProject.ReadFromFile(projectPath);
// Unity 2019 대응[blueasa / 2020-12-22]
#if UNITY_2019_3_OR_NEWER
//string targetGuid = pbxProject.GetUnityFrameworkTargetGuid();
string strMainTargetGuid = pbxProject.GetUnityMainTargetGuid();
string strFrameworkTargetGuid = pbxProject.GetUnityFrameworkTargetGuid();
#else
string strMainTargetGuid = pbxProject.TargetGuidByName("Unity-iPhone");
#endif
/// Sample of adding build property
//pbxProject.AddBuildProperty(strMainTargetGuid, "OTHER_LDFLAGS", "-all_load");
/// Sample of setting build property
//pbxProject.SetBuildProperty(strMainTargetGuid, "ENABLE_BITCODE", "NO");
//pbxProject.SetBuildProperty(strMainTargetGuid, "EMBEDDED_CONTENT_CONTAINS_SWIFT", "YES");
//pbxProject.SetBuildProperty(strMainTargetGuid, "CODE_SIGNING_ALLOWED", "NO");
/// Sample of update build property
//pbxProject.UpdateBuildProperty(strMainTargetGuid, "OTHER_LDFLAGS", new string[] { "-ObjC" }, new string[] { "-weak_framework" });
/// ITMS-90206. ITMS-90427 에러 대응[blueasa / 2022-11-17]
// Set FrameworkTargetGuid : NO
foreach (var targetGuid in new[] { strMainTargetGuid, pbxProject.GetUnityFrameworkTargetGuid() })
{
pbxProject.SetBuildProperty(targetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
}
// Set MainTargetGuid : YES
pbxProject.SetBuildProperty(strMainTargetGuid, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
// [에러 처리] Undefined symbol: _vDSP_vclip, _vDSP_vsadd, _vvexpf, _vDSP_sve, _vdsp_mmul, _vDSP_maxv, _vDSP__dotpr, vDSP_vsdiv
pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "Accelerate.framework", true);
/// Sample of adding REQUIRED framwrok
// Facebook SDK
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "FBAEMKit.framework", true);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "FBSDKCoreKit.framework", true);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "FBSDKCoreKit_Basics.framework", true);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "FBSDKLoginKit.framework", true);
// Facebook Audience Network
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "FBAudienceNetwork.framework", true);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "CoreData.framework", false);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "Security.framework", false);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "CoreData.framework", false);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "libsqlite3.0.tbd", false);
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "AdSupport.framework", false); // for AppsFlyer
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "iAd.framework", false); // for AppsFlyer
/// Sample of adding OPTIONAL framework
//pbxProject.AddFrameworkToProject(strFrameworkTargetGuid, "SafariServices.framework", true);
/// Sample of setting compile flags
//var guid = pbxProject.FindFileGuidByProjectPath("Classes/UI/Keyboard.mm");
//var flags = pbxProject.GetCompileFlagsForFile(strMainTargetGuid, guid);
//flags.Add("-fno-objc-arc");
//pbxProject.SetCompileFlagsForFile(strMainTargetGuid, guid, flags);
#if !UNITY_2019_3_OR_NEWER
// Add push notifications as a capability on the target
pbxProject.AddCapability(targetGuid, UnityEditor.iOS.Xcode.PBXCapabilityType.PushNotifications);
#endif
// Apply settings
File.WriteAllText(projectPath, pbxProject.WriteToString());
#if UNITY_2019_3_OR_NEWER
// 필요한 Capability 추가
ProjectCapabilityManager projCapability = new ProjectCapabilityManager(projectPath, "Unity-iPhone/mmk.entitlements", "Unity-iPhone");
projCapability.AddPushNotifications(false); // Push Notifications
projCapability.AddInAppPurchase(); // IAP
projCapability.AddSignInWithApple(); // Apple 로그인(FirebaseAuth용)
projCapability.WriteToFile();
#endif
/////////////////////////////////////////////////////////////////////////////////
/// Samlpe of editing Info.plist
var plistPath = System.IO.Path.Combine(pathToBuiltProject, "Info.plist");
var plist = new PlistDocument();
plist.ReadFromFile(plistPath);
/// Add string integer
//plist.root.SetInteger("FYBVideoPlayerOptionCloseButtonDelay", -1); // Fyber
/// Add boolean setting
plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false); // 수출 규정 관련 문서가 누락됨 경고 메세지 대처법
plist.root.SetBoolean("FacebookAutoLogAppEventsEnabled", false); // Facebook 자동 로그인 비활성화
//plist.root.SetBoolean("FIREBASE_ANALYTICS_COLLECTION_ENABLED", true); // FA
/// Add string setting
// [Fix] Unity2020.3.26f1에서 수정됨[blueasa / 2022-01-18]
// [iOS15 + Unity2020.3.22f1 이슈] Force Dark Mode(Automatic/Light/Dark) - Appearance
// [참조] https://stackoverflow.com/questions/70239569/unity-shader-glitches-according-to-the-dark-mode-on-ios-15
//plist.root.SetString("UIUserInterfaceStyle", "Dark");
// [iOS15+] AppsFlyer - SKAdNetwork 포스트백 적용[blueasa / 2022-02-17]
plist.root.SetString("NSAdvertisingAttributionReportEndpoint", "https://appsflyer-skadnetwork.com/");
/// Privacy
//plist.root.SetString("NSCalendarsUsageDescription", "Some ad content may access calendar");
//plist.root.SetString("NSCameraUsageDescription", "Every play requires access to the Camera library");
plist.root.SetString("NSPhotoLibraryUsageDescription", "Every play requires access to the photo library"); // ITMS-90683
// for Bluetooth [blueasa/2020-04-28]
//plist.root.SetString("NSBluetoothAlwaysUsageDescription", "App would like to use your bluetooth for communication purposes");
//plist.root.SetString("NSBluetoothPeripheralUsageDescription", "App would like to use your bluetooth for communication purposes");
#region SKAdNetwork IDs
// SKAdNetwork IDs integration(for iOS14+)
// https://blueasa.tistory.com/2482
var arraySKAdNetworkItems = plist.root.CreateArray("SKAdNetworkItems");
// for Admob(Google)
// https://developers.google.com/admob/ios/ios14#skadnetwork
var dictSKAdNetworkIdentifier_Admob = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Admob.SetString("SKAdNetworkIdentifier", "cstr6suwn9.skadnetwork"); // Admob
// for FAN
// https://developers.facebook.com/docs/audience-network/guides/SKAdNetwork
var dictSKAdNetworkIdentifier_FAN_1 = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_FAN_1.SetString("SKAdNetworkIdentifier", "v9wttpbfk9.skadnetwork"); // FAN 1
var dictSKAdNetworkIdentifier_FAN_2 = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_FAN_2.SetString("SKAdNetworkIdentifier", "n38lu8286q.skadnetwork"); // FAN 2
// for UnityAds
// https://unityads.unity3d.com/help/ios/skadnetwork-ids?fbclid=IwAR3T6BWG6-SIdWipZaB-PEtUQhg1DAnU_kQ22iiSv4Z5Q6nItq2edtpIIkM
// https://skan.mz.unity3d.com/v2/partner/skadnetworks.plist.xml?_ga=2.140049011.1591405619.1607905486-1813266944.1603773122
var dictSKAdNetworkIdentifier_Unity_1 = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Unity_1.SetString("SKAdNetworkIdentifier", "4DZT52R2T5.skadnetwork"); // Unity Technologies 1
var dictSKAdNetworkIdentifier_Unity_2 = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Unity_2.SetString("SKAdNetworkIdentifier", "bvpn9ufa9b.skadnetwork"); // Unity Technologies 2
var dictSKAdNetworkIdentifier_Mintegral = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Mintegral.SetString("SKAdNetworkIdentifier", "KBD757YWX3.skadnetwork"); // Mintegral
var dictSKAdNetworkIdentifier_CriteoSA = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_CriteoSA.SetString("SKAdNetworkIdentifier", "9RD848Q2BZ.skadnetwork"); // Criteo SA (Manage.com)
var dictSKAdNetworkIdentifier_mkhoj = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_mkhoj.SetString("SKAdNetworkIdentifier", "WZMMZ9FP6W.skadnetwork"); // mkhoj Solutions Private Limited
var dictSKAdNetworkIdentifier_Snap = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Snap.SetString("SKAdNetworkIdentifier", "424M5254LK.skadnetwork"); // Snap Inc.
var dictSKAdNetworkIdentifier_Cheetah = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Cheetah.SetString("SKAdNetworkIdentifier", "24t9a8vw3c.skadnetwork"); // Cheetah Medialink
var dictSKAdNetworkIdentifier_Appier = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Appier.SetString("SKAdNetworkIdentifier", "v72qych5uu.skadnetwork"); // Appier Inc.
var dictSKAdNetworkIdentifier_Liftoff = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Liftoff.SetString("SKAdNetworkIdentifier", "7UG5ZH24HU.skadnetwork"); // Liftoff Mobile, Inc.
var dictSKAdNetworkIdentifier_Beeswax = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Beeswax.SetString("SKAdNetworkIdentifier", "c6k4g5qg8m.skadnetwork"); // Beeswax
var dictSKAdNetworkIdentifier_Adikteev = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Adikteev.SetString("SKAdNetworkIdentifier", "ydx93a7ass.skadnetwork"); // Adikteev SA
var dictSKAdNetworkIdentifier_Realtime = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Realtime.SetString("SKAdNetworkIdentifier", "4468km3ulz.skadnetwork"); // Realtime Technologies GmbH
var dictSKAdNetworkIdentifier_Remerge = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Remerge.SetString("SKAdNetworkIdentifier", "2U9PT9HC89.skadnetwork"); // Remerge GmbH
var dictSKAdNetworkIdentifier_CriteoCorp = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_CriteoCorp.SetString("SKAdNetworkIdentifier", "hs6bdukanm.skadnetwork"); // Criteo Corp
var dictSKAdNetworkIdentifier_Aarki = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Aarki.SetString("SKAdNetworkIdentifier", "4FZDC2EVR5.skadnetwork"); // Aarki, Inc.
//var dictSKAdNetworkIdentifier_Google = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Google.SetString("SKAdNetworkIdentifier", "cstr6suwn9.skadnetwork"); // Google LLC(Admob)
var dictSKAdNetworkIdentifier_YouAppi = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_YouAppi.SetString("SKAdNetworkIdentifier", "3RD42EKR43.skadnetwork"); // YouAppi Inc
var dictSKAdNetworkIdentifier_LifeStreet = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_LifeStreet.SetString("SKAdNetworkIdentifier", "t38b2kh725.skadnetwork"); // LifeStreet Corporation
var dictSKAdNetworkIdentifier_SPOTAD = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_SPOTAD.SetString("SKAdNetworkIdentifier", "f73kdq92p3.skadnetwork"); // SPOTAD LTD
var dictSKAdNetworkIdentifier_BYTEMOD_Global = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_BYTEMOD_Global.SetString("SKAdNetworkIdentifier", "22mmun2rn5.skadnetwork"); // BYTEMOD PTE. LTD-global
var dictSKAdNetworkIdentifier_DATASEAT = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_DATASEAT.SetString("SKAdNetworkIdentifier", "M8DBW4SV7C.skadnetwork"); // DATASEAT LTD
var dictSKAdNetworkIdentifier_Kidoz = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Kidoz.SetString("SKAdNetworkIdentifier", "v79kvwwj4g.skadnetwork"); // Kidoz Ltd.
var dictSKAdNetworkIdentifier_Sabio = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Sabio.SetString("SKAdNetworkIdentifier", "GLQZH8VGBY.skadnetwork"); // Sabio Mobile Inc.
var dictSKAdNetworkIdentifier_Moloco = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Moloco.SetString("SKAdNetworkIdentifier", "9T245VHMPL.skadnetwork"); // Moloco, Inc
var dictSKAdNetworkIdentifier_Bidmachine = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Bidmachine.SetString("SKAdNetworkIdentifier", "wg4vff78zm.skadnetwork"); // Bidmachine
var dictSKAdNetworkIdentifier_BYTEMOD_CN = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_BYTEMOD_CN.SetString("SKAdNetworkIdentifier", "238da6jt44.skadnetwork"); // BYTEMOD PTE. LTD-CN
var dictSKAdNetworkIdentifier_Apptimus = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Apptimus.SetString("SKAdNetworkIdentifier", "lr83yxwka7.skadnetwork"); // Apptimus LTD
var dictSKAdNetworkIdentifier_Centro = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Centro.SetString("SKAdNetworkIdentifier", "3sh42y64q3.skadnetwork"); // Centro Inc.
var dictSKAdNetworkIdentifier_UNICORN = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_UNICORN.SetString("SKAdNetworkIdentifier", "578prtvx9j.skadnetwork"); // UNICORN Inc.
var dictSKAdNetworkIdentifier_REVX = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_REVX.SetString("SKAdNetworkIdentifier", "5a6flpkh64.skadnetwork"); // REVX TECHNOLOGY PRIVATE LIMITED
var dictSKAdNetworkIdentifier_RTBHouse = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_RTBHouse.SetString("SKAdNetworkIdentifier", "8s468mfl3y.skadnetwork"); // RTBHouse Pte LTD
var dictSKAdNetworkIdentifier_CrossInstall = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_CrossInstall.SetString("SKAdNetworkIdentifier", "prcb7njmu6.skadnetwork"); // CrossInstall
var dictSKAdNetworkIdentifier_Maiden = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Maiden.SetString("SKAdNetworkIdentifier", "zmvfpc5aq8.skadnetwork"); // Maiden Marketing Pvt Ltd.
var dictSKAdNetworkIdentifier_AdColony = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_AdColony.SetString("SKAdNetworkIdentifier", "4PFYVQ9L8R.skadnetwork"); // AdColony, Inc.
var dictSKAdNetworkIdentifier_Spyke = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Spyke.SetString("SKAdNetworkIdentifier", "44n7hlldy6.skadnetwork"); // Spyke Media GmbH
var dictSKAdNetworkIdentifier_LoopMe = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_LoopMe.SetString("SKAdNetworkIdentifier", "5lm9lj6jb7.skadnetwork"); // LoopMe Ltd
var dictSKAdNetworkIdentifier_Smadex = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Smadex.SetString("SKAdNetworkIdentifier", "ppxm28t8ap.skadnetwork"); // Smadex SL
var dictSKAdNetworkIdentifier_ADTIMING = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_ADTIMING.SetString("SKAdNetworkIdentifier", "488r3q3dtq.skadnetwork"); // ADTIMING TECHNOLOGY PTE. LTD.
var dictSKAdNetworkIdentifier_Jampp = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Jampp.SetString("SKAdNetworkIdentifier", "YCLNXRL5PM.skadnetwork"); // Jampp LTD
var dictSKAdNetworkIdentifier_PubNative = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_PubNative.SetString("SKAdNetworkIdentifier", "TL55SBB4FM.skadnetwork"); // PubNative GMBH
var dictSKAdNetworkIdentifier_Chartboost = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Chartboost.SetString("SKAdNetworkIdentifier", "F38H382JLK.skadnetwork"); // Chartboost, Inc.
var dictSKAdNetworkIdentifier_ScaleMonk = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_ScaleMonk.SetString("SKAdNetworkIdentifier", "av6w8kgt66.skadnetwork"); // ScaleMonk Inc.
var dictSKAdNetworkIdentifier_Persona = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Persona.SetString("SKAdNetworkIdentifier", "44jx6755aq.skadnetwork"); // Persona.ly LTD
var dictSKAdNetworkIdentifier_Triapodi = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Triapodi.SetString("SKAdNetworkIdentifier", "mlmmfzh3r3.skadnetwork"); // Triapodi Ltd.
// for Vungle
// https://support.vungle.com/hc/en-us/articles/360002925791-Integrate-Vungle-SDK-for-iOS#3-add-the-%E2%80%9C-objc%E2%80%9D-linker-flag-0-9
// https://vungle.com/skadnetworkids.xml
var dictSKAdNetworkIdentifier_Vungle = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_Vungle.SetString("SKAdNetworkIdentifier", "GTA9LK7P23.skadnetwork"); // Vungle
//var dictSKAdNetworkIdentifier_Adikteev = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Adikteev.SetString("SKAdNetworkIdentifier", "ydx93a7ass.skadnetwork"); // Adikteev
//var dictSKAdNetworkIdentifier_Aarki = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Aarki.SetString("SKAdNetworkIdentifier", "4FZDC2EVR5.skadnetwork"); // Aarki
//var dictSKAdNetworkIdentifier_AdColony = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_AdColony.SetString("SKAdNetworkIdentifier", "4PFYVQ9L8R.skadnetwork"); // AdColony
//var dictSKAdNetworkIdentifier_Appier = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Appier.SetString("SKAdNetworkIdentifier", "v72qych5uu.skadnetwork"); // Appier
//var dictSKAdNetworkIdentifier_Appreciate = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Appreciate.SetString("SKAdNetworkIdentifier", "mlmmfzh3r3.skadnetwork"); // Appreciate
//var dictSKAdNetworkIdentifier_Beeswax = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Beeswax.SetString("SKAdNetworkIdentifier", "c6k4g5qg8m.skadnetwork"); // Beeswax
//var dictSKAdNetworkIdentifier_Jampp = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Jampp.SetString("SKAdNetworkIdentifier", "YCLNXRL5PM.skadnetwork"); // Jampp
//var dictSKAdNetworkIdentifier_LoopMe = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_LoopMe.SetString("SKAdNetworkIdentifier", "5lm9lj6jb7.skadnetwork"); // LoopMe
var dictSKAdNetworkIdentifier_MyTarget = arraySKAdNetworkItems.AddDict();
dictSKAdNetworkIdentifier_MyTarget.SetString("SKAdNetworkIdentifier", "n9x2a789qt.skadnetwork"); // MyTarget
//var dictSKAdNetworkIdentifier_Pubnative = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Pubnative.SetString("SKAdNetworkIdentifier", "TL55SBB4FM.skadnetwork"); // Pubnative
//var dictSKAdNetworkIdentifier_Remerge = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Remerge.SetString("SKAdNetworkIdentifier", "2U9PT9HC89.skadnetwork"); // Remerge
//var dictSKAdNetworkIdentifier_RTBHouse = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_RTBHouse.SetString("SKAdNetworkIdentifier", "8s468mfl3y.skadnetwork"); // RTB House
//var dictSKAdNetworkIdentifier_Sabio = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Sabio.SetString("SKAdNetworkIdentifier", "GLQZH8VGBY.skadnetwork"); // Sabio
//var dictSKAdNetworkIdentifier_Webeye = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_Webeye.SetString("SKAdNetworkIdentifier", "22mmun2rn5.skadnetwork"); // Webeye
//var dictSKAdNetworkIdentifier_YouAppi = arraySKAdNetworkItems.AddDict();
//dictSKAdNetworkIdentifier_YouAppi.SetString("SKAdNetworkIdentifier", "3RD42EKR43.skadnetwork"); // YouAppi
#endregion
/// Add URL Scheme
//var array = plist.root.CreateArray("CFBundleURLTypes");
//var urlDict = array.AddDict();
//urlDict.SetString("CFBundleURLName", "hogehogeName");
//var urlInnerArray = urlDict.CreateArray("CFBundleURLSchemes");
//urlInnerArray.AddString("hogehogeValue");
/// Localizations [blueasa / 2018-03-28]
// need Language Code(ref:https://ko.wikipedia.org/wiki/ISO_639)
var arrayLocalizations = plist.root.CreateArray("CFBundleLocalizations");
arrayLocalizations.AddString("en"); // 영어
arrayLocalizations.AddString("ko"); // 한국어
// [Temp] 사용전까지 주석처리[blueasa / 2022-11-16]
//arrayLocalizations.AddString("zh_CN"); // 중국어(간체) : 중국
//arrayLocalizations.AddString("zh_TW"); // 중국어(번체) : 대만
//arrayLocalizations.AddString("ja"); // 일본어
//arrayLocalizations.AddString("vi"); // 베트남어
//arrayLocalizations.AddString("es"); // 스페인어
//arrayLocalizations.AddString("it"); // 이탈리아어
//arrayLocalizations.AddString("id"); // 인도네시아어
//arrayLocalizations.AddString("th"); // 태국어
//arrayLocalizations.AddString("pt"); // 포르투갈어
//arrayLocalizations.AddString("hi"); // 힌디어
//arrayLocalizations.AddString("de"); // 독일어
//arrayLocalizations.AddString("zh"); // 중국어
/// Apply editing settings to Info.plist
plist.WriteToFile(plistPath);
}
}
}
반응형