# 模块/三方SDK配置介绍

1、配置离线打包工程时,可以根据需要进行 模块/三方SDK 的增删,这个过程需要对工程做出修改。

2、目前插件需要修改的项目包含Library、Framework、资源文件、info.plist、宏定义、LinkerFlags文件几项。

3、并不是所有的模块/三方SDK都要修改以上几项,大部分模块/三方SDK只需要修改其中几项即可。

4、如果app中出现“缺失功能提醒框”,需要按照下面步骤配置相应的模块/三方SDK即可。

# HBuilderX 5.13+ 本地 Pod 集成

HBuilderX 5.13+ iOS 离线 SDK 已内置 uniapp.podspec,推荐通过本地 CocoaPods 方式集成 uni-app 基础能力和三方模块。相比手动添加库文件,本地 Pod 集成可以自动处理大部分 .a.framework/.xcframework、系统库和资源文件依赖,降低漏加、重复添加或版本不一致的风险。

旧版手动集成方式仍可使用。下方“SDK中的依赖库 / 系统依赖库 / 资源文件”表格主要用于手动集成或排查依赖问题;5.13+ 推荐优先使用本地 Pod。

# 使用方式

离线 SDK 根目录包含 uniapp.podspec,示例工程 HBuilder-Hello 已配置本地 Pod。开发者只需要在 Podfile 中维护 uniapp_subspecs,取消需要模块的注释,然后执行 pod install

platform :ios, '13.0'
project 'HBuilder-Hello.xcodeproj'

require_relative 'scripts/uniapp_module_config'
require_relative 'uniapp_config' if File.exist?(File.join(__dir__, 'uniapp_config.rb'))

uniapp_subspecs = [
  'Core',
  'Barcode',
  'CameraGallery',
  'Payment-Wechat',
  'Map-Gaode',
  'UniAd-GDT',
]

target 'HBuilder' do
  pod 'uniapp', :path => '..', :subspecs => uniapp_subspecs
end

post_install do |_installer|
  UniAppModuleConfig.apply(
    uniapp_subspecs,
    plist_values: defined?(UNIAPP_PLIST_VALUES) ? UNIAPP_PLIST_VALUES : {}
  )
end

修改 Podfile 后执行:

pod install --no-repo-update

执行完成后,请使用 .xcworkspace 打开工程。

# 配置 appid、appkey、scheme 等业务参数

部分三方模块需要 appid、appkey、URL Scheme、Universal Links 等业务参数。5.13+ 示例工程提供 uniapp_config.rb,用于集中填写这些参数;执行 pod install 时,脚本会按 Podfile 中已启用的 uniapp_subspecs 自动写入对应的 Info.plist 和部分 feature.plist 配置。

UNIAPP_PLIST_VALUES = {
  payment_wechat: {
    appid: '微信 AppID',
    universal_links: 'https://example.com/app/'
  },
  payment_alipay: {
    scheme: '支付宝回调 Scheme'
  },
  map_gaode: {
    appkey: '高德地图 AppKey'
  },
  statistic_umeng: {
    appkey: '友盟 AppKey',
    channel: 'App Store'
  },
  uniad: {
    # 格式:包名|appid|adid|渠道
    market_channel: 'io.dcloud.HBuilder|appid|adid|apple',
    dcloud_ad_id: '广告标识 adid'
  }
}.freeze

使用说明:

  • 只需要填写当前 App 用到的模块参数,未启用对应 Pod 模块时,即使 uniapp_config.rb 中保留配置也不会写入工程。
  • 已支持脚本写入的内容包括部分 appid/appkey、URL Scheme、白名单、权限描述和 feature.plist 节点;已有权限描述不会被覆盖。
  • 证书/Profile、三方平台后台配置、GoogleService-Info.plist、AppDelegate 回调等仍需按对应模块文档处理;UniAd-WM 的微信参数也按 uni-AD 文档手动配置。
  • 如果模块曾经启用过,后来从 Podfile 移除,脚本不会自动删除历史写入的 Info.plist / feature.plist / entitlements 配置;彻底移除模块时请手动清理。

