Xamarin.ios引用第三方SDK
引言
诚然,Xamarin是个优秀的跨平台解决方案,但毕竟还是不能将Native中所有的方法都直接实现。诸如各种第三方库,也都只有java/oc原生版本的SDK,无法直接拿过来直接使用。但,不能直接拿过来用,就没办法扩展APP功能,不能使用已经造好的轮子吗?答案是否定的!Xamarin中可以通过引用java中的Jar包,oc中的A档,实现这一切!
什么是a档?
a档就是iOS中的class library,我是这么理解为啥叫a档的,因为a档生成的文件扩展名是.a。举个栗子:
如何建立a档
1、在XCode中建立一个新的project,选择iOS底下的framework&library中的Cocoa Touch Static librar,输入Product Name,选择好存储地址,项目就建立好了。
2、项目全貌
3、点选左边侧边栏中,默认生成的TestClassLib.h文件,在该文件中增加个公开的静态方法。给之后引用该a档的项目调用方法。
4、接着打开TestClassLib.m,给add方法写上具体实现方法
5、将项目设定中的CodeSigning设定为Developer。
6、Build For Running
7、运行成功后,展开Products文件夹,便能看到我们所需要的a档了。show in finder。在Debug-iphonesimulator中的a档,是给iPhone设备模拟器用了的;Debug-iphoneos中的a档,则是给真机使用。如果打开文件夹后发现,只有一种类型的(如下1图),我们需要重新Build For Running,在重新编译前,在xcode中调整编译目标即可(如下2图),在打开finder,即可看到两种类型(如下3图)
在Xamarin工程中引用a档
1、在一个现有的Xamarin工程中,添加新的工程,选择类型为Bindings Library的工程,写好工程名,创建成功。
2、在建好的Bindings Library中,添加现有项目,选择我们刚刚创建的a档,并确认该a档文件的BuildAction为ObjcBindingNativeLibrary。
3、下载Objective Sharpie——转换c#代码的工具 链接:https://download.xamarin.com/objective-sharpie/ObjectiveSharpie.pkg
1.打开terminal
1.确认Xcode的SDK版本,输入 sharpie xcode -sdks
2.切换到你希望生成文件所在的位置
3.输入转换指令 sharpie bind -output
4、sharpie bind -output TestClassLib -namespace TestClassLib -sdk iphoneos9.3 ./TestClassLib/*.h
4、将利用Objective Sharpie生成的ApiDefinitions.cs替换Bindings Library中的ApiDefinition.cs
注意,工具生成的是ApiDefinitions,而原项目中的是ApiDefinition,多了个s哦,一定不能改着个文件的文件名,否则会报错。
另,ApiDefinition中的错误不用去理会,build也不会报错。
5、好,至此我们的操作差不多结束了,接下来,编写代码,调用a档中的方法。
结束语
OK,这篇文章算是说完了,虽然没有拿市面上任何一个SDK作例子,但我想,授人以鱼不如授人以渔,知道怎么制作a档,引用a档,大部分SDK,应该都可以搞定了。
参考资料:https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/walkthrough/
https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/
转载于:https://www.cnblogs.com/qinhe/p/5506414.html
Xamarin.ios引用第三方SDK相关推荐
- iOS架构-静态库.framework(引用第三方SDK、开源库、资源包)(9)
前面介绍了 静态库.a依赖第三方静态库.a的制作 静态库.framework之依赖第三方库(Cocoapods进行管理) 今天课题: 静态库.framework(引用第三方SDK.framework. ...
- Dcloud开发引用第三方sdk的app小程序扫盲---使用第三方sdk并且打包
经过前几次的文章,app基本成型.运行在手机里应该就能正常使用了. 那么如何引用第三方sdk呢? 难道在hbuilder里面弄个文件夹放jar包么? 显然不是.dcloud本省有集成了部分sdk 但是 ...
- Mac安装ruby环境及Xcode安装cocoapods整体流程--ios引用第三方库的环境准备
发文原由:ios刚用来开发不久,需要在开发时引用第三方库,百度查找了资料,需要先安装ruby环境,再进行cocoapods安装 一.mac安装ruby环境 (引用博客–https://www.cnbl ...
- 安卓的第三方sdk是html,第三方SDK目录
QQ登录/分享 使用目的:帮助用户使用QQ账号登录.使用QQ分享功能 共享的个人信息类型:设备型号.操作系统.IMEI.IP地址.QQ软件版本号.接入网络的方式.类型和状态.网络质量数据.广告标识符. ...
- iOS静态库SDK制作(包含第三方静态库)
本文来自简书,原文地址:http://www.jianshu.com/p/155a3cfb765e 前言 以下所涉及的框架和库只针对iOS而言,不确保在其他平台也适用. 最近由于公司业务需要,要求封装 ...
- iOS静态库SDK制作(包含支付宝支付、微信支付或其它第三方静态库)
前言 以下所涉及的框架和库只针对iOS而言,不确保在其他平台也适用. 最近由于公司业务需要,要求封装一个支付SDK,需要用到微信支付和支付宝,之前做过的Framework没有依赖其他第三方的库所以比较 ...
- IOS 编程中引用第三方的方类库的方法及常见问题
方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件复制到项目中.直接把全部.h和.m文件拖到XCode项目中就可以. 注意: 1. 假设第三方类库引用了一些系统自带类库.那么在 ...
- Xamarin.iOS调试提示需要iOS SDK
Xamarin.iOS调试提示需要iOS SDK 错误信息:The version of Xamarin.iOS requires th iOS 9.3 SDK (shipped with Xcode ...
- Xamarin SQLite教程Xamarin.iOS项目添加引用
Xamarin SQLite教程Xamarin.iOS项目添加引用 使用直接方式访问SQLite数据库,需要将System.Data和Mono.Data.SQlite库导入到创建的项目中.下面将分别讲 ...
- 【iOS】APP IM聊天框架的设计(基于第三方SDK)
[iOS]APP IM聊天框架的设计(基于第三方SDK) 前言 在开发社交聊天类型的APP的时候,IM是必不可少的功能,而且很多公司的IM服务都是接的第三方的,很少用自研的,国内的IM厂商也都很成熟, ...
最新文章
- 给iOS开发者的React Native入门使用教程
- 《模拟信息转换器(AIC)的实现技术研究》读书笔记
- Redis的安装及使用
- css样式教程---css控制背景图片-背景相关的css
- 五十七、Servlet工程和Tomcat
- wait_timeout【Mysql】解决方案
- 关于数据持久化的一个简介
- matlab不用循环,三维矩阵按横切页(垂直于纸面且)向右展开为2维,即(i,j,:)展开。将二维矩阵每行顺序不变依次向左复制,如:(a,b,c)复制为(a,a,a,b,b,b,c,c,c)
- python中类方法、类实例方法、静态方法的使用与区别
- 矩形嵌套-记忆化搜索(dp动态规划)
- DB2数据库v11.5下载地址
- rose软件下载(Rational Rose 2003 Enterprise Edition)
- diabetes影响因子2017_【重磅】2017 年内分泌领域 SCI 期刊影响因子出炉
- 支付宝内部功能调用APP的said说明(转载)
- 外篇 评相对论
- Excel根据手机号区分运营商
- 有真正的骨传导耳机吗、骨传导耳机到底好不好用
- 专科毕业,从0到1400star,从阮一峰周刊到尤雨溪推荐的开源项目总结
- STM32 - ADC采集电压 中断处理
- dbus 嵌入式linux,MeeGo操作系统DBus调试工具