16

我想将单声道嵌入到我的 iOS 应用程序中。我不想使用 MonoTouch。我想像这样手动嵌入单声道:

http://www.mono-project.com/Embedding_Mono

我已经在 Windows 上成功地做到了这一点,使用上面的指南和各种在线示例,这是一个很好的 Windows:

https://github.com/inkdev/Embedded-Mono-Sample

但是我在开始使用 iOS 时遇到了麻烦。我知道这是可以做到的,像 Unity3d 这样的公司用它来驱动他们的游戏引擎技术。我不知道如何为 iOS 编译和链接单声道,也找不到任何好的说明。我没有找到使用搜索引擎的任何帮助,它们似乎专门出现了有关 MonoTouch(Xamarin 自己的将单声道嵌入 iOS 的商业包装器)的文章。

这里还有一些值得注意的链接:

http://www.mono-project.com/Mono:ARM

http://web.archive.org/web/20090106023130/http://mono-project.com./Mono:Iphone

有没有什么地方可以为 iOS 的 Mono 获得预编译的库和头文件,所以在我的 C 代码中我可以简单地链接和包含?

有人可以提供如何为 iOS ARM CPU 编译单声道的示例吗?

MonoTouch 为所有 iOS 目标 C API 提供了一个很好的包装器,但是您不一定需要所有这些,因为我知道应该可以自己编译然后嵌入单声道,然后使用 pInvoke 调用您的少数本机函数将需要。

任何帮助将不胜感激,ty!

4

2 回答 2

1

虽然不完全符合您的要求,但 iOS 7 增加了对使用 JavaScript 编写脚本的支持。许多发现这篇文章的人可能希望使用这种新功能来实现您正在尝试的目标。关联

于 2013-10-23T03:45:49.807 回答
0

正如 Rolf 所说,您需要先阅读Mono Licensing 文档。在 iOS 上嵌入单声道需要 Xamarin 的特殊许可。

您需要从 XCode 更改几个构建设置,这就是我所做的。

  1. 打开(或创建)iOS 项目
  2. 添加libmonoboehm-2.0.a到您的项目(您可以使用其他版本的 .a 文件)
    1. 它在Library/Frameworks/Mono.framework/Versions/{version}/lib文件夹中
  3. 项目 -> 构建设置 -> 标题搜索
    1. 添加路径:/Library/Frameworks/Mono.frameworks/Versions/{version}/include/mono-2.0
  4. 项目 -> 构建设置 -> 库搜索
    1. 添加路径:/Library/Frameworks/Mono.frameworks/Versions/{version}/lib

而且,在你的 iOS 应用程序中这样的代码

    #include <mono/jit/jit.h>
    #include <mono/metadata/mono-config.h>
    #include <mono/metadata/assembly.h>
    #include <mono/metadata/environment.h>

// ....

    const char* dllFile = "ABSOLUTE_PATH_TO_DLL_OR_EXE";
    domain = mono_jit_init(dllFile);
    mAssembly = mono_domain_assembly_open(domain, dllFile);
// ... Do whatever you want :)

请记住。在 iOS 上嵌入单声道时,您需要从 Xamarin 获得许可证。

享受 :)

于 2013-08-01T07:03:22.800 回答