Flutter插件双端编写pub发布

前面,我们对ios项目基本已经有了大概的认识,现在来开发一个flutter插件,来调用android和ios的原生api。
flutter插件与原生通讯主要是通过channel,底层是通过二进制在传输数据。
类似的跨平台Hbrid和RN等js语言的与原生通讯的JSBridge。

我们现在创建一个插件,已获取手机电量为例子。

create.png
create2.png

我们来看一下插件工程的项目结构

struct.png

接着先看下android端的实现

android.png

ios端需要先加载pod

ios1.png

ios2.png
ios3.png
ios4.png

在这个过程中发现了一个问题,就是swift调用oc的方法时,方法名会部分被省略掉。

ios5.png

最后慢慢了解到,oc的方法名其实很多都是后半部分都是带有第一个参数名形式的,


0.png

就像这个注册插件的方法registerWithRegistrar with后面往往接的是第一个参数,swift可能
是为了增加方法可读性,应该是有根据某种规律来检测判断是否省略。

上面flutter插件的两端就实现了,我们来run一下看看结果

result.png

好的那么插件写好了,当然是可以传到GitHub共享出来。但是就像android可以发布aar一样,flutter的
插件都可以发布在 pub上面。

我们先执行下命令,检测是否符合发布规则,
flutter packages pub publish --dry-run

提示没有填写homepage或repositor(简单理解为就是git源码),并且体积过大。
上传到github,然后clean下项目,删掉build项目。 继续执行检测命令

author.png

这个我么把yaml里面作者这一栏删掉即可
执行最终发布命令
flutter packages pub publish

sudo flutter packages pub publish -v
flutter packages pub publish --server=https://pub.dartlang.org

fail.png

失败了 访问不到ping accounts.google
其实我是FQ了的,网页是可以打开,于是我ping了下


ping.png

可以看到 命令行是访问不到google的。需要设置命令行代理。

@harrychen ➜ flutter_plugin_battery git:(master) ✗ export http_proxy=http://127.0.0.1:9999
@harrychen ➜ flutter_plugin_battery git:(master) ✗ export https_proxy=http://127.0.0.1:9999
@harrychen ➜ flutter_plugin_battery git:(master) ✗ set https_proxy=https://127.0.0.1:9999
@harrychen ➜ flutter_plugin_battery git:(master) ✗ set http_proxy=http://127.0.0.1:9999

特别注意,每个代理的端口不一样,不要直接复制,一定要看清自己的代理端口,这个9999
是我自己代理端口!!!!

bashprofile.png

还需要注释国内镜像。上传完了自己再放开

success.png

终于成功了,可以看到pub上已经可以搜到了


pub.png

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

推荐阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,624评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,343评论 1 3
  • 没事就多看看书,因为腹有诗书气自华,读书万卷始通神。没事就多出去旅游,别因为没钱而找借口,因为只要你省吃俭用,来...
    向阳之心阅读 4,851评论 3 11
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,449评论 2 7