使用Swift Package Manager,Cocoa Pods或其他

时间:2018-05-08 21:46:34

标签: swift cocoapods swift-package-manager grdb

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

GRDB installation instructions 建议提供一个选项:“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

因此问题的第一部分仍未得到解决。我还没有能够解决问题的第2部分。很抱歉,如果其中一个或两个对于训练有素的Xcode开发人员来说是非常明显的,但在研究了问题后,我没有找到具体的指导。

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

脚注

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

2 个答案:

答案 0 :(得分:1)

使用Swift Package Manager complete GRDB installation instructions建议。他们说你可以使用SPM。

不知道SPM是否与现有的Xcode项目集成。相反,SPM可以生成 Xcode项目:如果您确实需要 SPM,请抓取相关信息。例如,请参阅https://www.raywenderlich.com/148832/introduction-swift-package-manager

但还有其他选择:GRDB安装说明说你也可以使用CocoaPods和手动安装。迦太基是另一种可能性(但不太推荐)。因此,我建议您切换到CocoaPods,这是将GRDB和其他库集成到Xcode项目中的最简单方法。

  

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

Apple Watch的测试和支持不会使您的应用程序膨胀:GRDB只向应用程序公开他们需要的东西。例如,测试是GRDB存储库的一部分(因为您无法在未经测试的情况下发布健壮的库),但它们不是库本身的一部分。现在GRDB是一个整个库,而不是几个库的保护伞:你不能拆分GRDB并只选择你想要的部分。例如,记录类型和SQL支持始终可用。但是,有一些独立的伴侣库,例如RxGRDB,你可以选择使用它们。

答案 1 :(得分:0)

Cocoa Pods

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

Cocoa Pods安装

基于this tutorial,如果您的操作系统是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 工作区访问它,而不是xcode 项目
  • 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 Pod获取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(而非项目文件)。在左侧项目大纲中,您应该看到您的入门项目以及Pods

FirstDb
Pods

构建工作区(Product > Build),您应该看到ViewController中的import GRDB行正在编译而没有错误。