适用于IPS和Android的zendesk Xamarin绑定

时间:2018-07-27 18:25:08

标签: xamarin zendesk

我遍历了有关为iOS的Zendesk SDK进行Xamarin绑定的文档。该文档将指导我们完成创建.a文件并继续进行绑定的方案。 Zendesk库以框架的形式提供,尽管Xamarin文档说框架包含.a文件,但我仍然在Zendesk框架中找不到.a文件。因此,我在这里有点受阻。这里有指针吗?

链接到Zendesk库:https://github.com/zendesk/zendesk_sdk_ios 链接到Xamarin文档:https://docs.microsoft.com/en-us/xamarin/ios/platform/binding-objective-c/walkthrough?tabs=vsmac

我执行了客观的沙皮狗命令。尽管它说绑定已经完成,但是它没有生成apidefinition.cs和structsAndEnums.cs文件。以下是我在终端中看到的输出。

C02VX2ZCHTD6:〜naveen.ramachandrapp $ sharpie bind -output = Zen -namespace = zen -sdk iphoneos11.3 -framework /Users/naveen.ramachandrapp/Downloads/zendesk_sdk_ios-masterObjectiveC/ZendeskSDK/4.1/ZendeskProviderSDK.framework 正在解析1个头文件...

绑定...   [写] ApiDefinitions.cs   [write] StructsAndEnums.cs

绑定分析:   自动绑定已完成,但是有一些   已用[验证]标记的API   属性。虽然整个绑定应该是   经过审核以获取最佳API设计规范,更多信息   具有以下验证属性的API紧密相关   提示:

MethodToProperty(30个实例):     Objective-C方法被绑定为C#属性     由于约定,例如不带参数和     返回值(非无效返回)。常用方法     像这些应该绑定为属性     展示更好的API,但有时会出现假阳性     可能发生,并且绑定实际上应该是     方法。

StronglyTypedNSArray(25个实例):     本机NSArray *被绑定为NSObject []。它     可能可以更强烈地键入数组     在基于期望的约束中     API文档(例如标题中的注释     文件)或通过检查数组内容     测试。例如,仅包含一个NSArray *     NSNumber *实例可以绑定为NSNumber []     而不是NSObject []。

ConstantsInterfaceAssociation(2个实例):     没有万无一失的方法来确定     Objective-C接口一个外部变量     声明可能是关联的。这些实例     绑定为[Field]属性中的部分     接口到附近的具体接口     产生更直观的API,可能会消除     完全是“常量”界面。

PlatformInvoke(3个实例):     通常,P / Invoke绑定不正确或     作为Objective-C绑定完成(至少     目前)。您可能需要修复库     名称(默认为“ __Internal”)并返回/     手动参数类型以符合C调用     目标平台的约定。你可能会发现     您甚至都不希望在您的计算机中公开C API     绑定,但是如果这样做,您可能还想要     将定义重新定位为更合适的     类并公开更强大的类型安全包装器。对于     P /调用指南,请参见http://www.mono-project.com/     docs / advanced / pinvoke/。

验证了“验证”属性后,   应该从绑定源代码中删除它。的   验证属性的存在是有意引起的   构建失败。

有关“验证”属性的更多信息   以上提示,请咨询Objective Sharpie   通过运行“夏普文档”或访问文档   以下网址:

http://xmn.io/sharpie-docs

1 个答案:

答案 0 :(得分:0)

您误读了文档。它明确列出了3种不同方案:

  

通常在iOS生态系统中,您可以找到3种口味的库:

     

作为带有.a扩展名的预编译静态库文件以及   其标题(.h文件)。例如,Google的Google Analytics(分析)库

     

作为预编译的框架。这只是一个包含静态内容的文件夹   库,标题和有时带有.framework的其他资源   延期。例如,Google的AdMob库。

     

仅作为源代码文件。例如,仅包含.m和.h目标C的库   文件。

因此,您可以使用.a文件 创建预编译的.framework(根据您的情况) 使用.h.m文件。无需在.a文件中查找.framework文件。

您可以使用客观的Sharpie帮助您为绑定创建ApiDefinition.cs文件,如下所示:

sharpie bind -framework ZendeskCoreSDK.framework -sdk iphoneos11.1

这里有 Sharpie的文档的 loading 个:https://docs.microsoft.com/en-us/xamarin/cross-platform/macios/binding/objective-sharpie/