Добавление минимальной GRDB в проект Xcode с помощью Swift Package Manager, Cocoa Pods или других - PullRequest
0 голосов
/ 09 мая 2018

Демонстрационное приложение iOS от GRDB на github отлично работает на симуляторе телефона моего iMac, но не ясно, как получить сборку GRDB в моем собственном приложении iOS (часть 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 > Build строка import GRDB по-прежнему показывает no such module.

Итак, часть 1 вопроса все еще не решена. Я еще не смог ответить на часть 2 вопроса. Извините, если один или оба из них являются очевидными для разработчика Xcode, но после исследования проблемы я не нашел конкретных указаний.

Использование SPM не является обязательным, поэтому, если другие варианты интеграции GRDB являются лучшим выбором, я хотел бы посмотреть, как интегрировать, используя один из них.

Сноска

  1. Я хотел бы понять шаги, необходимые для добавления только тех частей GRDB, которые требуются для использования объекта Record и чтобы иметь возможность выполнять операторы SQL для проекта iOS. Предполагается, что большая часть полного пакета (тесты, часы и т. Д.) Не требуется в проекте с использованием основ GRDB, что приводит к более компактному приложению для iOS.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Какао Бобы

Как указывает автор, Swift Package Manager - это всего лишь один вариант, и «неизвестно, интегрируется ли он с существующими проектами Xcode», поэтому, вероятно, это не лучший выбор. Таким образом, для решения первой части вопроса, метод интеграции GRDB с использованием Cocoa Pods показан ниже.

Установка какао-бобов

Основываясь на этого учебного пособия , вы должны иметь возможность устанавливать CocoaPods без предварительной загрузки чего-либо, если ваша ОС OS X 10.7 или новее.

  • 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 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, поскольку она улучшена.

Используйте Какао-Бобы, чтобы получить 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 GRDB в ViewController компилируется без ошибок.

0 голосов
/ 09 мая 2018

Полные инструкции по установке GRDB не предлагают с помощью Swift Package Manager. Они говорят, что вы можете использовать SPM.

SPM, как известно, не интегрируется с существующими проектами Xcode. Вместо этого SPM может создавать проекты Xcode: соберите информацию об этом, если вам действительно нужен SPM. См. Например, https://www.raywenderlich.com/148832/introduction-swift-package-manager

Но есть и другие варианты: инструкции по установке GRDB говорят, что вы также можете использовать CocoaPods и ручную установку. Карфаген является еще одной возможностью (но не совсем рекомендуется). Поэтому я предлагаю вам перейти, скажем, к CocoaPods , который является самым простым способом интеграции GRDB и других библиотек в ваш проект Xcode.

Я хотел бы понять шаги, необходимые для добавления только тех частей GRDB, которые требуются для использования объекта Record и чтобы иметь возможность выполнять операторы SQL для проекта iOS. Предполагается, что большая часть полного пакета (тесты, часы и т. Д.) Не требуется в проекте с использованием основ GRDB, что приводит к более компактному приложению для iOS.

Тесты и поддержка Apple Watch не раздувают ваше приложение: GRDB предоставляет приложениям только то, что им нужно. Например, тесты являются частью репозитория GRDB (поскольку вы не можете поставить надежную библиотеку без тестирования), но они не являются частью самой библиотеки. Теперь GRDB представляет собой целую библиотеку, а не объединяет несколько библиотек: вы не можете разбивать GRDB и выбирать только те части, которые вам нужны. Например, типы записей и поддержка SQL всегда доступны. Однако существуют независимые сопутствующие библиотеки, такие как RxGRDB , которые вы можете использовать или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...