gpt4 book ai didi

c# - Unity iOS - 无法从 .Bundle 导入函数

转载 作者:可可西里 更新时间:2023-11-01 04:32:48 52 4
gpt4 key购买 nike

目前正在尝试为 Unity 上的 iOS 框架创建包装器。

我做了一个 .bundle,包含基本的 objective-c 代码:

示例.h :

#import <Foundation/Foundation.h>

extern "C"
{
void SampleFunction(); // this is going to call already bridged swift or objc code
}

样本.mm :

#import "Sample.h"
#import <SDK/SDKFunctions.h>

void SampleFunction()
{

// my sweet functions calls

}

SDK 作为 .framework 包含在包中(引用“链接的框架和库”)。捆绑目标是 iOS。

包构建成功。

bundle 放在 Unity 的“Assets/Plugins/iOS”下,标记为“iOS”和“Add to Embedded Binaries”

然后,在Unity中,有一个简单的C#脚本调用SDK函数:

示例.cs

public class BundleImportSample : MonoBehaviour {


#if UNITY_IOS
[DllImport("__Internal")]
private static extern void SampleFunction();
#endif
void Start()
{
#if UNITY_IOS
SampleFunction();
#endif
}
}

当我在编辑器中测试此代码时,出现以下错误:

EntryPointNotFoundException: SampleFunction

如果我在 iOS 上构建生成的项目,我会遇到类似的问题:

ld: symbol(s) not found for architecture arm64

注意:我使用以下教程作为指南:http://blog.mousta.ch/post/140780061168

为什么在 __Internal 中找不到 SampleFunction()?

最佳答案

代码很好。

问题与 .bundle 中的切片有关。它是为 i386/x86_64 而不是 arm64/armv7/armv7s 构建的。

为避免此问题,请检查目标上的以下选项:

  • 基于“通用 iOS 设备”构建
  • build设置:“仅构建事件架构:否”
  • build设置:“架构:标准架构”

关于c# - Unity iOS - 无法从 .Bundle 导入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50988617/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com