c# – Unity iOS – 无法从.Bundle导入函数
目前正在尝试在Unity上为iOS框架创建一个包装器.
我制作了一个.bundle,包含基本的Objective-c代码: sample.h: #import <Foundation/Foundation.h> extern "C" { void SampleFunction(); // this is going to call already bridged swift or objc code } sample.mm: #import "Sample.h" #import <SDK/SDKFunctions.h> void SampleFunction() { // my sweet functions calls } SDK作为.framework包含在包中(在“链接的框架和库”中引用).捆绑目标是iOS. 捆绑包成功构建. 捆绑包位于Unity中的“Assets / Plugins / iOS”下,标记为“iOS”和“添加到嵌入式二进制文件” 然后,在Unity中,有一个简单的C#脚本调用SDK函数: sample.cs public class BundleImportSample : MonoBehaviour { #if UNITY_IOS [DllImport("__Internal")] private static extern void SampleFunction(); #endif void Start() { #if UNITY_IOS SampleFunction(); #endif } } 当我在编辑器中测试此代码时,我收到以下错误:
如果我在iOS上构建生成的项目,我会遇到类似的问题:
注意:我使用以下教程作为指导:http://blog.mousta.ch/post/140780061168 为什么在__Internal中找不到SampleFunction()? 解决方法
代码很好.
问题是关于.bundle中的切片.它是为i386 / x86_64而不是arm64 / armv7 / armv7s而构建的. 要避免此问题,请检查目标上的以下选项: >构建在“通用iOS设备”上>构建设置:“仅构建活动架构:否”>构建设置:“架构:标准架构” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |