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并指导我完成使其工作所需的步骤?
提前致谢!
解决方法
脚步
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)测试它!