来自github 上的 GRDB 的演示 iOS 应用程序在我的 iMac 的手机模拟器上运行良好,但不清楚如何在我自己的 iOS 应用程序中构建 GRDB(本问题的第 1 部分),使用最少的组件集(本问题的第 2 部分)。1
GRDB安装说明建议提供一种选择:"Swift Package Manager"。 由于我是这个编程环境的新手,这听起来像是"正确的方式",但在尝试之后,我仍然在猜测如何成功构建我的项目。
到目前为止完成的步骤:
- 创建了一个新项目
Applications > Xcode (9.4 beta) > Create a new Xcode project > Single View App > "FirstDb"
- 将
import GRDB
放入视图控制器中(显然还无法编译) - >公用事业>终端的应用
cd /Users/owner/documents/xcodeprojects/firstdb
mkdir GRDB
cd GRDB
swift package init --type library
- 编辑
Package.swift
,在适当的位置添加.package(url: "https://github.com/groue/GRDB.swift.git", from: "2.10.0")
- >公用事业>终端的应用
swift package resolve
(导致"获取"、"克隆"、"解析")
状态Product > Build
后,import GRDB
行仍显示no such module
。
因此,问题的第 1 部分仍未解决。 我还没有能够回答问题的第 2 部分。 抱歉,如果其中一个或两个对于富有的 Xcode 开发人员来说非常明显,但是在研究了这个问题之后,我没有发现具体的指导。
使用 SPM 不是必需的,所以如果集成 GRDB 的其他选项是更好的选择,我想看看如何使用其中一个进行集成。
脚注
- 我想了解仅添加使用
Record
对象并能够为 iOS 项目执行 SQL 语句所需的 GRDB 部分所需的步骤。假设在使用 GRDB 基础知识的项目中不需要大部分完整包(测试、手表等),从而产生更紧凑的 iOS 应用程序。
可可豆荚
正如作者所指出的,Swift Package Manager 只是一种选择,并且"不知道与现有的 Xcode 项目集成",所以可能不是一个好的选择。 因此,为了解决问题的第一部分,下面显示了使用Cocoa Pods
集成GRDB
的技术。
可豆荚安装
根据本教程,如果您的操作系统是OS X 10.7或更高版本,您应该能够在不先下载任何内容的情况下安装CocoaPods。
Applications > Utilities > Terminal
sudo gem install cocoapods
pod setup --verbose
我的安装似乎工作正常,但生成的日志记录比教程显示的要多。
与现有项目集成
- 创建了一个新项目
Applications > Xcode (9.4 beta) > Create a new Xcode project > Single View App > "FirstDb"
- 这创造了
/Users/owner/documents/xcodeprojects/FirstDb/FirstDb.xcodeproj
- 将
import GRDB
放入视图控制器中(显然还无法编译) - 关闭 Xcode!(我们稍后将通过 XC工作区访问它,而不是 XcodeProj)
Applications > Utilities > Terminal
cd /Users/owner/documents/xcodeprojects/firstdb
pod init
open -a Xcode PodFile
使文件指定 GRDB:
platform :ios, '9.0'
target 'FirstDb' do
use_frameworks!
pod 'GRDB.swift'
end
这不会利用可用的版本控制功能,因此由您来确保 GRDB 在增强时没有引入的重大更改。
使用可可豆荚获取GRDB
现在是下载GRDB的时候:
Applications > Utilities > Terminal
cd /Users/owner/documents/xcodeprojects/firstdb
pod install
您应该看到如下所示的内容:
Analyzing dependencies
Downloading dependencies
Installing GRDB.swift (2.10.0)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `FirstDb.xcworkspace` for this project from now on.
....
使用 GRDB 导入构建项目
现在打开工作区文件FirstDb.xcworkspace
(而不是proj文件)。 在左侧的项目大纲中,您应该看到您的入门项目,还Pods
:
FirstDb
Pods
构建工作区 (Product > Build
),您应该看到 ViewController 中的import GRDB
行正在编译而没有错误。
完整的 GRDB 安装说明不建议使用 Swift Package Manager。他们说你可以使用SPM。
SPM不知道与现有的Xcode项目集成。相反,SPM 可以生成Xcode 项目:如果您确实需要SPM,请获取有关此内容的信息。例如,请参阅 https://www.raywenderlich.com/148832/introduction-swift-package-manager
但是还有其他选择:GRDB安装说明说你也可以使用CocoaPods,并手动安装。迦太基是另一种可能性(但不太推荐)。因此,我建议你切换到CocoaPods,这是将GRDB和其他库集成到Xcode项目中的最简单方法。
我想了解仅添加使用 Record 对象并能够为 iOS 项目执行 SQL 语句所需的 GRDB 部分所需的步骤。假设在使用 GRDB 基础知识的项目中不需要大部分完整包(测试、手表等),从而产生更紧凑的 iOS 应用程序。
对 Apple Watch 的测试和支持不会使您的应用程序膨胀:GRDB 仅向应用程序公开它们需要的内容。例如,测试是 GRDB 存储库的一部分(因为如果没有测试,就无法发布强大的库),但它们不是库本身的一部分。现在GRDB是一个完整的库,而不是几个库的保护伞:你不能拆分GRDB只选择你想要的部分。例如,记录类型和 SQL 支持始终可用。但是,有独立的配套库,例如RxGRDB,您可以选择使用或不使用。