Xamrin.iOS 绑定Xinge

现在iOS的推送其实并不复杂,但是为了统一安卓与苹果的推送,我们通常会使用信鸽来做推送。

所以我们依然面临需要做绑定的问题。

对于Framework类型的文件的绑定会比较简单,但是Object C的库会经常出现一些莫名其妙的问题。

1、下载信鸽的iOS版本的SDK,并解压

2、将libXG-SDK.a文件拷贝到绑定库

3、默认生成的libXG-SDK.linkwith.cs文件是有问题的:

using ObjCRuntime;

[assembly: LinkWith (libXG-SDK.a, SmartLink = true, ForceLoad = true)]

为了获取这个库支持的架构,我们执行一下

xcrun -sdk iphoneos lipo -info libXG-SDK.a

得到的架构结果是

 armv7 arm64 i386 x86_64 

于是我们改一下:

[assembly: LinkWith ("libXG-SDK.a", LinkTarget.ArmV7 | LinkTarget.Arm64 | LinkTarget.Simulator | LinkTarget.Simulator64, SmartLink = true, ForceLoad = true)]

4、下载https://dl.xamarin.com/objective-sharpie/ObjectiveSharpie.pkg

最好是这个https://bosstoragemirror.blob.core.windows.net/objective-sharpie/builds/4cde014216e8887375f9793d3a2607529833443b/440/76194/ObjectiveSharpie-3.4.23.pkg

并安装,并执行

sharpie xcode -sdks

看看支持的sdk

sdk: appletvos11.4 arch: arm64   

sdk: iphoneos11.4  arch: arm64  armv7   

sdk: macosx10.13 arch: x86_64 i386    

sdk: watchos4.3  arch: armv7k  

5、执行

sharpie bind --output=Xinge -scope . --namespace=XinGe.Binding.iOS --sdk=iphoneos11.4 XGPush.h

6、拷贝ApiDefinitions.cs到ApiDefinition.cs,StructsAndEnums.cs拷贝到Structs.cs

7、将枚举类型继承自nuint改成ulong

8、将XGNotificationCategory的基类改成INativeObject

你可能感兴趣的:(Xamrin.iOS 绑定Xinge)