uniapp ios原生插件开发 (framework,cocopods)

一、了解UniApp 插件的开发方式

  • Xcode Framework 、 Static Library
  • 基于Cocoapods开发 pod lib

已知UniApp的插件开发方式有两种, 第一种 Xcode Framework的方式,这种方式是官方指定的方式。 这种方式的优点就是简单直接, 但也有不足,比如当插件需要引入一些三方库时,操作起来就不是那么方便。 而使用Cocoapods则可以很方便的引入三方库。 接下来,本文探索使用Cocoapods的方式来进行UniApp插件开发。

探索之前可以先了解一下官方插件开发的流程及步骤:
iOS插件开发教程

二、准备

1.安装Cocoapods

如果是首次使用Cocoapods ,则需要先安装cocoapods。具体的安装步骤非本文重点,可参考如下文章:
安装Cocoapods的步骤

2. 下载UniApp iOS SDK

下载地址

三、将HBuilder-UniPluginDemo转成Cocoapods

找到UniApp iOS SDK下载的目录,看一下官方提供的目录结构
在这里插入图片描述

podfile的创建及配置

打开“命令行”工具,cdHBuilder-uniPlugin.xcodeprj 工程所在目录下, 并执行

pod init

来创建Podfile 文件模板
在这里插入图片描述
此时目录下会多出一个 ‘Podfile’ 的文件
在这里插入图片描述
打开Podfile 文件, 配置相关设置如下 :

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

#忽略pod所有库警告
inhibit_all_warnings!

workspace 'uniPlugins'

#关闭所有pod库的BITCODE
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end


target 'HBuilder' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
 
end

配置忽略Pod所有库的警告

inhibit_all_warnings!

配置workspace名称

workspace 'uniPlugins'

关闭所有pod库的BITCODE

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

使用pod lib 创建插件工程

在HBuilder-uniPluginDemo目录下创建一个自定义插件目录 ‘custom-plugins’ 用来存放自定义的插件工程,目录结构如下:
在这里插入图片描述
使用命令行工具, cdcustom-plugins目录下, 并执行

pod lib create rz-testplugin

在这里插入图片描述
按回车,执行命令。 会从github上加载创建pod工程的模板。 模板下载结束后,会出现如下引导:
在这里插入图片描述

按上述引导完成配置,在完成创建后会自动打开pod 工程, 目前用不到此工程,接着关闭即可

回到目录 HBuilder-uniPluginDemo下,找到Podfile 文件,并打开
将本地新创建的pod工程配置进去

target 'HBuilder' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
  
  #重要: 导入自定义组件库
  pod 'rz-testplugin', :path =>'./custom-plugins/rz-testplugin'
end

完整的Podfile文件如下:

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'

#忽略pod所有库警告
inhibit_all_warnings!

workspace 'uniPlugins'

#关闭所有pod库的BITCODE
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

target 'HBuilder' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
  
  #重要: 导入自定义组件库
  pod 'rz-testplugin', :path =>'./custom-plugins/rz-testplugin'
end

Podfile配置完成后, 使用命令行工具在Podfile所在目录下,执行命令

pod install 

更多内容详情: https://zhanglei.blog.csdn.net/article/details/123221947

原文链接:https://www.cnblogs.com/reyzhang/p/17094730.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:uniapp ios原生插件开发 (framework,cocopods) - Python技术站

(1)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • Flash开发iOS应用全攻略(五)——如何上传应用到iTunes Connect

      上传IPA到iTunes Connect 上一篇我介绍了如何在iTunes Connect里准备应用。最后在这篇文章里我会简单介绍下如何来上传IPA到iTunes Connect。 登陆iTunes Connect,进入Manage Your Applications页面后,点击你创建的应用图标,进入应用的主页。 如图,在应用的主页中可以看到应用的基本信…

    IOS 2023年4月18日
    00
  • uniapp与ios原生混合开发教程 – 开篇

    说明 有读者反馈: 学习uniapp ios 插件开发不知道从哪些文章看起,没有一个清晰的学习路线 本文就做一个解答。 首先本系列的文章是作者精心排过序的,如果想要完整的学习uniapp ios原生插件开发技术的话,建议是按文章顺序浏览。 当然您如果有相关的开发经验,且只对某一技术实现感兴趣的话,也可以有选择性的阅读。 同时如果您在文中发现有不足之处,也可以…

    IOS 2023年4月17日
    00
  • 公有云、私有云、混合云都是什么?有没有通俗一点的答案?企业选哪一种云比较好?

        很多同学都觉得公有云、私有云、混合云这些概念的认识比较混乱,开始我面对网上很多专业的解释不明所以,直到我遇到这个说法:   大白话解释一下 你娶了一个老婆,这叫传统IT架构。 你觉得一个老婆不够,这叫传统企业CIO的困境。 你又娶了一个老婆,这叫双活数据中心。 你在外地又娶了一个小老婆,这叫两地三中心容灾。 你娶了很多风格气质各异的小老婆,以至于形成…

    IOS 2023年4月17日
    00
  • 终端读取iOS项目所有设置参数(版本号、应用名等)

    在某些场景下(比如自动化打包等),我们需要从终端来读取到iOS项目的数据,首先先上代码 xcodebuild -showBuildSettings -target 项目target 但有时候我们需要将其转为字符串的话,需要在两边加上这个符号` OUTPUT=’xcodebuild -showBuildSettings -target 项目target’ #输…

    IOS 2023年4月17日
    00
  • iOS从UI内存地址到读取成员变量(oc/swift)

    开发调试时,我们发现bug时常首先是从UI显示发现异常,下一步才会去定位UI相关连的数据的。XCode有给我们提供一系列debug工具,但是很多人可能还没有形成一套稳定的调试流程,因此本文尝试解决这个问题,顺便提出一个暴论:UI显示异常问题只需要两个步骤就能完成定位工作的80%: 定位异常 UI 组件的内存地址。 利用内存地址读取其成员变量。 定位异常UI组…

    IOS 2023年4月19日
    00
  • [Android开发学iOS系列] TableView展现一个list

    TableView 基础 本文讲讲TableView的基本使用.顺便介绍一下delegation. TableView用来做什么 TableView用来展示一个很长的list.和Android中的RecyclerView不同, iOS中的TableView只能是竖直方向的list. 如何写一个最简单的TableView 一个最简单的TableViewCont…

    IOS 2023年4月17日
    00
  • [Android开发学iOS系列] 和一个真正iOS开发的区别?

    和一个真正iOS开发的区别? 学习iOS的这段时间, 我一直在思考和感受着自己和一个真正做了几年iOS的dev之间的区别. 同时也在反向思考, 我自己和一个新学Android的人, 又有什么区别. 也许在技术转型中, 这些学习的思考和阵痛都是有共性和不可避免的.在此分享一下感受, 如果有人也有技术转型, 可以看到有些心路历程是不可避免的, 不必焦虑. 当然我…

    IOS 2023年4月17日
    00
  • csm移动端h5用什么样的视觉方案?

    项目需要求在移动端H5需要展示一些数据统计的图表,虽然第一时间想到的是echarts,常用还有Highcharts,D3等,antv家族的图表UI好看一些,再加上F2是移动端可视化方案于是就选择F2,打开官网果然眼前一亮F2提供的正能满足需求,F2官网地址:https://antv.alipay.com/zh-cn/f2/3.x/demo/index.htm…

    IOS 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部