如何禁用项目对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资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群
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