Sha*_*uch 7 xamarin.ios sharekit
你如何使用ShareKit与MonoTouch?
GitHub上的MonoTouch Bindings项目似乎具有ShareKit的绑定,但我无法让它们工作.我目前在MonoDevelop中使用MonoTouch开发了一个iPhone应用程序,但我不知道如何将ShareKit实际应用到我的应用程序中.
我已经下载了MonoTouch Bindings项目,但是当我make在ShareKit目录中时,它似乎需要ShareKit本身.然后我下载了ShareKit,但我不确定我是否应该遵循将ShareKit集成到XCode项目中的安装说明,或者我是否应该构建ShareKit.我尝试使用ShareKit"构建"一个空的iPhone应用程序项目,但部分说明似乎并不是最新的XCode的最新版本,似乎我陷入了困境.我试图让这个工作起作用,但到目前为止,我对XCode的经验仅限于MonoTouch开发所需的一切.
或者是否有可以与MonoTouch一起使用的"预编译"ShareKit iOS二进制文件?
有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?
提前致谢!
大多数情况下,在MonoTouch中使用绑定时,您必须下载实际库的绑定(或SDK).例如,使用TestFlight绑定,您需要下载SDK并将其放在与makefile相同的目录中.我没有亲自使用ShareKit进行过实验,但我认为它的工作方式相同(我知道MT绑定GitHub项目中的大多数(如果不是全部)绑定都是这样的).您根本不应该处理Xcode.只需下载SDK,将其放在正确的目录中,然后运行makefile.那应该吐出一个DLL供你参考,用于MonoTouch.
使用ShareKit绑定的一个限制是,据我所知,在尝试使用链接器之前,必须在Objective-C中完成UI调整.如果您对开箱即用的UI很好,那么我会选择它.否则,还有很多其他开源库可用于创建简单的共享对话框(现在,Twitter内置于iOS,它更容易).
首先您是从 getsharekit.com 下载的还是使用 ShareKit 2.0?如果您使用 getsharekit 的 DL,那么我强烈建议您先升级。其次是让 ShareKit 与 MonoTouch 一起使用的一些基本安装说明:
脚步
1)下载代码
2) 在 Xcode 中打开,如果它是一个应用程序,则创建一个 iOS 库类型的新 Xcode 项目
3) 编译库并记下所需的框架 - 这些将在稍后在 monotouch 中链接时为您提供帮助
3) 编译 i386 Sim 版本的 lib 并重命名为 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 文件,但如果没有使用 API 所需的任何结构或枚举创建您自己的名为 MyLibEnum.cs 的文件 - 将其添加到 /Lib 并将构建选项设置为 None
11) 打开终端窗口并导航到项目的 /Lib 目录
12) 运行以下 btouch 命令行 - 这将从 MyLib.cs @@ /Developer/MonoTouch/usr/bin/btouch -v MyLib.cs -s MyLibEnum.cs @@ 中定义的接口创建一个wrapper.dll
13) 将任何缺失的枚举或结构添加到 MyLibEnum.cs 并重复步骤 12
14) 通过重命名选择器来修复选择器的任何多重声明 - 这可能会在以后引起问题(参见注释 1)
15)修复任何丢失的引用,例如 NSMutableArray 在单触摸中似乎不存在,所以我将它们更改为 NSArray(我认为这些在单触摸下是可变的???)
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 后缀
为创建库时使用的每个框架添加一个框架 - 上面并不是详尽的列表
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) 测试一下!
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |