907 lines
29 KiB
C#
907 lines
29 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using UnityEditor;
|
||
using UnityEngine;
|
||
#if UNITY_EDITOR_OSX && UNITY_IOS
|
||
using UnityEditor.iOS.Xcode;
|
||
|
||
public class Package {
|
||
[UnityEditor.Callbacks.PostProcessBuildAttribute(100)]
|
||
public static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject) {
|
||
if (target != BuildTarget.iOS) {
|
||
Debug.LogWarning("Target is not iPhone. XCodePostProcess will not run");
|
||
return;
|
||
}
|
||
// Create a new project object from build target
|
||
|
||
UnityEditor.iOS.Xcode.PBXProject project = new UnityEditor.iOS.Xcode.PBXProject();
|
||
string configFilePath = UnityEditor.iOS.Xcode.PBXProject.GetPBXProjectPath(pathToBuiltProject);
|
||
project.ReadFromFile(configFilePath);
|
||
string targetGuid = project.GetUnityMainTargetGuid();
|
||
string targetGuid_Framework = project.GetUnityFrameworkTargetGuid();
|
||
|
||
string debug = project.BuildConfigByName(targetGuid, "Debug");
|
||
string release = project.BuildConfigByName(targetGuid, "Release");
|
||
project.AddBuildPropertyForConfig(debug, "CODE_SIGN_RESOURCE_RULES_PATH", "$(SDKROOT)/ResourceRules.plist");
|
||
project.AddBuildPropertyForConfig(release, "CODE_SIGN_RESOURCE_RULES_PATH", "$(SDKROOT)/ResourceRules.plist");
|
||
|
||
#region
|
||
string projPath = Path.GetFullPath(pathToBuiltProject);
|
||
//添加推送和其他的有点不一样,需要添加一个文件。这个文件只能考进去。或者事先准备好了Base.entitlements 文件,文件类容 就是你手动添加进去的内容,你手动添加完成后生成的那个文件
|
||
string entitlement = Application.dataPath + "/Editor/entitlement.entitlements";
|
||
File.Copy (entitlement, pathToBuiltProject + "/Unity-iPhone/entitlement.entitlements");
|
||
|
||
//Max Ad Review service
|
||
File.Copy(Application.dataPath + "/ThirdParty/MaxSdk/AppLovin/Editor/AppLovinQualityServiceSetup-ios.rb", pathToBuiltProject + "/AppLovinQualityServiceSetup-ios.rb");
|
||
|
||
project.AddCapability(targetGuid, PBXCapabilityType.AssociatedDomains, pathToBuiltProject + "/Unity-iPhone/entitlement.entitlements", true);
|
||
|
||
// Enable Push Notifications
|
||
project.AddFrameworkToProject (targetGuid_Framework, "UserNotifications.framework", false);
|
||
|
||
// Enable background mode
|
||
// project.AddCapability (targetGuid, PBXCapabilityType.BackgroundModes);
|
||
|
||
#region google service plist file
|
||
// google service
|
||
string googleServicePath = Application.dataPath + "/Plugins/iOS/GoogleService-Info.plist";
|
||
File.Copy(googleServicePath, pathToBuiltProject + "/GoogleService-Info.plist");
|
||
|
||
project.AddFileToBuild(targetGuid, project.AddFile("GoogleService-Info.plist", "GoogleService-Info.plist", PBXSourceTree.Source));
|
||
#endregion
|
||
|
||
// Add background modes
|
||
string plistPath = pathToBuiltProject + "/Info.plist";
|
||
PlistDocument plist = new PlistDocument();
|
||
plist.ReadFromString(File.ReadAllText(plistPath));
|
||
PlistElementDict rootDict = plist.root;
|
||
//在playersetting里设置iosUseCustomAppBackgroundBehavior 和 iOSBackgroundModes
|
||
// PlistElementArray arr = rootDict.CreateArray ("UIBackgroundModes");
|
||
// arr.AddString ("remote-notification");
|
||
// arr.AddString ("fetch");
|
||
|
||
//解决错误:ITMS-90339
|
||
string exitsOnSuspendKey = "UIApplicationExitsOnSuspend";
|
||
if (rootDict.values.ContainsKey(exitsOnSuspendKey)) {
|
||
rootDict.values.Remove(exitsOnSuspendKey);
|
||
}
|
||
|
||
File.WriteAllText(plistPath, plist.WriteToString());
|
||
#endregion
|
||
|
||
// 根据实际需要添加framework或者tbd
|
||
// project.AddFrameworkToProject(targetGuid_Framework, "libz.tbd", false);
|
||
project.AddFrameworkToProject(targetGuid_Framework, "libsqlite3.tbd", false);
|
||
project.AddFrameworkToProject(targetGuid_Framework, "WebKit.framework", false);
|
||
// project.AddFrameworkToProject(targetGuid, "UnityFramework.framework", false);
|
||
// keychain
|
||
project.AddFrameworkToProject(targetGuid_Framework, "Security.framework", false);
|
||
|
||
// project.AddFrameworkToProject(targetGuid_Framework, "CoreTelephony.framework", false);
|
||
// AF
|
||
project.AddFrameworkToProject(targetGuid_Framework, "AdSupport.framework", false);
|
||
project.AddFrameworkToProject(targetGuid_Framework, "iAd.framework", false);
|
||
// AF END */
|
||
|
||
// adjust
|
||
project.AddFrameworkToProject(targetGuid_Framework, "AdServices.framework", false);
|
||
|
||
// ATT
|
||
project.AddFrameworkToProject(targetGuid_Framework, "AppTrackingTransparency.framework", false);
|
||
// ATT END
|
||
|
||
// 苹果登录
|
||
project.AddFrameworkToProject(targetGuid_Framework, "AuthenticationServices.framework", true);
|
||
// end
|
||
|
||
project.SetBuildProperty(targetGuid_Framework, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
|
||
project.SetBuildProperty(targetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
|
||
project.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");
|
||
|
||
//处理iOS编译报错,大量Undefined symbol Swift.XXX
|
||
// project.SetBuildProperty(targetGuid_Framework, "SWIFT_OBJC_BRIDGING_HEADER", "Libraries/Plugins/iOS/Unity-iPhone-Bridging-Header.h");
|
||
// project.SetBuildProperty(targetGuid_Framework, "SWIFT_VERSION", "5.0");
|
||
// project.AddBuildProperty(targetGuid_Framework, "LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks");
|
||
|
||
//报错内容为:Please provide an auth token with USYM_UPLOAD_AUTH_TOKEN environment
|
||
// project.SetBuildProperty(targetGuid, "USYM_UPLOAD_AUTH_TOKEN", "FakeToken");
|
||
// project.SetBuildProperty(targetGuid_Framework, "USYM_UPLOAD_AUTH_TOKEN", "FakeToken");
|
||
//ITMS-90206,UnityFramework包含Framework问题
|
||
project.SetBuildProperty(targetGuid_Framework, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
|
||
|
||
project.WriteToFile(configFilePath);
|
||
|
||
// 编辑plist 文件
|
||
EditorPlist(Path.GetFullPath(pathToBuiltProject));
|
||
CopyDirectory(Application.dataPath + "../BFVersions/ios/ios_common", Path.GetFullPath(pathToBuiltProject), true);
|
||
}
|
||
|
||
static void CopyDirectory(string sourceDir, string destinationDir, bool recursive) {
|
||
// Get information about the source directory
|
||
var dir = new DirectoryInfo(sourceDir);
|
||
|
||
// Check if the source directory exists
|
||
if (!dir.Exists)
|
||
throw new DirectoryNotFoundException($"Source directory not found: {dir.FullName}");
|
||
|
||
// Cache directories before we start copying
|
||
DirectoryInfo[] dirs = dir.GetDirectories();
|
||
|
||
// Create the destination directory
|
||
Directory.CreateDirectory(destinationDir);
|
||
|
||
// Get the files in the source directory and copy to the destination directory
|
||
foreach (FileInfo file in dir.GetFiles())
|
||
{
|
||
string targetFilePath = Path.Combine(destinationDir, file.Name);
|
||
file.CopyTo(targetFilePath);
|
||
}
|
||
|
||
// If recursive and copying subdirectories, recursively call this method
|
||
if (recursive)
|
||
{
|
||
foreach (DirectoryInfo subDir in dirs)
|
||
{
|
||
string newDestinationDir = Path.Combine(destinationDir, subDir.Name);
|
||
CopyDirectory(subDir.FullName, newDestinationDir, true);
|
||
}
|
||
}
|
||
}
|
||
|
||
private static void EditorPlist(string filePath) {
|
||
|
||
XCPlist list = new XCPlist(filePath);
|
||
string ITSAppUsesNonExemptEncryption = @"
|
||
<key>ITSAppUsesNonExemptEncryption</key>
|
||
<false/>";
|
||
//在plist里面增加ITSAppUsesNonExemptEncryption,解决上架AppStore提示缺少出口合规证明
|
||
list.AddKey(ITSAppUsesNonExemptEncryption);
|
||
|
||
// string AppsFlyerShouldSwizzle = @"
|
||
// <key>AppsFlyerShouldSwizzle</key>
|
||
// <true/>";
|
||
// //appFlyer 设置 AppsFlyerShouldSwizzle,解决UnityAppController冲突,
|
||
// //记得AppsFlyerAppController.mm 注释掉//IMPL_APP_CONTROLLER_SUBCLASS(AppsFlyerAppController)
|
||
// list.AddKey(AppsFlyerShouldSwizzle);
|
||
|
||
// 跟踪权限请求描述(ATT) TODO...
|
||
string NSUserTrackingUsageDescription = @"
|
||
<key>NSUserTrackingUsageDescription</key>
|
||
<string>Your data will help us to provide a more personalized experience and offers.</string>";
|
||
list.AddKey(NSUserTrackingUsageDescription);
|
||
|
||
string NSLocationWhenInUseUsageDescription = @"
|
||
<key>NSLocationWhenInUseUsageDescription</key>
|
||
<string>We need to use location information to provide you with better network services</string>";
|
||
list.AddKey(NSLocationWhenInUseUsageDescription);
|
||
|
||
//iOS 设置状态栏的背景颜色方法
|
||
// string StatusBar = @"
|
||
// <key>UIViewControllerBasedStatusBarAppearance</key>
|
||
// <false/>";
|
||
// list.AddKey(StatusBar);
|
||
|
||
//admob ironsource那里设置了
|
||
// string GADApplicationIdentifier = @"
|
||
// <key>GADApplicationIdentifier</key>
|
||
// <string></string>";
|
||
// list.AddKey(GADApplicationIdentifier);
|
||
//*/
|
||
|
||
//google Ads 使用 wkwebview
|
||
// string gad_preferred_webview = @"
|
||
// <key>gad_preferred_webview</key>
|
||
// <string>wkwebview</string>";
|
||
// list.AddKey(gad_preferred_webview);
|
||
|
||
|
||
// string UnityNotificationRequestAuthorizationOnAppLaunch = @"
|
||
// <key>UnityNotificationRequestAuthorizationOnAppLaunch</key>
|
||
// <true />";
|
||
// list.AddKey(UnityNotificationRequestAuthorizationOnAppLaunch);
|
||
|
||
string SKAdNetworkIdentifiers = @"
|
||
<key>SKAdNetworkItems</key>
|
||
<array>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>2fnua5tdw4.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>2u9pt9hc89.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>3qcr597p9d.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>3qy4746246.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>3sh42y64q3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>424m5254lk.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>4468km3ulz.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>4dzt52r2t5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>4fzdc2evr5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>578prtvx9j.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>5a6flpkh64.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>7ug5zh24hu.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>8c4e2ghe7u.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>8s468mfl3y.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>9rd848q2bz.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>9t245vhmpl.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>av6w8kgt66.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>c6k4g5qg8m.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>cstr6suwn9.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>e5fvkxwrpn.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>f38h382jlk.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>hs6bdukanm.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>kbd757ywx3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>klf5c3l5u5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>n6fk4nfna4.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>p78axxw29g.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>ppxm28t8ap.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>prcb7njmu6.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>s39g8k73mm.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>t38b2kh725.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>uw77j35x4d.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>v4nxqhlyqp.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>v72qych5uu.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>wzmmz9fp6w.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>yclnxrl5pm.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>ydx93a7ass.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>zq492l623r.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>22mmun2rn5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>24t9a8vw3c.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>275upjj5gd.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>294l99pt4k.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>32z4fx6l9h.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>3l6bd9hu43.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>3rd42ekr43.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>4pfyvq9l8r.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>523jb4fst2.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>52fl2v3hgk.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>54nzkqm89y.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>5l3tpt7t6e.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>5lm9lj6jb7.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>5tjdwbrq8w.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>6g9af3uyq4.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>6xzpu9s2p8.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>79pbpufp6p.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>7rz58n8ntl.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>9b89h5y424.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>9nlqeag3gk.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>9yg77x724h.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>a8cz6cu7e5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>c3frkrj4fj.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>cg4yq2srnc.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>cj5566h2ga.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>dkc879ngq3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>ejvt5qm6ak.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>feyaarzu9v.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>g28c52eehv.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>ggvn48r87g.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>glqzh8vgby.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>gta9lk7p23.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>k674qkevps.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>kbmxgpxpgc.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>ludvb6z3bs.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>m5mvw97r93.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>m8dbw4sv7c.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>mlmmfzh3r3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>mtkv5xtk9e.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>n66cz3y3bx.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>n9x2a789qt.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>nzq8sh4pbs.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>pwa73g5rt2.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>qqp299437r.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>r45fhb6rf7.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>rvh3l7un93.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>tl55sbb4fm.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>vcra2ehyfk.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>wg4vff78zm.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>x44k69ngh6.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>x5l83yy675.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>x8jxxk4ff5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>x8uqf25wch.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>xy9t38ct57.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>zmvfpc5aq8.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>44jx6755aq.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>44n7hlldy6.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>4w7y6s5ca2.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>6964rsfnh4.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>6p4ks3rnbw.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>737z793b9f.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>74b6s63p6l.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>84993kbrcf.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>97r2b46745.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>a2p9lx4jpn.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>a7xqa6mtl2.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>b9bk5wbcq9.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>bxvub5ada5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>dzg6xy7pwj.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>f73kdq92p3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>g2y4y55b64.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>hdw39hrw9y.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>krvm3zuq6h.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>lr83yxwka7.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>mls7yz5dvl.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>mp6xlyr22a.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>pwdxu55a5a.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>rx5hdcabgc.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>s69wq72ugq.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>su67r6k2v3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>u679fj5vs4.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>w9q455wk68.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>y45688jllp.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>n38lu8286q.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>v9wttpbfk9.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>252b5q8x7y.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>9g2aggbj52.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>238da6jt44.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>x2jnk7ly8j.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>488r3q3dtq.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>f7s53z58qe.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>v79kvwwj4g.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>ecpz2srf59.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>gvmwg8q7h5.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>pu4na253f3.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>yrqqpx2mcb.skadnetwork</string>
|
||
</dict>
|
||
<dict>
|
||
<key>SKAdNetworkIdentifier</key>
|
||
<string>z4gj7hsk7h.skadnetwork</string>
|
||
</dict>
|
||
</array>
|
||
";
|
||
list.AddKey(SKAdNetworkIdentifiers);
|
||
|
||
///*/facebook 深度连接
|
||
string facebookStr = @"
|
||
<key>CFBundleURLTypes</key>
|
||
<array>
|
||
<dict>
|
||
<key>CFBundleURLSchemes</key>
|
||
<array>
|
||
<string>fb277827051329111</string>
|
||
</array>
|
||
</dict>
|
||
</array>
|
||
<key>FacebookAppID</key>
|
||
<string>277827051329111</string>
|
||
<key>FacebookClientToken</key>
|
||
<string>cd6be8cc57dff789f3476ee1b25e2410</string>
|
||
<key>FacebookDisplayName</key>
|
||
<string>Knights Combo</string>
|
||
<key>LSApplicationQueriesSchemes</key>
|
||
<array>
|
||
<string>fb</string>
|
||
<string>fbapi</string>
|
||
<string>fb-messenger-share-api</string>
|
||
<string>fbauth2</string>
|
||
<string>fbshareextension</string>
|
||
|
||
<string>fbapi20130214</string>
|
||
<string>fbapi20130410</string>
|
||
<string>fbapi20130702</string>
|
||
<string>fbapi20131010</string>
|
||
<string>fbapi20131219</string>
|
||
<string>fbapi20140410</string>
|
||
<string>fbapi20140116</string>
|
||
<string>fbapi20150313</string>
|
||
<string>fbapi20150629</string>
|
||
<string>fbapi20160328</string>
|
||
<string>fbauth</string>
|
||
</array>";
|
||
list.AddKey(facebookStr);
|
||
//*/
|
||
|
||
//保存
|
||
list.Save();
|
||
|
||
}
|
||
}
|
||
|
||
public partial class XClassExt : System.IDisposable {
|
||
|
||
private string filePath;
|
||
|
||
public XClassExt(string fPath) {
|
||
filePath = fPath;
|
||
if (!System.IO.File.Exists(filePath)) {
|
||
Debug.LogError(filePath + "not found in path.");
|
||
return;
|
||
}
|
||
}
|
||
|
||
public void WriteBelow(string below, string text) {
|
||
StreamReader streamReader = new StreamReader(filePath);
|
||
string text_all = streamReader.ReadToEnd();
|
||
streamReader.Close();
|
||
|
||
int beginIndex = text_all.IndexOf(below);
|
||
if (beginIndex == -1) {
|
||
Debug.LogError(filePath + " not found sign in " + below);
|
||
return;
|
||
}
|
||
|
||
int endIndex = text_all.LastIndexOf("\n", beginIndex + below.Length);
|
||
|
||
text_all = text_all.Substring(0, endIndex) + "\n" + text + "\n" + text_all.Substring(endIndex);
|
||
|
||
StreamWriter streamWriter = new StreamWriter(filePath);
|
||
streamWriter.Write(text_all);
|
||
streamWriter.Close();
|
||
}
|
||
|
||
public void Replace(string below, string newText) {
|
||
StreamReader streamReader = new StreamReader(filePath);
|
||
string text_all = streamReader.ReadToEnd();
|
||
streamReader.Close();
|
||
|
||
int beginIndex = text_all.IndexOf(below);
|
||
if (beginIndex == -1) {
|
||
// Debug.LogError(filePath + " not found sign in " + below);
|
||
return;
|
||
}
|
||
|
||
text_all = text_all.Replace(below, newText);
|
||
StreamWriter streamWriter = new StreamWriter(filePath);
|
||
streamWriter.Write(text_all);
|
||
streamWriter.Close();
|
||
|
||
}
|
||
|
||
public void Dispose() {
|
||
|
||
}
|
||
}
|
||
|
||
public partial class XCPlist : System.IDisposable {
|
||
|
||
private string filePath;
|
||
List<string> contents = new List<string>();
|
||
|
||
List<string> removeContents = new List<string>();
|
||
public XCPlist(string fPath) {
|
||
filePath = Path.Combine(fPath, "info.plist");
|
||
if (!System.IO.File.Exists(filePath)) {
|
||
Debug.LogError(filePath + "路径下文件不存在");
|
||
return;
|
||
}
|
||
|
||
FileInfo projectFileInfo = new FileInfo(filePath);
|
||
StreamReader sr = projectFileInfo.OpenText();
|
||
while (sr.Peek() >= 0) {
|
||
contents.Add(sr.ReadLine());
|
||
}
|
||
sr.Close();
|
||
|
||
}
|
||
public void AddKey(string key) {
|
||
if (contents.Count < 2)
|
||
return;
|
||
contents.Insert(contents.Count - 2, key);
|
||
|
||
}
|
||
|
||
public void ReplaceKey(string key, string replace) {
|
||
for (int i = 0; i < contents.Count; i++) {
|
||
if (contents[i].IndexOf(key) != -1) {
|
||
contents[i] = contents[i].Replace(key, replace);
|
||
}
|
||
}
|
||
}
|
||
|
||
public void RemoveKey(string contents) {
|
||
removeContents.Add(contents);
|
||
}
|
||
|
||
public void Save() {
|
||
StreamWriter saveFile = File.CreateText(filePath);
|
||
foreach (string line in contents)
|
||
saveFile.WriteLine(line);
|
||
saveFile.Close();
|
||
|
||
var texts = File.ReadAllText(filePath);
|
||
foreach (string content in removeContents) {
|
||
texts = texts.Replace(content, "");
|
||
};
|
||
File.WriteAllText(filePath, texts);
|
||
|
||
}
|
||
|
||
public void Dispose() {
|
||
|
||
}
|
||
}
|
||
|
||
#endif |