コード例 #1
0
    /// <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);
    }
コード例 #2
0
    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
    }