123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- //
- // Copyright (c) 2017 eppz! mobile, Gergely Borbás (SP)
- //
- // http://www.twitter.com/_eppz
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- // PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- // CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
- // OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- //
- #if UNITY_IOS
- using System.IO;
- using UnityEngine;
- using UnityEditor;
- using UnityEditor.Callbacks;
- using System.Collections;
- using System.Runtime.Serialization.Formatters.Binary;
- using System;
- #if UNITY_IOS
- using UnityEditor.iOS.Xcode;
- #if UNITY_2019_3_OR_NEWER
- using UnityEditor.iOS.Xcode.Extensions;
- #endif
- using System.Reflection;
- #endif
- public class BuildPostProcessor
- {
- [PostProcessBuildAttribute(99)]
- public static void OnPostProcessBuild(BuildTarget target, string path)
- {
- if (target == BuildTarget.iOS)
- {
- // Read.
- string projectPath = PBXProject.GetPBXProjectPath(path);
- PBXProject project = new PBXProject();
- project.ReadFromString(File.ReadAllText(projectPath));
- string targetGUID;
- string xcodeFrameworkTargetGuid;
- #if UNITY_2019_3_OR_NEWER
- xcodeFrameworkTargetGuid = project.GetUnityFrameworkTargetGuid();
- targetGUID = project.GetUnityMainTargetGuid();
- project.AddFileToBuild(targetGUID, project.GetTargetProductFileRef(xcodeFrameworkTargetGuid));
- // 关闭 UnityFramework 中的 bitcode
- string framework = project.TargetGuidByName("UnityFramework");
- project.SetBuildProperty(framework, "ENABLE_BITCODE", "NO");
- Debug.Log(xcodeFrameworkTargetGuid);
- Debug.Log(targetGUID);
- #else
- targetGUID = project.TargetGuidByName("Unity-iPhone");
- xcodeFrameworkTargetGuid = targetGUID;
- #endif
- AddFrameworks(project, xcodeFrameworkTargetGuid);
-
- //修改BuildSetting中的键值对
- project.SetBuildProperty(targetGUID, "ENABLE_BITCODE", "NO");
- // 增加Swift支持
- project.SetBuildProperty(targetGUID, "SWIFT_VERSION", "5.0");
- project.AddBuildProperty(targetGUID, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
- // Write.
- File.WriteAllText(projectPath, project.WriteToString());
- EditorPlist(path);
- string relativeEntitlementFilePath = "Unity-iPhone/amsw.entitlements";
- string absoluteEntitlementFilePath = path + "/" + relativeEntitlementFilePath;
- PlistDocument tempEntitlements = new PlistDocument();
- //iCloud Container
- string icloudContainerId = "iCloud."+ Application.identifier;
- PlistElementArray icloudIDsArr = new PlistElementArray();
- icloudIDsArr.AddString(icloudContainerId);
- PlistElementArray icloudSersArr = new PlistElementArray();
- icloudSersArr.AddString("CloudDocuments");
- tempEntitlements.root["com.apple.developer.icloud-container-identifiers"] = icloudIDsArr;
- tempEntitlements.root["com.apple.developer.icloud-services"] = icloudSersArr;
- tempEntitlements.root["com.apple.developer.ubiquity-container-identifiers"] = icloudIDsArr;
- project.AddCapability(targetGUID, PBXCapabilityType.iCloud, relativeEntitlementFilePath);
- tempEntitlements.WriteToFile(absoluteEntitlementFilePath);
- AddPlist(project, targetGUID, path);
- }
- }
- static void AddPlist(PBXProject project, string targetGUID, string path)
- {
- string projectPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
- var fileName = "GoogleService-Info.plist";
- var filePath = Path.Combine("Assets/PottingMobileSDK", fileName);//路径请自行修改
- string destFilePath = Path.Combine(path, fileName);
- //Debug.Log("path is " + destFilePath);
- //路径下的文件若存在,则删除
- if (File.Exists(destFilePath))
- {
- File.Delete(destFilePath);
- }
- //将当前filepath路径下的文件拷贝到后面的路径下
- File.Copy(filePath, destFilePath);
- string name = project.AddFile(fileName, fileName, PBXSourceTree.Source);
- Debug.Log("name--" + name);
- //project.AddFolderReference("/" + fileName, path, PBXSourceTree.Source);
- //project.AddCopyFilesBuildPhase(targetGUID,name, destFilePath, "10");
- #if UNITY_2019_3_OR_NEWER
- project.AddFileToBuild(targetGUID, name);
- project.WriteToFile(projectPath);
- #endif
- project.AddFileToBuild(targetGUID, name);
- project.WriteToFile(projectPath);
- }
- static void AddFrameworks(PBXProject project, string targetGUID)
- {
- // Frameworks
- project.AddFrameworkToProject(targetGUID, "libz.dylib", false);
- project.AddFrameworkToProject(targetGUID, "libsqlite3.tbd", false);
- project.AddFrameworkToProject(targetGUID, "CoreTelephony.framework", false);
- }
- //编辑plist文件
- static void EditorPlist(string path)
- {
- //添加Plist数据
- string plistPath = path + "/Info.plist";
- PlistDocument plist = new PlistDocument();
- plist.ReadFromString(File.ReadAllText(plistPath));
- // Get root
- PlistElementDict rootDict = plist.root;
- var urlTypeAry = plist.root.CreateArray("CFBundleURLTypes");
- var urlTypeDict = urlTypeAry.AddDict();
- var urlScheme = urlTypeDict.CreateArray("CFBundleURLSchemes");
- urlScheme.AddString("fb"+PottingMobileContent.FacebookAppid);
- var urlTypeDict1 = urlTypeAry.AddDict();
- var urlScheme1 = urlTypeDict1.CreateArray("CFBundleURLSchemes");
- urlScheme1.AddString("pottingmob");
- // 用于开启推送
- var backModesAry = plist.root.CreateArray("UIBackgroundModes");
- backModesAry.AddString("remote-notification");
- //AF 对于iOS15 ReportEndpoint功能适配
- plist.root.SetString("NSAdvertisingAttributionReportEndpoint", "https://appsflyer-skadnetwork.com/");
- plist.root.SetString("AppLovinSdkKey", "3A74IfT6NFU_AdrIDfHfgDUXOTq1_vyFDwcakL_Me-NtsxCz_rFucqXb2R_D4hH2S6OKcI36tREbu23MfoOrlH");
- plist.root.SetBoolean("GADIsAdManagerApp", true);
- plist.root.SetString("GADApplicationIdentifier", PottingMobileContent.Admob_appid);
- plist.root.SetString("FacebookAppID", PottingMobileContent.FacebookAppid);
- plist.root.SetString("FacebookDisplayName", PottingMobileContent.FacebookDisplayName);
- plist.root.SetString("FacebookClientToken", PottingMobileContent.FacebookClientToken);
- plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false);
- plist.root.SetString("NSUserTrackingUsageDescription", "Customized ads can greatly improve your user experience. If you only want to receive ads relevant to you, consider allowing access to IDFA on the next screen. If the acccess is prohibited, you will still see ads. The number of ads you see will not change, but the relevance will decrease.");
- plist.root.SetBoolean("FacebookAutoLogAppEventsEnabled", true);
- plist.root.SetBoolean("FacebookAdvertiserIDCollectionEnabled", true);
- var fbAry=plist.root.CreateArray("LSApplicationQueriesSchemes");
- fbAry.AddString("fbapi");
- fbAry.AddString("fbapi20130214");
- fbAry.AddString("fbapi20130410");
- fbAry.AddString("fbapi20130702");
- fbAry.AddString("fbapi20131010");
- fbAry.AddString("fbapi20131219");
- fbAry.AddString("fbapi20140410");
- fbAry.AddString("fbapi20140116");
- fbAry.AddString("fbapi20150313");
- fbAry.AddString("fbapi20150629");
- fbAry.AddString("fbapi20160328");
- fbAry.AddString("fbauth");
- fbAry.AddString("fbauth2");
- fbAry.AddString("fbshareextension");
- fbAry.AddString("fb-messenger-share-api");
- var nsapp = plist.root.CreateDict("NSAppTransportSecurity");
- nsapp.SetBoolean("NSAllowsArbitraryLoads", true);
- nsapp.SetBoolean("NSAllowsArbitraryLoadsForMedia", true);
- nsapp.SetBoolean("NSAllowsArbitraryLoadsInWebContent", true);
- var skAry = plist.root.CreateArray("SKAdNetworkItems");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "2U9PT9HC89.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4468km3ulz.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4FZDC2EVR5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "7UG5ZH24HU.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "8s468mfl3y.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "9RD848Q2BZ.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "9T245VHMPL.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "av6w8kgt66.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "F38H382JLK.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "hs6bdukanm.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "KBD757YWX3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ludvb6z3bs.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "M8DBW4SV7C.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "mlmmfzh3r3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "prcb7njmu6.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "t38b2kh725.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "TL55SBB4FM.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "WZMMZ9FP6W.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "YCLNXRL5PM.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ydx93a7ass.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "GTA9LK7P23.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ECPZ2SRF59.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "5lm9lj6jb7.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "78prtvx9j.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "238da6jt44.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "22mmun2rn5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "cstr6suwn9.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "su67r6k2v3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4DZT52R2T5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "bvpn9ufa9b.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "wg4vff78zm.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "737z793b9f.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "44jx6755aq.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "W9Q455WK68.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "GLQZH8VGBY.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "c6k4g5qg8m.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4PFYVQ9L8R.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "6xzpu9s2p8.skadnetwork");
- //fb ad sdk
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "v9wttpbfk9.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "n38lu8286q.skadnetwork");
- //mopub
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "24t9a8vw3c.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "3qy4746246.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "3rd42ekr43.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "3sh42y64q3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "523jb4fst2.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "578prtvx9j.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "5a6flpkh64.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "5l3tpt7t6e.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "7953jerfzd.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "7rz58n8ntl.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "97r2b46745.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "9yg77x724h.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "cg4yq2srnc.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "f73kdq92p3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "gvmwg8q7h5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "klf5c3l5u5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "mls7yz5dvl.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "mtkv5xtk9e.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "n66cz3y3bx.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "n9x2a789qt.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "nzq8sh4pbs.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "p78axxw29g.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ppxm28t8ap.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "pu4na253f3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "u679fj5vs4.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "uw77j35x4d.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "v72qych5uu.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "xy9t38ct57.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "z4gj7hsk7h.skadnetwork");
- //AdColony
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4pfyvq9l8r.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "yclnxrl5pm.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "v72qych5uu.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "tl55sbb4fm.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "t38b2kh725.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "prcb7njmu6.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ppxm28t8ap.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "mlmmfzh3r3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "klf5c3l5u5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "hs6bdukanm.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "c6k4g5qg8m.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "9t245vhmpl.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "9rd848q2bz.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "8s468mfl3y.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "7ug5zh24hu.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4fzdc2evr5.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "4468km3ulz.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "3rd42ekr43.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "2u9pt9hc89.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "m8dbw4sv7c.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "7rz58n8ntl.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ejvt5qm6ak.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "5lm9lj6jb7.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "44jx6755aq.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "mtkv5xtk9e.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "6g9af3uyq4.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "uw77j35x4d.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "u679fj5vs4.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "rx5hdcabgc.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "g28c52eehv.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "cg4yq2srnc.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "9nlqeag3gk.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "275upjj5gd.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "wg4vff78zm.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "qqp299437r.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "kbmxgpxpgc.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "294l99pt4k.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "2fnua5tdw4.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "ydx93a7ass.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "523jb4fst2.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "cj5566h2ga.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "r45fhb6rf7.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "g2y4y55b64.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "wzmmz9fp6w.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "n6fk4nfna4.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "kbd757ywx3.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "n9x2a789qt.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "pwa73g5rt2.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "74b6s63p6l.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "44n7hlldy6.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "5l3tpt7t6e.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "e5fvkxwrpn.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "gta9lk7p23.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "84993kbrcf.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "pwdxu55a5a.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "6964rsfnh4.skadnetwork");
- skAry.AddDict().SetString("SKAdNetworkIdentifier", "a7xqa6mtl2.skadnetwork");
- File.WriteAllText(plistPath, plist.WriteToString());
- }
-
- }
- #endif
|