全部產品
Search
文件中心

Mobile Platform as a Service:iOS 衝突處理

更新時間:Oct 25, 2024

接入 mPaaS 時,mPaaS SDK 可能會和工程中引入的其他開源庫或三方庫發生衝突,導致工程編譯不通過。本文介紹了兩類常見衝突的解決方案。

根據引起衝突的庫的類型,可以將解決方案分為以下兩類:

  • mPaaS 定製庫:若發生衝突的 mPaaS SDK 為定製庫,則必須使用這些 mPaaS 庫。

  • 非 mPaaS 定製庫:若發生衝突的 mPaaS SDK 非 mPaaS 定製庫,可以將 mPaaS 引入的庫進行刪除。

mPaaS 定製庫衝突解決方案

若發生衝突的 mPaaS SDK 為定製庫,則必須使用這些 mPaaS 庫。

開源庫名

mPaaS 庫名

衝突解決方案

AlipaySDK

AlipaySDK

必須使用 mPaaS 版本(解決了與 mPaaS RPC、UTDID 等模組的衝突)同時需要整合 mPaaS_RPC 組件。

OpenSSL

APOpenSSL

必須使用 mPaaS 版本(對原有國密演算法進行最佳化)。更多詳細資料,請參見 如何解決 iOS 工程中的 OpenSSL 三方庫衝突

protocolBuffers

APProtocolBuffers

必須使用 mPaaS 版本。

非 mPaaS 定製庫衝突解決方案

若發生衝突的 mPaaS SDK 非 mPaaS 定製庫,可以將 mPaaS 引入的庫進行刪除,支援刪除的庫如下表所示。詳情請參見 移除衝突的三方庫 移除引起衝突的庫。

remove_pod 支援的組件

包含的開源庫

mPaaS_SDWebImage

SDWebImage

mPaaS_Masonry

Masonry

mPaaS_MBProgressHud

MBProgressHUD

mPaaS_TTTAttributedLabel

TTTAttributedLabel

mPaaS_Lottie

Lottie

mPaaS_AMap

AMapSearchKit

AMapFoundationKit

MAMapKit

mPaaS_Security

SecurityGuardSGMain

mPaaS_APWebP

WebP

移除衝突的三方庫

若發生衝突的 mPaaS SDK 非 mPaaS 定製庫,可參照以下步驟刪除 mPaaS 引入的庫。

操作步驟

  1. 安裝 beta 版 cocoapods-mPaaS 外掛程式。

    說明

    cocoapods-mPaaS 外掛程式 beta 版僅支援在 10.2.3 基準中使用。

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

    安裝完成後,使用命令 pod mpaas version --plugin 確認是否為 beta 版本。

  2. 重新運行命令更新本地基準:pod mpaas update 10.2.3

  3. 使用 mPaaS_pod 命令之前,在 podfile 裡引入 remove_pod "mPaaS_xxx"。比如,在 mPaaS_pod "mPaaS_CommonUI" 之前使用 remove_pod "mPaaS_SDWebImage" 去除 SDWebImage

    remove_pod "mPaaS_SDWebImage"
    
    mPaaS_pod "mPaaS_CommonUI"
    
    pod 'xxx' # 對應的三方原生庫
  4. 去除 mPaaS 的組件庫後,可使用 pod install 命令引入原生的版本。