Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 如何使用MonoTouch共享套件?_Xamarin.ios_Sharekit - Fatal编程技术网

Xamarin.ios 如何使用MonoTouch共享套件?

Xamarin.ios 如何使用MonoTouch共享套件?,xamarin.ios,sharekit,Xamarin.ios,Sharekit,您如何将ShareKit与MonoTouch结合使用 似乎有,但我不能让他们工作。我目前在MonoDevelop中使用MonoTouch开发了一个iPhone应用程序,但我不知道如何将ShareKit实际应用到我的应用程序中 我已经下载了MonoTouch绑定项目,但是当我在ShareKit目录中创建时,它似乎需要ShareKit本身。然后我下载了ShareKit,但我不确定是否应该遵循将ShareKit集成到XCode项目中的安装说明,甚至不确定是否应该构建ShareKit。我尝试过用Shar

您如何将ShareKit与MonoTouch结合使用

似乎有,但我不能让他们工作。我目前在MonoDevelop中使用MonoTouch开发了一个iPhone应用程序,但我不知道如何将ShareKit实际应用到我的应用程序中

我已经下载了MonoTouch绑定项目,但是当我在ShareKit目录中创建时,它似乎需要ShareKit本身。然后我下载了ShareKit,但我不确定是否应该遵循将ShareKit集成到XCode项目中的安装说明,甚至不确定是否应该构建ShareKit。我尝试过用ShareKit“构建”一个空的iPhone应用程序项目,但部分说明对于最新的XCode来说不是最新的,我似乎在这个过程中遇到了麻烦。我正试图让它工作,但到目前为止,我对XCode的经验仅限于MonoTouch开发所需的很少

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

是否有人可以验证ShareKit是否可以与MonoTouch一起使用,并指导我完成使其工作所需的步骤?


提前谢谢

大多数情况下,在MonoTouch中使用绑定时,您必须下载实际库的绑定(或SDK)。例如,对于TestFlight绑定,您需要下载SDK并将其放置在与makefile相同的目录中。我个人没有使用ShareKit进行过ExpierEmployment,但我认为它也会以同样的方式工作(事实上,我知道MT bindings GitHub项目中的大多数绑定(如果不是全部的话)都是以这种方式工作的)。您根本不应该处理Xcode。只需下载SDK,将其放在正确的目录中,然后运行makefile。这将为您提供一个DLL,供MonoTouch使用时参考


使用ShareKit绑定的限制之一是,据我所知,在尝试使用链接器之前,UI调整必须在Objective-C中完成。如果您对开箱即用的UI很满意,那么我会选择它。除此之外,还有很多其他的开源库可以用来创建一个简单的共享对话框(现在Twitter内置到iOS中,这就更容易了)

您是首先从getsharekit.com下载的还是正在使用ShareKit 2.0?如果您使用的是getsharekit中的DL,那么我强烈建议您首先升级。其次,这里有一些让ShareKit与MonoTouch配合使用的基本安装说明:

步骤

1) 下载代码

2) 在Xcode中打开,如果是应用程序,则创建iOS库类型的新Xcode项目

3) 编译库并记下所需的框架-这些将在以后使用monotouch链接时帮助您

3) 编译lib的i386 Sim版本并重命名为libXYZLib_Sim.a-将其复制到项目中的/lib,并将其构建操作设置为无。您可以在/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。注意,您实际上只需要对具有入口点(例如API直接调用的顶级类)的.h文件运行解析器。子类、util、helper方法不需要解析

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

8) 将任何参考从MonoMac更改为MonoTouch

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

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

12) 运行以下btouch命令行-这将从MyLib.cs中定义的接口创建wrapper.dll @@ /开发者/MonoTouch/usr/bin/b触摸-v MyLib.cs-s MyLibEnum.cs @@

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

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

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

16) 返回到12)并重复,直到生成dll

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

18) 将以下内容添加到iPhone Build>模拟器调试/发布版本的附加mtouch选项中: @@ -gcc_标志“-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” @@

“通知”

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

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

为创建库时使用的每个框架添加一个框架-以上不是一个示例列表

19) 将以下内容添加到iPhone Build>iPhone调试/发布版本的其他mtouch选项中: @@ -gcc_标志“-L${ProjectDir}/Lib-lMyLib-framework QuartzCore-framework CoreGraphics-framework MessageUI-framework-Security-framework UIKit-framework CFNetwork-force_load${ProjectDir}/Lib/libMyLib.a-ObjC” @@


20) 试试看

我不在乎这个答案是否正确,这是ef的荣誉