Sqlite.swift не работает с Xcode 7.3

Я использовал Sqlite.swift с Xcode 7.2.x. Он работал нормально.

Я обновил Xcode до Xcode 7.3, и возникла проблема с инфраструктурой Sqlite.swift.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/module.modulemap:1:8: error: redefinition of module 'Compression'
module Compression [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/include/module.modulemap:1:8: note: previously defined here
module Compression [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/module.modulemap:6:8: error: redefinition of module 'Darwin'
module Darwin [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/include/module.modulemap:6:8: note: previously defined here
module Darwin [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/module.modulemap:1478:8: error: redefinition of module 'os'
module os [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/include/module.modulemap:1599:8: note: previously defined here
module os [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/module.modulemap:1494:8: error: redefinition of module 'libkern'
module libkern [system] [extern_c] {
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/include/module.modulemap:1615:8: note: previously defined here
module libkern [system] [extern_c] {
       ^
<unknown>:0: error: could not build Objective-C module 'SQLite'

Используемая версия: pod 'SQLite.swift', '~> 0.9.2'

Я нашел запрос закрытого пула с той же проблемой. https://github.com/stephencelis/SQLite.swift/issues/349

Я пробовал использовать следующую ветку:

pod 'SQLite.swift',
  git: 'https://github.com/stephencelis/SQLite.swift.git',
  branch: 'cocoapods-xcode-7-3'

Но я не смог решить эту проблему.

Ждем настоящего решения.


person Ashish Kakkad    schedule 29.03.2016    source источник
comment
Я использую их ветку 7.3 без проблем. Тот же репозиторий, только не та ветка. :)   -  person Eric Aya    schedule 29.03.2016
comment
@EricD: Вы должны отправить это как ответ.   -  person Vatsal Manot    schedule 29.03.2016
comment
Почему минусы? !! Многие разработчики сталкиваются с этой проблемой.   -  person Ashish Kakkad    schedule 29.03.2016


Ответы (3)


Другой ответ, к сожалению, неверен. И master, и последняя версия 0.10.1 (выпущена пару дней назад), совместимы с Xcode 7.3 и CocoaPods 1.0.0 beta 6.

Однако на этот раз в процессе обновления Xcode были некоторые проблемы, и после обновления CocoaPods и модуля потребовалось выполнить один или несколько из следующих шагов для нескольких пользователей:

  • Если вы еще этого не сделали, обновите CocoaPods до последней бета-версии:

    Запустите sudo gem update cocoapods --pre и повторно запустите pod install.

  • Удерживайте клавишу «option» и запустите Clean Build Folder… из меню Product Xcode перед повторной сборкой.
  • Удалите папку «Pods» из каталога вашего проекта и повторно запустите pod install.
  • Если ничего не помогает, удалите «Xcode.app» из папки «Приложения» и переустановите (у нескольких пользователей были неудачные установки Xcode).
person stephencelis    schedule 29.03.2016
comment
Спасибо за ответ. Я проверю. - person Ashish Kakkad; 29.03.2016
comment
Я пробовал это на двух разных компьютерах, и это не сработало. Сейчас я пробую последний шаг, переустанавливая Xcode на одном из них. Есть ли что-то еще? - person Frank Conry; 04.04.2016
comment
Я заставил его работать, изменив строку в подфайле на pod 'SQLite.swift', '~> 0.10.1' Спасибо! - person Frank Conry; 04.04.2016
comment
@FrankConry Это помогло? Я ничего не могу заставить работать, и сейчас у меня нет времени переустанавливать. - person Cody Harness; 05.04.2016
comment
@CodyHarness да. Это сработало. Выполните шаги, описанные выше, и измените Podfile, как я описал, и он должен работать без переустановки xcode. - person Frank Conry; 05.04.2016
comment
К сожалению, я уже внес это изменение в свой подфайл, и оно все еще не работает. - person Cody Harness; 05.04.2016
comment
@CodyHarness Вы пробовали все описанные выше шаги без переустановки Xcode? Очистка папки сборки, во-первых, но помимо этого, обновление CocoaPods и переустановка локальных модулей должны быть достаточно быстрыми. Кроме того, метод установки, не основанный на CocoaPods, должен разблокировать вас. (К сожалению, CocoaPods — ненадежное решение для оболочек SDK lib, таких как SQLite.swift.) - person stephencelis; 05.04.2016
comment
@CodyHarness Я также должен был упомянуть, что после изменения вашего Podfile вы должны повторно запустить pod install - person Frank Conry; 05.04.2016
comment
@stephencelis да, первое, что я сделал сегодня утром, это обновил сам CocoaPods, затем обновил свои модули, а затем очистил папку сборки. Затем я нашел этот пост, попытался удалить папку pods и запустить pod install, чтобы всегда возвращаться к ошибке. Теперь я полностью удалил модули из проекта, все, и запустил pod install, чтобы получить все по-новому. Теперь я получаю сообщение об ошибке (среди прочего) «Файл SQLite/SQLite-Bridging.h» не найден - person Cody Harness; 05.04.2016
comment
Мне не нужно было обновлять Cocoapods. Я использую 1.0.0.beta.5 (6 несколько недель назад вызвало у меня много проблем с другими модулями). Все, что я сделал, это почистил папку сборки (сочетание клавиш: Option-Shift-Command-K) и повторно запустил установку модуля. Я не указал версию SQLite в своем подфайле, но я указал URL-адрес github, используя: pod 'SQLite.swift', git: 'https://github.com/stephencelis/SQLite.swift.git' - person jungledev; 11.04.2016
comment
к сожалению, это не работает для меня. cocopods beta6 и sqlite.swift 0.10.1 все еще видят ошибки дублирования CSQlite :( - person Sergey Pronin; 13.04.2016
comment
@SergeyPronin то же самое для меня. xcode 7.3.1 с sqlite.swift 0.10.1. Я пробовал все варианты, но все равно выдает эту ошибку. - person AnLT; 28.06.2016

Ветка «master» репозитория SQLite.swift несовместима с Xcode 7.3.

К счастью, автор уже сделал совместимую ветку:

https://github.com/stephencelis/SQLite.swift/tree/cocoapods-xcode-7-3

Это тот, который вы должны использовать в Xcode 7.3 (я использую его без проблем).

Это тот же репозиторий, просто другая ветка. Мы можем предположить, что он будет объединен с «мастером», как только автор сочтет нужным.

person Eric Aya    schedule 29.03.2016
comment
Ok. Я проверю этот. но можем ли мы сделать это с помощью pod? - person Ashish Kakkad; 29.03.2016
comment
@AshishKakkad Для этой версии еще нет модуля. Но установка проста: перетащите xcodeproject SQLite.swift в свой проект, затем добавьте связанную библиотеку SQLite в Linked Frameworks and Libraries. - person Eric Aya; 29.03.2016
comment
Ok. Спасибо. Я проверю. - person Ashish Kakkad; 29.03.2016
comment
Стройте успешно. Спасибо. - person Ashish Kakkad; 29.03.2016
comment
@EricD Эта ветка уже была объединена, а версия изменена (единственная причина, по которой я не удалил ее, заключается в том, что у людей, успешно привязанных к ней, не возникло проблем - я, вероятно, удалю ее через месяц или около того). - person stephencelis; 29.03.2016
comment
@stephencelis Хорошо, понятно. Ранее я пытался использовать вашу основную ветку с 7.3 и потерпел неудачу, поэтому мой ответ на вопрос Ашиша. Спасибо за эту ценную информацию, я попробую это для своей собственной установки. - person Eric Aya; 29.03.2016
comment
@EricD Я предполагаю, что он не был объединен во время вашего обновления :) 0.10.0 был выпущен 4 дня назад, но все еще имел давнюю проблему, которая затронула некоторых пользователей CocoaPods. 0.10.1 должен был решить эту проблему! Если у вас все еще есть проблемы, пожалуйста, сообщите о проблеме! - person stephencelis; 29.03.2016

Я использую Xcode 7.3 и версию Cocoapods 1.0.0.beta.5. Я не использую самую последнюю версию Cocoapods, потому что несколько недель назад она вызвала у меня много проблем с другими модулями, которые я использую, и я не хочу обновлять ее снова, пока не почувствую, что он более стабилен.

Что сработало для меня:

  1. Очистите папку сборки (привязка клавиш: Option-Shift-Command-K)
  2. Удалите каталог Pods/ и удалите файл Podfile.lock (не удаляйте Podfile!)
  3. Подтвердите, что ваш подфайл содержит синтаксис импорта, который указывает на URL-адрес github, используя:

pod 'SQLite.swift', git: 'https://github.com/stephencelis/SQLite.swift.git'

  1. Сохраните изменения в подфайле, если таковые имеются.
  2. Беги pod install
person jungledev    schedule 10.04.2016