Как использовать SwiftyJSON в моем приложении для iOS?

Недавно я добавил SwiftyJSON в мой проект xCode, используя Карфаген.

Cartfile

$ cat Cartfile
github "SwiftyJSON/SwiftyJSON" >= 2.1.2

Я выполнил эту команду для установки SwiftyJSON

$ carthage update

Я добавил встроенную инфраструктуру к моему проекту xCode

enter image description here

Я импортировал Framework в верхней части моего проекта

enter image description here

Но я все еще получаю эту ошибку:

Use of unresolved identifier 'JSON'

enter image description here

Серьезно, что я делаю неправильно? Я новичок в разработке iOS.

UPDATE: я попытался удалить фреймворки и перетащить фреймворки в связанные структуры и библиотеки и добавить раздел "Запустить Script" в "Сборка фаз", как просили инструкции в Карфагене.

enter image description here

Я убежден, что во время процесса Carthage Update что-то пошло не так, потому что я получил эту ошибку при первой попытке:

$ carthage update
*** Fetching SwiftyJSON
*** Fetching Alamofire
*** Checking out SwiftyJSON at "2.1.3"
*** Checking out Alamofire at "1.1.4"
*** xcodebuild output can be found in /var/folders/0x/swzt630n3_575tglljpwhn4h0000gn/T/carthage-xcodebuild.Pc6rLg.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
*** Building scheme "Alamofire OSX" in Alamofire.xcworkspace
*** Building scheme "SwiftyJSON" in SwiftyJSON.xcworkspace
** BUILD FAILED **


The following build commands failed:
    Check dependencies
(1 failure)

После поиска проблемы мне сказали, что вы можете запустить

carthage update --configuration Debug

Какой из них был установлен, но что-то по-прежнему не так...

Ответ 1

Кажется, что вы пропустили шаг во время добавления рамок SwiftyJSON и Alamofire из Carthage. Проверьте эти шаги на странице Carthage readme:

Шаги:

  • Создайте файл Cartfile, в котором перечислены фреймворки, которые вы хотели бы использовать в своем проекте.
  • Запустите обновление корзины. Это приведет к загрузке зависимостей в папку Carthage/Checkouts, а затем построит каждый из них.
  • На вкладке "Общие" приложения на вкладке "Цель" приложения в разделе "Связанные рамки и библиотеки" перетащите каждую фреймворк, который вы хотите использовать из папки "Картидж/Создание" на диске.
  • На вкладке настроек "Настроить фазы" на вашем приложении щелкните значок "+" и выберите "Новый запуск Script Фаза". Создайте Run Script со следующим содержимым:

    /usr/local/bin/carthage copy-frameworks
    

    и добавьте пути к фреймворкам, которые вы хотите использовать в разделе "Входные файлы", например:

    $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
    $(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework
    

Похоже, вы пропустили шаг 4. Я сам пробовал эти шаги в демонстрационном проекте Swift, и они отлично работают. Попробуйте эти шаги, и если у вас все еще есть проблемы, оставьте комментарий. Спасибо!

Ответ 2

Я переключился на Cocoapods, и он просто сработал. Опять же, я полный noob, когда дело доходит до разработки iOS. Когда я искал ясли, я смотрел на Кокоаподов и Карфагена за то, что они могли предложить. Я был заинтригован утверждением Карфагена о том, чтобы держать вещи простыми:

"Карфаген, потому что нам нужен простейший инструмент - менеджер зависимостей, который выполняет свою работу, не принимая на себя ответственность Xcode"

В то время как я всегда выбираю более простой инструмент при выборе, я думаю, что я не знаю достаточно экосистемы iOS (читай: Xcode), чтобы использовать Карфаген.

Ответ 3

TL, DR: Нельзя использовать его внутри эмулятора, используйте iPhone.

Я также поступил по вашему пути, и я узнал, что --configuration debug будет кодировать идентификатор "iOS Developer" как свойство проекта SwiftyJSON.

AFAIK, идентификатор "iOS Developer" с кодовым кодом не был запущен с эмулятором. Моя проблема была решена, когда я запускаю ее на своем iPhone 6.

Ответ 4

Я не знаю, почему вы не можете добавить этот ресурс с помощью Carthage, но если вам нужно использовать SwiftyJSON, вам нужно только:

  • Введите этот URL-адрес: SwiftyJSON

  • Нажмите кнопку "Clone or download", а затем в "Download ZIP", как показано на следующем изображении:

Нажмите кнопку "Clone or download" , а затем в "Скачать ZIP" IMG

  1. Вы получите ZIP файл с именем "SwiftyJSON-master"

  2. Извлеките файлы

  3. Введите путь:

SwiftyJSON-мастер/источник/

  1. Вы увидите файл с именем:

SwiftyJSON.swift

  1. Скопируйте этот файл в файлы вашего проекта.

  2. Добавьте этот файл в каталог проекта.

  3. Этот файл будет похож на другой класс в ваш проект, который вы можете использовать.