# Pod 模块与功能模块对照表

Core 是基础运行模块,必须保留。部分三方模块存在基础模块和平台模块,例如微信支付需要同时具备 PaymentPayment-Wechat 能力;通过 subspec 依赖声明启用平台模块时会自动带上对应基础模块。

功能模块 Pod subspec 说明
基础运行模块 Core 必须保留
加速度计 Accelerometer 加速度传感器
音频 Audio 录音、音频相关能力
相机/相册 CameraGallery 拍照、选择图片/视频
通讯录 Contacts 通讯录能力
文件系统 File 文件读写
短彩邮件消息 Messaging 系统短信、邮件等消息能力
屏幕方向 Orientation 设备方向
距离传感器 Proximity 距离传感器
网络请求 XMLHttpRequest XHR 网络请求
压缩解压 Zip zip 能力
扫码 Barcode 条码/二维码扫描
Canvas Canvas Canvas 能力
视频播放 Video video 播放能力
指纹识别 Fingerprint Touch ID
Face ID FaceId Face ID
蓝牙 BlueTooth 蓝牙能力
SQLite Sqlite SQLite 数据库
iBeacon IBeacon iBeacon
日志 Log 输出 console.log() 等日志
系统定位 Geolocation 系统定位基础模块
百度定位 Geolocation-Baidu 依赖 Geolocation
高德定位 Geolocation-Gaode 依赖 Geolocation
百度地图 Map-Baidu 百度地图
高德地图 Map-Gaode 高德地图
Google 地图 Map-Google Google Maps
登录基础模块 Oauth 登录公共模块
一键登录 Oauth-Univerify 依赖 Oauth
新浪微博登录 Oauth-Sina 依赖 Oauth
QQ 登录 Oauth-QQ 依赖 Oauth
微信登录 Oauth-Wechat 不包含微信支付 SDK
微信登录,PaySDK 版 Oauth-Wechat-PaySDK 使用带支付能力的微信 SDK
Apple 登录 Oauth-Apple Sign in with Apple
Google 登录 Oauth-Google Google Sign-In
Facebook 登录 Oauth-Facebook Facebook Login
支付基础模块 Payment 支付公共模块
支付宝支付 Payment-AliPay 依赖 Payment
微信支付 Payment-Wechat 依赖 Payment
Apple IAP Payment-IAP 依赖 Payment
PayPal 支付 Payment-Paypal 依赖 Payment
Stripe 支付 Payment-Stripe 依赖 Payment
推送基础模块 Push 推送公共模块
UniPush / 个推 Push-UniPush 依赖 Push
个推 Push-Getui 依赖 Push
FCM 推送 Push-FCM 通常还需添加 GoogleService-Info.plist
分享基础模块 Share 分享公共模块
新浪微博分享 Share-Sina 依赖 Share
QQ 分享 Share-QQ 依赖 Share
微信分享 Share-Wechat 不包含微信支付 SDK
微信分享,PaySDK 版 Share-Wechat-PaySDK 使用带支付能力的微信 SDK
语音基础模块 Speech 语音公共模块
百度语音 Speech-Baidu 依赖 Speech
讯飞语音 Speech-Ifly 依赖 Speech
直播推流 LivePusher 直播推流
统计基础模块 Statistic 统计公共模块
友盟统计 Statistic-Umeng 依赖 Statistic
Firebase 统计 Statistic-Firebase 通常还需添加 GoogleService-Info.plist
UIWebView 兼容 UIWebview 兼容模块
实人认证 FacialRecognitionVerify 人脸/实人认证
UTS 基础模块 UTS UTS 运行支持
uni-AD 穿山甲 UniAd-CSJ 自动依赖 UniAd-Base
uni-AD Gromore UniAd-Gromore 自动依赖 UniAd-Base
uni-AD 优量汇 UniAd-GDT 自动依赖 UniAd-Base
uni-AD 快手 UniAd-KS 自动依赖 UniAd-Base
uni-AD Sigmob UniAd-Sigmob 自动依赖 UniAd-Base
uni-AD 百度 UniAd-Baidu 自动依赖 UniAd-Base
uni-AD 微信小程序广告 UniAd-WM 自动依赖 UniAd-Base
uni-AD 旺脉 UniAd-WA 自动依赖 UniAd-Base
uni-AD AppLovin UniAd-AppLovin 自动依赖 UniAd-Base
uni-AD AdMob UniAd-GG 自动依赖 UniAd-Base
uni-AD AdMob Pangle Adapter UniAd-GG-Pangle 自动依赖 UniAd-Base
uni-AD Gromore 短剧 UniAd-GM-Content 示例工程已配置所需 CocoaPods source
uni-AD InMobi UniAd-InMobi 自动依赖 UniAd-Base
uni-AD IronSource UniAd-IronSource 自动依赖 UniAd-Base
uni-AD 快手内容联盟 UniAd-KS-Content 自动依赖 UniAd-Base
uni-AD Liftoff / Vungle UniAd-Liftoff 自动依赖 UniAd-Base
uni-AD Meta UniAd-Meta 自动依赖 UniAd-Base
uni-AD Mintegral UniAd-Mintegral 自动依赖 UniAd-Base
uni-AD Pangle UniAd-Pangle 自动依赖 UniAd-Base
uni-AD UnityAds UniAd-Unity 自动依赖 UniAd-Base
uni-AD Oct UniAd-Oct 自动依赖 UniAd-Base
uni-AD 泛连 UniAd-FL 自动依赖 UniAd-Base
uni-AD 华夏乐游 UniAd-YT 自动依赖 UniAd-Base

