如何将ShareKit与MonoTouch结合使用?
基于MonoTouch的GitHub绑定项目似乎有ShareKit绑定,但我不能让他们工作。我目前有一个使用iPhone中的MonoTouch开发的MonoDevelop应用程序,但是我不知道如何将ShareKit实际应用到我的应用程序中。
我已经下载了MonoTouch绑定项目,但是当我在ShareKit目录中使用make时,它似乎需要ShareKit本身。然后我下载了ShareKit,但我不确定是否应该遵循将ShareKit集成到XCode项目的安装说明,甚至不确定是否应该构建ShareKit。我尝试过用iPhone“构建”一个空的ShareKit应用程序项目,但对于最新的XCode,部分说明似乎还没有更新,我似乎陷入了这个过程。我正在努力实现这个目标,但到目前为止,我使用XCode的经验仅限于MonoTouch开发所需的内容。
还是有一个“预编译”的ShareKit iOS二进制文件可以与MonoTouch一起使用?
是否有人能验证ShareKit在MonoTouch中实际上是可用的,并向我介绍使其工作所需的步骤?
提前感谢!
发布于 2012-06-13 17:31:56
首先,您是从getsharekit.com下载还是使用ShareKit 2.0?如果您正在使用getsharekit中的DL,那么我强烈建议您先升级。其次,这里有一些关于如何让ShareKit与MonoTouch一起工作的基本安装说明:
步骤
1)下载代码
2)在Xcode中打开,如果它是一个应用程序,则创建一个新的iOS库类型的Xcode项目
3)编译库并注意所需的框架--这些框架将在以后单调链接时帮助您。
3)编译库的i386 Sim版本,并将其重命名为libXYZLib_Sim.a --将其复制到项目中的/Lib,并将其构建操作设置为None。您可以在/ProjectLib/build/Debug-iphone仿真器/
4)用正确的版本编译arm6版本&将其复制到项目中的/Lib,并将其构建操作设置为None。您可以在/ProjectLib/build/Debug-iphoneos/下找到这个
5)对包含NovellHeaderParser文件的库目录像这样运行.h
@@ mono "/Users/XX/Projects/NovellHeaderParser/NovellHeaderParser/bin/Debug/NovellHeaderParser.exe“/Users/XX/Documents/ShareKitLib/ShareKit/Core @
这将产生一个可以导入到系统中的MonoMac.cs文件。
6)对其他目录重复步骤5。注意,您实际上只需要针对带有入口点的.h文件运行解析器,例如API直接调用的顶级类。子类、utils、helper方法不需要被解析。
7)将所有MonoMac.cs文件合并到一个新的MyLib.cs文件中,并将其添加到/Lib下的项目中--将其构建选项设置为None。
8)将所有引用从MonoMac更改为MonoTouch
10)解析器可能为已解析的每个目录创建一个enum.cs文件,但如果不创建自己的MyLibEnum.cs,则使用API所需的任何结构或枚举--将其添加到/Lib并将构建选项设置为None。
11)打开终端窗口并导航到项目的/Lib dir
12)运行以下btouch命令行--这将从MyLib.cs @@ /Developer/MonoTouch/usr/bin/btouch -v MyLib.cs -s MyLibEnum.cs @@中定义的接口创建一个-v
13)向MyLibEnum.cs中添加任何缺失的枚举或结构,并重复步骤12
14)通过重命名选择器来修正任何多个选择器声明--这可能会引起问题(见注1)。
15)修正任何缺失的引用,例如NSMutableArray似乎不存在单调,所以我将它们更改为NSArrays (我认为它们在单调下是可变的?)
16)返回到12)并重复,直到生成dll为止。
17)在项目中添加对dll的引用
18)将以下内容添加到模拟器调试/发行版构建的iPhone Build>附加mtouch选项中:@@ -gcc_flags "-L${ProjectDir}/Lib -lMyLib_Sim -framework QuartzCore -framework CoreGraphics MessageUI -framework Security -framework UIKit -framework -framework -framework UIKit-framework-framework-framework${}/Lib/libMyLib_Sim.a“@
“通知”
没有尾随/在-L${ProjectDir}/Lib上
-lShareKitLib_Sim不需要启动lib前缀或.a后缀
为库的创建过程中使用的每一个框架添加一个-framework,这并不是一个消除压力的列表。
19)将以下内容添加到iPhone调试/发行版构建的IPHONE Build>附加mtouch选项中:@@ -gcc_flags "-L${ProjectDir}/Lib -lMyLib -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework -framework -framework UIKit -framework UIKit-framework-framework${}/Lib/libMyLib.a“@
20)测试它!
发布于 2012-06-08 15:43:00
在大多数情况下,当在MonoTouch中使用绑定时,您必须下载实际库的绑定(或SDK)。例如,在使用TestFlight绑定时,需要下载SDK并将其放在与makefile相同的目录中。我本人并没有用ShareKit来解释,但我认为它也会以同样的方式工作(我知道大多数(如果不是全部) MT绑定GitHub项目中的绑定都是这样工作的)。您根本不必处理Xcode。只需下载SDK,将其放在正确的目录中,并运行makefile即可。这应该会为您提供一个DLL,供您参考以便与MonoTouch一起使用。
使用ShareKit绑定的限制之一是,据我所知,在尝试使用链接器之前,必须在Objective中进行UI调整。如果你对开箱即用的用户界面没意见,那么我会去做的。否则,还有很多其他开源库来创建一个简单的共享对话框(既然Twitter已经内置到iOS中,就更容易了)。
https://stackoverflow.com/questions/10879781
复制相似问题