Как использовать 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
-
Вы получите ZIP файл с именем "SwiftyJSON-master"
-
Извлеките файлы
-
Введите путь:
SwiftyJSON-мастер/источник/
- Вы увидите файл с именем:
SwiftyJSON.swift
-
Скопируйте этот файл в файлы вашего проекта.
-
Добавьте этот файл в каталог проекта.
-
Этот файл будет похож на другой класс в ваш проект, который вы можете использовать.