# 具体修改方法:

# 如何配置Library

library为模块/三方SDK对应的库文件和依赖库,按照下图找到配置位置,点击“+”可以添加,选中.a库点击“-”可以删除

# 如何配置framework

framework为模块/三方SDK依赖的库,按照下图找到配置位置,点击”+“可以添加,选中framework点击“-”可以删除

# 如何添加删除文件

当需要使用的资源如图片、国际化文件等, 点击File->addFile 在弹出的对话框中选择响应文件即可,删除时在工程中选中该项目,点击delete键

# 如何修改宏定义

按照下图找到Macors,在弹出的窗口中点击“+”可以添加添加“-”可以删除

# 如何修改LinkerFlags配置

按照下图找到Other Linker Flags 点击该项,在弹出的窗口中点击"+"可以添加flag 点击"-"可以删除flag

# 如何开启日志打印

工程中引入liblibLog.a库和在control.xml里配置debug="true" 可以在集成的Xcode里输出console.log()日志。

# 如何添加SDK依赖库文件

SDK/Resources/Libs目录下找到需要的库文件,然后把找到需要的库拷贝到工程的libs目录下,再根据配置要求把相关的库引入到工程中,如下图:

# 基础及非三方模块依赖配置

# 基础模块

SDK中的依赖库 系统依赖库 资源文件
libcoreSupport.a
liblibPDRCore.a
liblibUI.a
liblibNavigator.a
liblibNativeUI.a
liblibNativeObj.a
liblibAdSupport.a(IDFA)
liblibWeex.a
liblibPGInvocation.a
KSCrash.framework
CoreText.framework
JavaScriptCore.framework
WebKit.framework
CoreTelephony.framework
MobileCoreServices.framework
SystemConfiguration.framework
MediaPlayer.framework
AudioToolbox.framework
QuartzCore.framework
CFNetwork.framework
Foundation.framework
CoreFoundation.framework
CoreGraphics.framework
UIKit.framework
libc++.tbd
AVFoundation.framework
AssetsLibrary.framework
AddressBook.framework
CoreLocation.framework
QuickLook.framework
UserNotifications.framework
PandoraApi.bundle
__uniappes6.js
uni-jsframework-dev.js
uni-jsframework.js
uni-jsframework-vue3.js
uni-jsframework-vue3-dev.js
weexUniJs.js
weex-polyfill.js
unincomponents.ttf

