Skip to content

Objc 安装与兼容性

qiuwenchen edited this page Apr 10, 2024 · 5 revisions

WCDB Objc 提供 Cocoapods、Carthage 和 源码 三种安装方式。

基本要求

  • C++ 14 及以上
  • Xcode 12.0 及以上
  • 系统要求
    • iOS 11.0 及以上
    • macOS 10.13 及以上
    • tvOS 12.4 及以上
    • watchOS 6.0 及以上

通过 Cocoapods 安装

安装 Cocoapods 工具

可参考 Cocoapods 官方教程进行安装。

更新本地的 Cocoapods 缓存

在命令行中执行:

pod repo update

添加 Podfile 配置

在工程目录下创建 podfile 文件,并在对应 target 下添加 pod 'WCDB.objc'use_frameworks!。以下是一份示例 podfile 文件:

platform :ios, '13.0'
use_frameworks!

target 'Sample' do
    pod 'WCDB.objc'
end

然后在 podfile 同目录下命令行执行:

pod install --verbose

引入 WCDB Objc

在项目中使用 Cocoapods 生成的 .xcworkspace 文件打开工程,并在需要使用 WCDB Objc的源代码文件头通过 #import <WCDBObjc/WCDBObjc.h> 引入即可。由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm

通过 Carthage 安装

安装 Carthage 工具

可参考 Carthage 官方教程进行安装。

添加 cartfile 配置

在工程目录下创建 cartfile 文件,并添加 github "Tencent/WCDB"。以下是一份示例 cartfile 文件:

github "Tencent/WCDB"

编译生成动态库

在工程目录命令行执行:

carthage update --use-xcframeworks

对于不需要 bitcode 的开发者,可以指定 --configuration WithoutBitcode,以降低二进制的包大小。

完成后可以在 Carthage/Build 目录下找到生成的对应 iOS 或 macOS 平台动态库 WCDBObjc.xcframework

链入动态库

打开工程,并将对应 iOS 或 macOS 平台的动态库,拖入工程设置的 General -> Frameworks, Libraries, and Embedded Content 中。

以下是一份 iOS 平台工程的配置示例:

carthage_sample

引入 WCDBObjc

需要使用 WCDB Objc的源代码文件头通过 #import <WCDBObjc/WCDBObjc.h> 引入即可。由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm

在项目中使用 Cocoapods 生成的 .xcworkspace 文件打开工程,并在需要使用 WCDB Objc的源代码文件头通过 #import <WCDB/WCDBObjc.h> 引入即可。由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm

通过源码安装

获取 WCDB Objc 源码

WCDB 包含了 sqlcipher 和 zstd 的子模块,因此也需对其进行更新。在命令行中执行:

git clone https://github.com/Tencent/wcdb.git
cd wcdb
git submodule update --init sqlcipher zstd

链入工程文件

wcdb/src 目录下的 WCDB.xcodeproj 拖入你的工程文件中,并在工程配置的 Build Phases -> Target Dependencies 中添加 WCDBObjc

链入动态库

Build Phases -> Link Binary With Librarires中添加WCDBObjc。再在 Build Phases 中,选择 + 选项,在弹出菜单中选择 New Copy Files Phase。然后将Destination设置为Frameworks,然后添加WCDBObjc

以下是一个完成链入的配置示例:

git_clone_sample

引入 WCDB Objc

需要使用 WCDB Objc的源代码文件头通过 #import <WCDBObjc/WCDBObjc.h> 引入即可。由于WCDB是基于Objective-C++,因此需要将引用WCDB的源文件后缀.m改为.mm

Clone this wiki locally