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

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

Cartfile

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

Я выполнил эту команду, чтобы установить SwiftyJSON

$ carthage update

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

введите описание изображения здесь

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

введите описание изображения здесь

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

Use of unresolved identifier 'JSON'

введите описание изображения здесь

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

ОБНОВЛЕНИЕ: я попытался удалить фреймворки и перетащить фреймворки в связанные фреймворки и библиотеки и добавить раздел "Выполнить скрипт" в "Фазы сборки", как просили инструкции в Карфагене.

введите описание изображения здесь

Я убежден, что во время 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

Которая установила нормально, но что-то еще не так ...


person andrew nguyen    schedule 25.03.2015    source источник
comment
Можете ли вы проверить, где находятся файлы SwiftJSON в каталоге вашего проекта?   -  person Darvish Kamalia    schedule 25.03.2015
comment
В Карфагене / build / iOS   -  person andrew nguyen    schedule 25.03.2015


Ответы (4)


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

Шаги:

  • Создайте файл Cartfile, в котором перечислены фреймворки, которые вы хотите использовать в своем проекте.
  • Запустите обновление carthage. Это приведет к загрузке зависимостей в папку Carthage / Checkouts, а затем построение каждой из них.
  • На вкладке «Общие» настроек вашего приложения в разделе «Связанные платформы и библиотеки» перетащите каждую платформу, которую вы хотите использовать, из папки Carthage / Build на диске.
  • На вкладке настроек «Build Phases» вашего приложения щелкните значок «+» и выберите «New Run Script Phase». Создайте сценарий выполнения со следующим содержанием:

    /usr/local/bin/carthage copy-frameworks
    

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

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

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

person aksh1t    schedule 25.03.2015
comment
Я попытался повторить то, что вы предложили, но проблема все еще сохраняется ... Ознакомьтесь с моим обновленным вопросом. - person andrew nguyen; 25.03.2015

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

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

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

person andrew nguyen    schedule 25.03.2015

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

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

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

person Ryang MinHo    schedule 11.04.2015

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

  1. Введите этот URL: SwiftyJSON

  2. Нажмите кнопку «Клонировать или скачать», а затем в «Загрузить ZIP», как показано на следующем изображении:

Нажмите кнопку «Клонировать или загрузить», а затем в IMG «Загрузить ZIP»

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

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

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

SwiftyJSON-master / Источник /

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

SwiftyJSON.swift

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

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

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

person Luis Miguel Cabral Guzmán    schedule 30.08.2016