我想将mono嵌入到我的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
在某些地方我可以获得Mono for iOS的预编译库和标题,所以在我的C代码中我可以简单地链接和包含?
有人可以提供如何为iOS ARM CPU编译单声道的示例吗?
MonoTouch为所有iOS Objective C API提供了一个很好的包装器,但是你不一定需要所有这些,因为据我所知它应该可以编译然后自己嵌入mono然后使用pInvoke来调用少数几个你需要的原生功能。
非常感谢任何帮助,ty!
答案 0 :(得分:1)
虽然不完全符合您的要求,但iOS 7增加了对使用JavaScript编写脚本的支持。很多人发现这篇文章可能想要使用这种新功能来实现你的目标。 Link
答案 1 :(得分:0)
正如罗尔夫所说,你需要先阅读Mono Licensing document。在iOS上嵌入mono需要得到Xamarin的特别许可。
您需要从XCode更改多个构建设置,这就是我所做的。
libmonoboehm-2.0.a
添加到您的项目中(您可以使用.a文件的其他版本)
Library/Frameworks/Mono.framework/Versions/{version}/lib
文件夹/Library/Frameworks/Mono.frameworks/Versions/{version}/include/mono-2.0
/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上嵌入mono时,您需要从Xamarin获得许可。
享受:)