1

来自GRDB 在 github上的演示 iOS 应用程序在我的 iMac 的手机模拟器上运行良好,但目前尚不清楚如何在我自己的 iOS 应用程序中构建 GRDB(此问题的第 1 部分),并使用最少的组件集(部分这个问题的2个)。1

GRDB安装说明 建议提供一个选项:“Swift 包管理器”。由于我是这个编程环境的新手,这听起来像是“正确的方法”,但在尝试之后,我仍然在猜测如何成功构建我的项目。

到目前为止完成的步骤:

  • 创建了一个新项目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 > Buildimport GRDB线路依旧说no such module

所以问题的第 1 部分仍未解决。我还不能解决问题的第 2 部分。很抱歉,如果这些中的任何一个或两个对于富有的 Xcode 开发人员来说都是显而易见的,但是在研究了这个问题之后,我没有找到具体的指导。

使用 SPM 不是必需的,因此如果集成 GRDB 的其他选项是更好的选择,我想看看如何使用其中之一进行集成。

脚注

  1. 我想了解仅添加使用该Record对象所需的部分 GRDB 以及能够为 iOS 项目执行 SQL 语句所需的步骤。假设在使用 GRDB 基础的项目中不需要大部分完整的包(测试、监视等),从而产生更紧凑的 iOS 应用程序。
4

2 回答 2

3

可可豆荚

正如作者所指出的,Swift Package Manager 只是一种选择,并且“不知道与现有的 Xcode 项目集成”,因此可能不是一个好的选择。因此,为了解决问题的第一部分,集成GRDB使用的技术Cocoa Pods如下所示。

可可豆荚安装

根据本教程,如果您的操作系统是 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 workspace访问它,而不是 xcode proj
  • 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 在增强时不会引入重大更改。

使用 Cocoa Pods 获取 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),您应该会看到import GRDBViewController 中的行正在编译且没有错误。

于 2018-05-14T17:06:17.550 回答
1

完整的GRDB 安装说明建议使用 Swift 包管理器。他们说你可以使用 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,您可以选择使用或不使用。

于 2018-05-09T08:57:04.540 回答