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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,039评论 3 119
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 在色达的五明佛学院,就只有两个字,那就是修行。红房子,红衣服,在我看来很少有人是为了旅游而来到这里,大多都是...
    茜茜呀23阅读 2,593评论 0 0
  • 2015.12.10,上海真是个爱下雨的城市。7:15出门,360秒后公交车从我眼前开过,就差300米,我很难...
    饥人谷_Oneleven阅读 2,600评论 0 0