当前位置:百问十五>百科问答>UnityiOS教程之Xcode打包framework在Unity调用

UnityiOS教程之Xcode打包framework在Unity调用

2024-06-24 04:58:20 编辑:join 浏览量:613

UnityiOS教程之Xcode打包framework在Unity调用

Unity iOS教程之Xcode打包framework在Unity调用。本节介绍,在Unity开发中,与IOS交互,Xcode打包framework作为插件,在Unity中调用的方法,具体如下

工具/原料UnityXcode方法/步骤1打开Xcode,新建一个Cocoa Touch Framework 工程,命个名,选择一个保存工程文件夹,最后创建出工程,具体

2在工程中添加需要的.h文件和.m 作为测试,右键 New File... ,首先新添加一个头文件,取个名,其他默认即可,添加出一个.h文件,具体

3同理,在添加一个同名的 .m 文件,具体

4在 .h 文件上添加一个测试函数,以供Unity测试调用,注意添加 extern "C" 字段,不然可能后期Unity调用编译的时候会报错,具体代码和代码说明

5在 .m 文件里实现 . h 文件的接口函数,这里简单的打印一个信息,具体代码和代码说明

6接下来进行设置,在 Build Settings,搜索 Linking,然后对Linking相关进行设置,具体

7在Linking中找到并设置:

1)Dead Code Stripping设置为NO,意思是开启此项就会对代码中的 dead、unreachable 的代码过滤,不过这个开关是否关闭,似乎没有多大影响,不过为了完整还原framework中的代码,建议将此项关闭

2)Link With Standard Libraries关闭,似乎可以避免重复链接

3)Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库

具体修改

8在 Build Settings,搜索 Architectures,然后对Architectures相关进行设置,添加 armv7s,具体

9在 Build Phases 设置中的 Headers 的 public 把自己添加的 .h 添加进来,暴露给Unity,方便Unity调用,具体

10然后,找到到工程的 .h 文件,引入新添加 .h 的头文件(必须是公开的,否则无法引用),将你所有要公开的.h引入,具体

11然后选择 真机和模拟机运行(Command + B),编译出来对应的 framework 文件,然后选中工程中的 Product 下的framework,右键在Finder中打开,即可看到在真机和模拟机下的framework文件,具体

12打开终端,把真机和模拟机framework下的工程名的文件合并,首先在终端输入lipo -create 空格,具体

13然后把真机和模拟机下的 工程名文件,拖入终端,终端会自动识别路径,然后 输入输出 -output 和 合并的路径及文件名,按下回车,即可看到对应路径下生成的合并文件,具体

14在把合并的文件,拖入拷贝一份到模拟机或者真机下的framework中,删掉原先的工程名文件,把合并的文件改名为工程名(如果有后缀.lipo,也一并去掉),具体

15打开Unity,新建一个空工程,在工程中新建一个文件夹路径Plugins/iOS,然后把有合并文件的framework拖入拷贝到工程文件夹路径Plugins/iOS下,具体

16在场景中,添加一个按钮,用来触发与iOS中framework的测试接口函数,并合理布局,具体

17在工程中新建一个脚本,右键打开进行编辑,引入命名空间 System.Runtime.InteropServices,并把framework的的测试接口声明出来,并编写个函数调用该测试接口,具体的代码和代码说明

18脚本编译正确,回到Unity,在场景中新建一个GameObject,白脚本挂载上去,便给场景中的按钮绑定事件,具体

19把平台切换成IOS,然后进行相关的设置,编译打包工程,具体

20工程编译完后,使用Xcode打开工程,在工程中即可看到 Unity 应用的 framework 文件,然后连接真机,编译应用安装到手机上,具体

21经过一段时间,应用安装到了手机上,运行调试中,点击按钮,即会看到 Xcode调试信息答应的对应的信息,具体

22到此,Xcode打包 framework,以及在 Unity 的使用功能基本实现

标签:UnityiOS,Xcode,framework

版权声明:文章由 百问十五 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.baiwen15.com/answer/99511.html
热门文章