Unity xcode配置(Editor)

当接入iOS的一些SDK时,经常要对xcode做一些配置,如下图

手动配置起来非常麻烦,我们可以通过UnityEditor做动态配置,每次打包,会自动将配置导入到xcode

以下示例,包括buildSetting设置,依赖库,及info.plist修改等

using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

namespace Editor
{
    public class XcodeSetting
    {
        [PostProcessBuild(999)]
        public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
        {

                if(buildTarget == BuildTarget.iOS)
                {
                    string projectPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";
                    PBXProject pbxProject = new PBXProject();
                    pbxProject.ReadFromFile(projectPath);
                    //设置xcode  buildSetting的属性
                    string target = pbxProject.TargetGuidByName("Unity-iPhone");            
                    pbxProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
                    pbxProject.SetBuildProperty(target, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
                    pbxProject.SetBuildProperty(target, "GCC_C_LANGUAGE_STANDARD", "gnu99");
                    
                    //设置依赖的framework
                    string targetGuid = pbxProject.GetUnityMainTargetGuid();
                    pbxProject.AddFrameworkToProject(targetGuid, "libz.dylib", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "libsqlite3.tbd", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "Security.framework", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "CFNetwork.framework", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "Foundation.framework", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "UIKit.framework", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "JavaScriptCore.framework", false);
                    pbxProject.AddFrameworkToProject(targetGuid, "AdSupport.framework", false);
                    pbxProject.WriteToFile (projectPath);

                    //写入xcode info.plist
                    var plistPath = System.IO.Path.Combine(path, "Info.plist");
                    PlistDocument plist = new PlistDocument();
                    plist.ReadFromFile(plistPath);
                    plist.root.SetString("GADApplicationIdentifier", "ca-app-pub-9488501426181082/7319780494");
                    plist.root.SetBoolean("GADIsAdManagerApp", true);
                    plist.WriteToFile(plistPath);

                }

        }
 
    }
}

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值