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