如何禁用项目对Bitcode的支持?

=============
如何禁用项目对Bitcode的支持?
https://support.unity3d.com/hc/zh-cn/articles/207942813--%E5%A6%82%E4%BD%95%E7%A6%81%E7%94%A8%E9%A1%B9%E7%9B%AE%E5%AF%B9Bitcode%E7%9A%84%E6%94%AF%E6%8C%81-

问题
我正开发iOS平台的游戏
我想把Unity导出的Xcode项目默认设置为:ENABLE_BITCODE = NO
我仍然需要使用几个不支持iOS Bitcode的第三方库。

原因
在Unity 5.3.1p1中,会默认启用对Bitcode的支持。
解决方案
使用UnityEditor.iOS.Xcode.PBXProject辅助类可以禁用对Bitcode的支持。
文档如下:
http://docs.unity3d.com/ScriptReference/iOS.Xcode.PBXProject.html

源码如下:
https://bitbucket.org/Unity-Technologies/xcodeapi
改变ENABLE_BITCODE属性的示例代码如下:

using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public static class MyBuildPostprocess
{
    [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);

            string target = pbxProject.TargetGuidByName("Unity-iPhone");            
            pbxProject.SetBuildProperty(target, "ENABLE_BITCODE", "NO");

            pbxProject.WriteToFile (projectPath);
        }
    }
}
更多信息
不建议禁用Bitcode,但也存在难免需要禁用的情况。想了解更多启用Bitcode的益处,请查阅这里。
本文适用于Unity 5.3.1p1及更高版本

=================
Unity导出xcode自动配置工具
https://gameinstitute.qq.com/community/detail/128967

开发者社区 > 程序

Unity导出xcode自动配置工具

发表于2018-12-21

评论0分享

分享到

  •  
  •  

2k浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

711501594

Unity3D5.5在UnityEditor.iOS.Xcode命名空间下提供了一组的类,用以操作Unity3D生成的Xcode工程,从命名空间可以得知,这些都是编辑器类。

 

这里介绍的[配置工具]是对这些API的一个封装与整合,使用者只需要编辑、提供一个json配置文件(XCodeConfig.json)。

 

支持功能:

1、Info.Plist编辑支持

2、系统Lib添加、移除支持

3、系统framework添加、移除支持

4、工程编译属性的添加、更新、移除

5、文件加入

6、文件夹加入

7、文件编译符号更新

 

工具包只能放在U3D工程Assets根目录下,形如:

 

XCodeConfig.cs是对api的封装代码,并会在打包完成时被引擎调用以配置xcode。XCodeConfig.txt是json配置,不能改名字。XCodeConfigTemplate.txt是json模板,一个备份。剩下的两个是工具类。

 

模板形式如下,tip字段是注释,无实际作用:

 

键libs下是配置静态库;键frameworks下是配置框架;键properties下是配置工程的编译属性;plist是编辑info.plist文件;files是待复制文件,folders是待复制文件夹;filesCompileFlg是文件编译符号的设置。

 

下面举例说明:

 

静态库配置:

 

ios9以上,lib是以tbd为扩展名的,+号里表示要添加的库,-号是要移除的,一般不需要移除。

 

框架配置:

同上。

 

编译属性配置:

 

A、Bitcode设置为关闭

B、ObjC异常设置为启用

C、其它链接符号中加入符号-ObjC

 

需要注意的是,配置的KEY可能和在Xcode中看到的KEY不一样,每一条属性有一个声明名字和一个描述名字,一般配置下,在Xcode中看到的是描述名字,我们需要的是它的声明名字,方法就是,在Xcode中选中该条属性,点击右边检视面板上的“?”图标,然后Declaration就是我们需要的名字,例如,Enable Bitcode属性它的声明为ENABLE_BITCODE,所以我们在配置时key为ENABLE_BITCODE。

 

Info.plist配置:

 

 

 

分别配置了ShareSDK Schemes、相册权限描述、ShareSDK白名单,同上,它的KEY也是需要声明名字。

 

文件复制配置:

 

无,一般可用文件夹复制代替。

 

文件夹复制配置:

 

复制了原生相册插件、Share插件,key是文件夹在U3D工程的位置,以工程根目录为根(也即Assets的父目录)的相对路径,所以不建议放在Assets下,可以单独建文件夹。Value是文件在Xcode中的位置,是以Xcode工程目录为根目录的相对路径。

 

目前存在bug是xcode工程复制到其它mac上时,文件夹引用会丢失,需要手动添加一下引用。

 

文件编译符号配置:

这里是对JSONKit.m文件添加了-fno-objc-arc符号,注意value是数组,也即可以写多个,也可以合成一个string写,但始终是数组形式。

 

配置json文件XCodeConfig.json可以在相应目录下找到:

插件下载:http://pan.baidu.com/s/1dEMaavn

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值