xamarin.ios – ShareKit与MonoTouch如何?

前端之家收集整理的这篇文章主要介绍了xamarin.ios – ShareKit与MonoTouch如何?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你如何在MonoTouch中使用ShareKit?

MonoTouch Bindings project on GitHub似乎有bindings for ShareKit,但我无法让他们工作.我目前在MonoDevelop中使用MonoTouch开发了一个iPhone应用程序,但我不知道如何将ShareKit实际应用到我的应用程序中.

我已经下载了MonoTouch Bindings项目,但是当我在ShareKit目录中创建时,它似乎需要ShareKit本身.然后我下载了ShareKit,但我不确定我是否应该遵循将ShareKit集成到XCode项目中的安装说明,或者我是否应该构建ShareKit.我尝试使用ShareKit“构建”一个空的iPhone应用程序项目,但似乎部分说明并不是最新的XCode的最新版本,我似乎陷入了困境.我试图让这个工作起作用,但到目前为止,我对XCode的经验仅限于MonoTouch开发所需的一切.

或者是否有可以与MonoTouch一起使用的“预编译”ShareKit iOS二进制文件

有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?

提前致谢!

解决方法

您首先从getsharekit.com下载还是使用ShareKit 2.0?如果您使用的是来自getsharekit的DL,那么我强烈建议您先升级.其次是使ShareKit与MonoTouch一起使用的一些基本安装说明:

脚步

1)下载代码

2)在Xcode中打开,如果它的App创建一个iOS库类型的新Xcode项目

3)编译库并记下所需的框架 – 这些将在以后链接到单触时帮助您

3)编译lib的i386 Sim版本并重命名为libXYZLib_Sim.a – 将其复制到项目中的/ Lib并将其构建操作设置为None.你可以在/ ProjectLib / build / Debug-iphonesimulator /下找到它

4)使用正确的版本编译arm6版本&将其复制到项目中的/ Lib并将其构建操作设置为None.你可以在/ ProjectLib / build / Debug-iphoneos /下找到这个

5)对包含.h文件的库目录运行NovellHeaderParser

@@
mono“/Users/XX/Projects/NovellHeaderParser/NovellHeaderParser/bin/Debug/NovellHeaderParser.exe”/ Users / XX / Documents / ShareKitLib / ShareKit / Core
@@

这应该会产生一个MonoMac.cs文件,您可以将其导入系统

6)对其他目录重复步骤5.注意,您实际上只需要针对具有入口点的.h文件运行解析器,例如API直接调用的顶级类.不需要解析子类,utils,辅助方法.

7)将所有MonoMac.cs文件合并到一个新的MyLib.cs文件中,并将其添加到/ Lib下的项目中 – 将其构建选项设置为None

8)将MonoMac的任何引用更改为MonoTouch

10)解析器可能会为每个解析的目录创建一个enum.cs文件,但如果没有创建自己的名为MyLibEnum.cs的API,需要API所需的任何结构或枚举 – 将其添加到/ Lib并将构建选项设置为None

11)打开终端窗口并导航到项目的/ Lib目录

12)运行以下btouch命令行 – 这将从MyLib.cs中定义的接口创建一个wrapper.dll
@@
/ Developer / MonoTouch /usr/bin/btouch -v MyLib.cs -s MyLibEnum.cs
@@

13)将任何缺少的枚举或结构添加到MyLibEnum.cs并重复步骤12

14)通过重命名来修复选择器的任何多个声明 – 这可能会导致以后出现问题(参见注释1)

15)修复任何遗漏的引用,例如NSMutableArray似乎不存在于monotouch中,因此我将这些更改为NSArrays(我认为这些在monotouch下是可变的???)

16)返回12)并重复直到生成一个dll.

17)在项目中添加对dll的引用

18)将以下内容添加到iPhone Build>模拟器调试/释放构建的附加mtouch选项:
@@
-gcc_flags“-L ${ProjectDir} / Lib -lMyLib_Sim -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework Security -framework UIKit -framework CFNetwork -force_load ${ProjectDir} /Lib/libMyLib_Sim.a -ObjC”
@@

”’注意”’

没有尾随/上-L ${ProjectDir} / Lib

-lShareKitLib_Sim不需要起始lib前缀或.a后缀

为创建lib时使用的每个框架添加一个框架 – 上面不是一个详尽的列表

19)将以下内容添加到iPhone Build> IPHONE DEBUG / RELEASE BUILD的其他mtouch选项:
@@
-gcc_flags“-L ${ProjectDir} / Lib -lMyLib -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework Security -framework UIKit -framework CFNetwork -force_load ${ProjectDir} /Lib/libMyLib.a -ObjC”
@@

20)测试它!

猜你在找的iOS相关文章