# Accelerometer(加速度传感器)

SDK中的依赖库 系统依赖库
liblibAccelerometer.a Accelerate.framework

# Audio(音频)

SDK中的依赖库 系统依赖库 权限描述
liblibMedia.a
libopencore-amrnb.a
libmp3lame.a
DCUniRecord.framework
AVFoundation.framework NSMicrophoneUsageDescription
SDK中的依赖库 系统依赖库 资源文件 权限描述
liblibCamera.a AssetsLibrary.framework
Accelerate.framework
Photos.framework
CoreMedia.framework
MetalKit.framework
GLKit.framework
DCTZImagePickerController.bundle
DCMediaEditingController.bundle
NSCameraUsageDescription
NSPhotoLibraryUsageDescription
NSPhotoLibraryAddUsageDescription
NSMicrophoneUsageDescription

# Contacts(通讯录)

SDK中的依赖库 系统依赖库 权限描述
liblibContacts.a AddressBookUI.framework
AddressBook.framework
AVFoundation.framework
CoreVideo.framework
CoreMedia.framework
NSContactsUsageDescription

# File(文件系统)

SDK中的依赖库
liblibIO.a

# Messaging(短彩邮件消息)

SDK中的依赖库 系统依赖库
liblibMessage.a MessageUI.framework

# Orientation(设备方向)

SDK中的依赖库 系统依赖库
liblibOrientation.a CoreLocation.framework

# Proximity(距离传感器)

SDK中的依赖库
liblibPGProximity.a

# XMLHttpRequest(网络请求)

SDK中的依赖库
liblibXHR.a

# Zip

SDK中的依赖库
liblibZip.a

# Barcode

SDK中的依赖库 系统依赖库 权限描述
liblibBarcode.a
libDCUniBarcode.a
libDCUniZXing.a
libuchardet.a
AVFoundation.framework
ImageIO.framework
CoreVideo.framework
CoreMedia.framework
libiconv.2.tbd
NSCameraUsageDescription

# Video(视频播放)

SDK中的依赖库 系统依赖库 资源文件
libDCUniVideo.a
liblibVideo.a
DCUniVideoPublic.framework
IJKMediaFrameworkWithSSL.framework
Masonry.framework
libc++.tbd
libbz2.tbd
libz.tbd
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreMedia.framework
CoreVideo.framework
VideoToolbox.framework
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuartzCore.framework
UIKit.framework
VideoToolbox.framework
DCSVProgressHUD.bundle
DCPGVideo.bundle

# Fingerprint(指纹识别)

SDK中的依赖库 系统依赖库
liblibFingerprint.a LocalAuthentication.framework

# FaceId(人脸识别)

SDK中的依赖库 系统依赖库 权限描述
libDCUniFaceId.a LocalAuthentication.framework NSFaceIDUsageDescription

# BlueTooth(蓝牙)

SDK中的依赖库 系统依赖库 权限描述
liblibBlueTooth.a CoreBluetooth.framework NSBluetoothPeripheralUsageDescription
NSBluetoothAlwaysUsageDescription

# Sqlite(数据库)

SDK中的依赖库 系统依赖库
liblibSqlite.a libsqlite3.0.tbd

# iBeacon

SDK中的依赖库 系统依赖库 权限描述
liblibBeacon.a CoreBluetooth.framework
CoreLocation.framework
NSBluetoothPeripheralUsageDescription
NSBluetoothAlwaysUsageDescription

# 其他三方模块SDK配置