基于已有工程且使用 CocoaPods 接入

本文介绍如何基于 CocoaPods 原生的插件扩展机制生成各项配置,进而快速接入 mPaaS。

前置条件

  • 已安装 CocoaPods 1.0.0 及以上版本,并确保要接入的工程是 CocoaPods 工程。

  • 已安装 Cocoapods-mPaaS 插件。如您尚未安装该插件,可使用以下命令进行安装。

    sh <(curl -s http://mpaas-ios.oss-cn-hangzhou.aliyuncs.com/cocoapods/installmPaaSCocoaPodsPlugin.sh)
  • 已在控制台创建应用,并下载了 .config 配置文件。更多信息,参见 在控制台创建应用

接入步骤

  1. .config 配置文件拷贝到工程的根目录下(与 Podfile 同级)。

    说明

    请确认下载的 .config 配置文件的文件名是以 iOS 结尾。如果是以 ios 结尾,则需要手动改为 iOS

  2. 在命令行执行 pod mpaas init 命令,自动处理 Podfile 文件,并添加 pluginsource 以及 mPaaS_baseline 配置。自动配置的代码如下:

     plugin "cocoapods-mPaaS"
     source 'https://gitee.com/mpaas/podspecs.git'
     mPaaS_baseline 'x.x.x'
  3. 配置 Podfile 文件。

    1. 指定 mPaaS 基线,修改 mPaaS_baseline。例如:mPaaS_baseline '10.2.3',其中 10.2.3 为基线版本号,不同版本之间的区别,参见 发布说明

    2. 添加 mPaaS 组件依赖,使用 mPaaS_pod。例如:mPaaS_pod "mPaaS_Nebula",其中 mPaaS_Nebula 为组件名称,更多组件名称可参考下方的组件列表。

      组件配置

      适用基线

      说明

      mPaaS_pod "mPaaS_LocalLog"

      10.1.32+

      本地日志

      mPaaS_pod "mPaaS_Log"

      10.1.32+

      移动分析:行为日志、自动化日志、Crash 日志、性能日志分析。

      mPaaS_pod "mPaaS_Diagnosis"

      10.1.32+

      诊断:客户端诊断分析。

      mPaaS_pod "mPaaS_RPC"

      10.1.32+

      移动网关:提供下载、上传、RPC 调用等功能。

      mPaaS_pod "mPaaS_Sync"

      10.1.32+

      移动同步:长连接服务。

      mPaaS_pod "mPaaS_Push"

      10.1.32+

      消息推送

      mPaaS_pod "mPaaS_Config"

      10.1.32+

      开关配置:根据 key 从服务端拉取对应的 value,可动态控制客户端逻辑。

      mPaaS_pod "mPaaS_Upgrade"

      10.1.32+

      升级发布:提供便捷的主动检测升级的服务,可用于日常灰度发布、线上新版本更新提示。

      mPaaS_pod "mPaaS_Share"

      10.1.32+

      分享:支持分享文本、图片到微博、钉钉、支付宝好友等知名渠道。

      mPaaS_pod "mPaaS_Nebula"

      10.1.32+

      H5 容器与离线包:Nebula 容器,支持前端与 native 交互。

      mPaaS_pod "mPaaS_UTDID"

      10.1.32+

      设备标识:简单快捷地获取设备 ID,以利于应用程序安全有效的找到特定设备。

      mPaaS_pod "mPaaS_DataCenter"

      10.1.32+

      统一存储:提供安全、快速、可加密、支持多种数据类型的 KV 存储;数据库 DAO 支持等多种持久化方案。

      mPaaS_pod "mPaaS_ScanCode"

      10.1.32+

      扫码:快速识别二维码、条形码。

      mPaaS_pod "mPaaS_LBS"

      10.1.32+

      移动定位:移动客户端定位解决方案。

      mPaaS_pod "mPaaS_CommonUI"

      10.1.32+

      通用 UI:通用 UI 组件库,提供各种 UI 组件。

      mPaaS_pod "mPaaS_BadgeService"

      10.1.32+

      红点:客户端“红点”提醒组件,支持红点、数字、New 等提醒样式,自动管理树形结构的红点关系。

      mPaaS_pod "mPaaS_AlipaySDK"

      10.1.32+

      支付宝快捷支付:支付宝快捷收银台。

      mPaaS_pod "mPaaS_Multimedia"

      10.1.32+

      多媒体组件:多媒体组件,支持图片下载、上传、缓存等功能。

      mPaaS_pod "mPaaS_MobileFramework"

      10.1.32+

      移动框架:客户端应用框架,子 app 管理,多 tab 类应用管理,第三方跳转管理,viewController 跳转,异常处理与上报。

      mPaaS_pod "mPaaS_OpenSSL"

      10.1.32+

      OpenSSL

      mPaaS_pod "mPaaS_TinyApp"

      10.1.32+

      小程序:小程序集成发布能力。

      mPaaS_pod "MPBaseTest"

      10.1.32+

      基础测试:基础的测试模块。

      mPaaS_pod "mPaaS_CDP"

      10.1.32+

      智能投放:智能配置各类营销广告和展示形式,动态投放到客户端。

      mPaaS_pod "mPaaS_AliAccount"

      10.1.60+

      小程序账户通:小程序账户通发布。

      mPaaS_pod "mPaaS_ARTVC"

      10.1.68

      音视频通话:音频、视频通话组件。支持双人、多人视频通话和在线会议。

      mPaaS_pod "mPaaS_BlueShield"

      10.2.3+

      蓝盾加密组件:在 config 文件中添加 absBase64Code 参数,可自动生成蓝盾图片。

      mPaaS_pod "mPaaS_MDC"

      10.2.3+

      移动调度组件:细粒度域名策略调度。

      完整的 Podfile 示例如下:

      image.png
  4. 执行 pod mpaas update x.x.x,其中 x.x.x 为配置的基线号,例如 10.2.3

  5. 执行 pod install 即可完成接入。您还可以追加 --verbose 查看详细日志。

    说明

    如果在执行 pod install 时提示不能找到从 GitHub 官网引入的库,请在 podfile 的顶部指定 GitHub 官方 Source 的源地址:https://github.com/CocoaPods/Specs.git

  6. 如果您在接入后遇到了三方库冲突,可将引起冲突的三方库移除。具体操作,请参见 iOS 冲突处理

升级指南

当 mPaaS 有新版本发布时,您可选择升级组件,或整体升级基线(即 SDK 版本)。

升级组件

  1. 在命令行执行 pod mpaas update x.x.x,其中 x.x.x 为当前使用的基线版本号,例如 10.2.3

    Screenshot 2023-06-19 at 7.png
  2. 执行 pod install 即可完成该基线下对应的组件的升级。

升级基线

  1. podfile 中,修改 mPaaS_baseline 对应的基线号(支持标准或者定制基线),例如从 10.1.68 修改为 10.2.3,即可完成整体基线的升级。

    image.png
  2. 执行 pod install 即可完成基线升级。

mPaaS iOS podspec 地址切换

背景

mPaaS 原有使用的 podspec 保存仓库 code.aliyun.com 已停止服务(于 2023 年 06 月 01 日停止更新,于 2023 年 06 月 30 日停止服务)。

继续使用原有 repo 影响如下:

  1. 使用 mPaaS pod plugin 进行 SDK 更新时,无法拉取到各基线的最新版本;

  2. 2023.06.30 之后,使用 mPaaS pod plugin 无法拉取到任何基线版本。

当前 mPaaS 已在 gitee.com 上支持了全部 mPaaS 版本。

解决方案

升级 mPaaS pod plugin

执行下列命令更新到最新 mPaaS pod plugin。

sh <(curl -s http://mpaas-ios.oss-cn-hangzhou.aliyuncs.com/cocoapods/installmPaaSCocoaPodsPlugin.sh)

执行完成后在终端中执行 pod plugins installed 命令,查看 cocoapods-mPaaS 的版本,显示为 0.9.6 或以上即为升级成功。

image.png

修改 podfile 中 source 配置

将 podfile 中原有的 source "https://code.aliyun.com/mpaas-public/podspecs.git" 替换为

source "https://gitee.com/mpaas/podspecs.git"

API 变更

本次修改只涉及插件的变更,暂无插件命令使用的变化。

测试验证

执行完成上述升级与修改配置操作后,可继续执行 mPaaS pod plugin 相关拉取命令测试是否可以拉取到最新基线版本以及 SDK。

参数列表

您可以通过配置参数,改变插件的一些默认行为。

使用方法

在 podfile 中的 plugin "cocoapods-mPaaS" 后方添加参数。示例如下:

image.png

参数

功能

适用版本

:guard_image_version => 6

生成 V6 保镖图片

≥ V0.9.6

:guard_image_version => 5

生成 V5 保镖图片

≥ V0.9.6

:only_frameworks => true

在某些场景(如独立 framework 工程)中,不需要自动添加 mPaaS 模板目录文件。

≥ V0.9.5.0.0.2

:check_repo => false

在某些场景(如使用内网代理)下,不自动检查添加默认 repo。

≥ V0.9.5.0.0.2

说明

10.2.3 基线版本无需设置 :guard_image_version,默认生成 V6 图片。

命令列表

安装了 cocoapods-mPaaS 插件后,您可使用命令行工具辅助开发。

命令

功能

pod mpaas init

Podfile 中添加 pluginsourcemPaaS_baseline

pod mpaas update <VERSION>

更新基线,参数 <VERSION> 为具体的基线号,例如 10.2.3,同时也更新下 podspec 仓库。

pod mpaas update --all

在正式版插件中,该命令会升级插件,重新运行安装脚本。在 beta 版插件中,该命令除了能够实现正式版中的功能外,还会更新本地基线。

pod mpaas info

显示完整的基线和对应的组件信息。

pod mpaas info <NAME> <VERSION>(其中 <VERSION> 为可选)

筛选某个模块名的信息。

pod mpaas info --only-mPaaS

显示部分缺省的基线信息,方便一键粘贴到 Podfile 中。

pod mpaas open

直接从命令行打开 .xcworkspace 文件。

pod mpaas version

显示当前工程所用的完整基线。

pod mpaas version --plugin

显示当前 Cocoapods-mPaaS 插件的版本号。