/// <summary> /// 添加外部Framework /// </summary> static void AddExternalFramework(PBXProject pbxProject, string targetGuid, string unityTargetGuid, string prjPath) { var cfg = SDKConfigEditor.ReadLocalConfig(); string sdkPath; if (cfg.IsUseOldPath) { sdkPath = Path.GetFullPath(SDKCopy.OldSDKPath); } else { sdkPath = Path.GetFullPath(SDKCopy.SDKPath); if (!string.IsNullOrEmpty(cfg.SdkPath)) { sdkPath = cfg.SdkPath; } } if (!Directory.Exists(sdkPath)) { UnityEngine.Debug.LogError("SDK Folder is not exists!"); return; } UnityEngine.Debug.Log("Use SDK Path: " + sdkPath); SDKCopy.CopySDKDirectoryToXCode(pbxProject, targetGuid, unityTargetGuid, sdkPath, prjPath, SDKDestPath); }
public static void OnPostProcessBuild(BuildTarget buildTarget, string path) { //#if UNITY_IOS || UNITY_IPHONE if (buildTarget == BuildTarget.iOS) { string pbxprojPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj"; var pbxProject = new PBXProject(); pbxProject.ReadFromFile(pbxprojPath); #if UNITY_2019_3_OR_NEWER //unity 2019版使用 string target = pbxProject.GetUnityMainTargetGuid(); string uTarget = pbxProject.GetUnityFrameworkTargetGuid(); #else //unity 2018,2017版可使用 string target = pbxProject.TargetGuidByName("Unity-iPhone"); string uTarget = target; #endif pbxProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); pbxProject.SetBuildProperty(uTarget, "ENABLE_BITCODE", "NO"); #if UNITY_2019_3_OR_NEWER pbxProject.SetBuildProperty(uTarget, "SUPPORTS_MACCATALYST", "NO"); #endif //pbxProject.SetBuildProperty(target, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES"); //pbxProject.SetBuildProperty(target, "GCC_C_LANGUAGE_STANDARD", "gnu99"); //设置Capability AddCapability(pbxProject, target, path); // 添加系统框架 AddSystemFramework(pbxProject, uTarget); // 添加外部框 AddExternalFramework(pbxProject, target, uTarget, path); //添加Run Script -> 解决快手x86问题 AddShellScriptForKUAISHOU(pbxProject, target); // 设置SDK参数 SDKConfigEditor.SetJCiOSSDKConfig(path); pbxProject.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC"); pbxProject.AddBuildProperty(uTarget, "OTHER_LDFLAGS", "-ObjC"); //pbxProject.AddBuildProperty(target, "OTHER_LDFLAGS", "-fobjc-arc"); pbxProject.AddFileToBuild(uTarget, pbxProject.AddFile("usr/lib/libbz2.tbd", "Libraries/libbz2.tbd", PBXSourceTree.Sdk)); pbxProject.AddFileToBuild(uTarget, pbxProject.AddFile("usr/lib/libz.tbd", "Libraries/libz.tbd", PBXSourceTree.Sdk)); pbxProject.AddFileToBuild(uTarget, pbxProject.AddFile("usr/lib/libxml2.tbd", "Libraries/libxml2.tbd", PBXSourceTree.Sdk)); pbxProject.AddFileToBuild(uTarget, pbxProject.AddFile("usr/lib/libsqlite3.tbd", "Libraries/libsqlite3.tbd", PBXSourceTree.Sdk)); pbxProject.AddFileToBuild(uTarget, pbxProject.AddFile("usr/lib/libc++.tbd", "Libraries/libc++.tbd", PBXSourceTree.Sdk)); pbxProject.AddFileToBuild(uTarget, pbxProject.AddFile("usr/lib/libresolv.9.tbd", "Libraries/libresolv.9.tbd", PBXSourceTree.Sdk)); //添加本地化程序名等配置 AddLocaleConfig(pbxProject, target, path); pbxProject.WriteToFile(pbxprojPath); //修改InfoPlist配置 EditInfoPlist(path); //修改Unity启动代码以适配广告SDK UnityAppControllerModifier.ModfiyCode(path); } //#endif }