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日

相关文章

  • [Android开发学iOS系列] 快速上手UIKit

    快速上手iOS UIKit UIKit是苹果官方的framework, 其中包含了各种UI组件, window和view, 事件处理, 交互, 动画, 资源管理等基础设施支持. 按照前面的介绍, 用UIKit写UI可以用storyboard(Interface Builder)和代码两种方式. 大体的思路都是添加组件后, 设置属性, 设置尺寸位置约束, 处理…

    IOS 2023年4月18日
    00
  • iOS上拉边界下拉白色空白问题解决概述

    表现 手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。 产生原因 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。 解决方案 1. 监听事件禁止滑动 移动端触摸事件有三个,分别定义为 touchstart :手指…

    IOS 2023年4月17日
    00
  • iOS16新特性 | 灵动岛适配开发与到家业务场景结合的探索实践

    作者:京东零售 姜海 灵动岛是苹果在iPhone 14 Pro和iPhone 14 Pro Max上首次提出的全新UI交互形式,创新性的让虚拟软件和硬件的交互变得更为流畅。当有来电、短信等通知时,灵动岛会变化形态,以便让用户能够更直观地接收到这些信息。 而在用户使用一些应用App,比如音乐,并将其切换到后台时,灵动岛也能以另一种形态来显示这些软件,还可以通过…

    IOS 2023年4月17日
    00
  • [Android开发学iOS系列] ViewController

    iOS ViewController 写UIKit的代码, ViewController是离不开的.本文试图讲讲它的基本知识, 不是很深入且有点杂乱, 供初级选手和跨技术栈同学参考. What is a View Controller iOS中的View Controller非常像Android中的Activity. 它负责用户界面的展示, 有一些生命周期的…

    IOS 2023年4月18日
    00
  • IOS证书制作教程

    Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架! 点击苹果证书 按钮     点击新增 ​ 输入证书密码,名称 这个密码不是账号密码,而是一个保护证书的密码,是p12文件的…

    IOS 2023年4月18日
    00
  • Xcode 工程分析

    1. 背景 Xcode作为日常开发iOS程序的IDE,支持C、C++、Objective-C、Swift、Ruby等语言进行编写。日常开发入口就是Xcode workspace或者Xcode project。 workspace是一个Xcode文档,它将项目和其他文件、project分组。一个workspace可以包含任意数量的Xcode project,以…

    IOS 2023年4月17日
    00
  • uniapp ios app离线打包

    前言 进行UniApp 离线打包之前, 建议先认真阅读一遍官方的开发文档。真正阅读过了,可以少踩很多坑。本文介绍离线打包前的准备及iOS工程的一些配置和需要注意的事项。 官方文档:App离线打包iOS插件开发教程iOS原生工程配置 首先,需要去UniApp官网创建一个开发者账号注册开发者登录开发者中心 账号创建成功后就可以去开发者中心创建应用了。 App的创…

    IOS 2023年4月18日
    00
  • iOS 悬浮球效果实现,悬浮按钮,拖拽,贴边,隐藏,显示,旋转屏幕适配

    1.悬浮球与设备刘海的安全距离无论是横屏还是竖屏,悬浮球距离有刘海的一边会留出安全距离设备方向的上下两边,也有安全距离 2.贴边吸附方向和距离悬浮球只能贴设备方向的左右两边,需要贴上下两边自行调整距离边缘的数值自行调整 3.切换横竖屏,悬浮球自适应悬浮球位置切换横竖屏后,等比例转换的。 4.隐藏和显示拖到屏幕中间ImageView范围内可以隐藏悬浮窗,在范围…

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