| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity XCode自动化打包以及 Unity2020 接入 iossdk相关配置 -> 正文阅读 |
|
[游戏开发]Unity XCode自动化打包以及 Unity2020 接入 iossdk相关配置 |
unity xcode打包自动化,在unity打完xcode包以后,unity自己回调带有【PostProcessBuild】的方法或者脚本,从而读取到xcode配置。 特别注意:此脚本不用挂 monobehaviour ,只需要把脚本放入Assets/Editor/下即可!!! 把你的写的.mm 和.h 文件放入 Plugin/ios下面,这个是和oc交互需要用到的,他需要在ios模式下交互 具体的api不解释了,去查unity官网文档即可。 就根据unity2020接入ios sdk来说 xcode编译基于Unity-iPhone和UnityFramework(Unity2019以后出现),所以在接入iossdk的是时候,我们只需要配置 UnityFramework的大部分环境和Unity-IPhone 里的少量环境。 咱们先说步骤,具体操作我会在后面贴图。 我们需要配置一下几步 ????????1.配置相关证书,双击给到你的p12文件,输入密码,把他安装到mac本地,因为这个文件有你的teamid等相关信息,如果本地以前有过安装文件的话,点开你的应用程序,点击秘钥,把以前的.p12删除,如果找不到秘钥,点击你的.p12文件这样自己会弹出秘钥,安装完.p12文件以后,接下来我们就可以配置证书,证书会有两种格式 dev/dis,这个和你发布的时候有关,看你想要用那种方式去发布。 2.添加frameworks和静态库到buildphase里(这些静态库ios提供的和你自己要导入的sdk相关的framework和.a文件),除了内置的ios库以及framework以外,sdk自己的库和framework文件你需要添加到工程里,点击左侧工程,进入你的目录,点击你的要添加的文件夹通过AddFIles添加,需要勾选if needs(或者直接手动拖到你的左侧列表里,他会给你提供选择),这些库和文件只需要添加到unityframework里编译,unity-iphone不用添加(如果两份添加的话可能会重复,编译xcode的时候会报错),你把sdk相关文件拖进去以后,他会把文件都自动添加上,如果没有添加上的话记得把你的framework和.a文件手动拖进入(sdk相关文件)。 3. ? ? ? ? 1.配置buildSetting 搜索bitcode ---> NO ,如果编译过程中报错的话,那就把unity-iphone和unityframework里的设置一下。 ? ? ? ? 2.在otherlink里边去添加 -ObjC,这是支持oc代码的,其他应该还需要添加,这个按照SDK文档来就行了,添加在UnityFramework就行 ? ? ? ? 3.就这些应该也不用设置什么了,如果有需要的话查看你的sdk文档 4.? 配置相关资源,在unityframework里把你的sdk里边的资源都拖进来,比如.bundle.cfg.dat等资源类型的文件都添加complie sources里,这个添加unityframework里就好,这个需要你自己手动添加,如果不添加资源的话在编译的时候会报错,因为你在把SDK文件的相关目录拖进入的时候,他已经在UnityiPhone ---?buildphase里添加了,所以不用再次添加,只需要在unityframework里把资源放入就好。 配置好以上资源以后,就可以编译了。 一些常用报错的解决方案 ? ? ? ? 1.obj_class_xx 这个是找不到类,这个时候就需要具体问题具体分析,看看是哪个文件里边找不到相关的类,一般情况下就是sdk文件缺少引入framework和缺少添加ios内置framework和静态库 ????????2.device_left_space 这种报错就是没有空间了,清理一下mac空间就好,或者找到archive目录,直接清理一下,他在xcode里边是很占内存的,能省出一大部分空间 ????????3.与bitcode相关的报错就是 把bitcode设置为no就好 ? ? ? ? 4.不要去替换unityframeworks的目录,因为他是unity自己生成的,如果复制粘贴的话可能会重复或者找不到plist,不要去替换plist ? ? ? ? 5.library not found xxx,这个就是没有在library search path里添加相关文件的目录,给他们添加一下就好。 ? ? ? ? 6.xxx.h not found 这种就是.h文件没有找到 ,这就情况就是需要在header search path 里把这个文件的根目录添加上就行,如果还找不到那就在添加一层 ? ? ? ? 7.xxxframework not found,这个是库没有找到,那就在framework search path里把库的路径添加上就好 ? ? ? ? 8.search path 在buildSetting里,搜索search path就好 ? ? ? ? 9.如果连接上手机安装到手机上的话,报错那就是手机没有允许权限,重新插入一下允许权限就好 5.在sdk初始化和需要调用一些接口的时候会在unityAppController.mm 文件里,这个时候根据文档直接调用就行,如果崩溃的话及时联系第三方或者相关技术人员 6.配置plist 这个里边就是配置一些权限,拍照,录音啥的,手机定位,以及屏幕旋转,微信,支付宝各种支付,具体的话按照文档来吧。 最后一步直接出包就行,如果还有其他报错或者说没有配置的地方,导致没有编译过去,及时联系sdk相关技术人员。 在这里设置包名,teamid,证书 ?,最后提供一个范例,仅供参考。 #if UNITY_IOS || UNITY_EDITOR using System.Collections;
? ? } ? ? internal static void InitData(string path) ? ? ? ? // 1.获取到unityframework配置 2.获取到unity-iphone 配置 ? ?? ? ? /// <summary> ? ? ? ? string str = ".Framework"; ? ? ? ? List<string> libs = new List<string> ? ? ? ? for (int i = 0; i < frameworks.Count; i++) ? ? ? ? for (int i = 0; i < libs.Count; i++)
? ? /// <summary> ? ? internal static void AddPlist(PBXProject proj, string path) ? ? } ? ? /// <summary> ? ? ? ? if (proj == null) return; ? ? ? ? proj.SetBuildProperty(unityframework,"xx","xx"); ? ? ? ? ? ? /// <summary> ? ? } ??
以上亲测可用,如果有不明白或者不了解的地方,可以和大佬们交流交流哈。 希望路过的各位大佬多多指正,小弟拜谢! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 20:14:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |