Tehnografi.com - Технологические новости, обзоры и советы

Использование CocoaPods с игровой площадкой Xcode

Следующая статья поможет вам: Использование CocoaPods с игровой площадкой Xcode

Вернуться в блог

Создание игровой площадки в Xcode — отличный способ попрактиковаться в кодировании на Swift, опробовать новую функцию Swift или разработать алгоритм. А CocoaPods может без проблем интегрировать сторонние библиотеки и фреймворки в ваш код!

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

Но… зачем тебе это делать? Использование CocoaPods с игровой площадкой имеет несколько преимуществ:

  • Вы можете опробовать новую библиотеку или фреймворк, не создавая полностью новый проект Xcode.
  • Вы можете изолировать определенную функцию библиотеки или фреймворка и поэкспериментировать с ней на игровой площадке.
  • Вы можете хранить библиотеку игровых площадок и фрагментов кода ваших любимых фреймворков и библиотек.

CocoaPods — это так называемый менеджер зависимостей. Вы используете его для добавления в свое приложение зависимостей, таких как сторонние библиотеки и платформы. CocoaPods может загружать популярные библиотеки Swift, такие как Alamofire, и устанавливать их код в базу кода вашего приложения.

После того как вы добавили библиотеку (называемую «модуль») в свое приложение, вы можете использовать инструменты командной строки CocoaPods, чтобы поддерживать библиотеку в актуальном состоянии с новыми версиями. А у CocoaPods есть удобные параметры конфигурации, например, чтобы поддерживать актуальность вашего кода для определенных версий библиотеки.

Вы сообщаете CocoaPods, какие библиотеки и платформы вы хотите использовать, с помощью простого файла, называемого Podfile. CocoaPods читает этот файл, загружает сторонние библиотеки и добавляет их в проект Pods Xcode. Затем этот проект и проект Xcode вашего приложения добавляются в рабочую область. Это эффективно добавит код библиотеки в ваш собственный проект.

CocoaPods был первым крупным менеджером зависимостей для приложений iOS. Вы также можете использовать Carthage или Swift Package Manager. Инструкции, приведенные в этом руководстве, также будут работать с Carthage и Swift Package Manager.

Сначала давайте убедимся, что вы установили CocoaPods на свой Mac. Откройте терминал и введите следующую команду:

$ pod – версия

Вам не нужно вводить знак $ (знак доллара) в командной строке. В приведенном выше коде это просто указывает, что текст следует вводить в командной строке, например, в Терминале. И всегда проверяйте, что вы печатаете! Не вводите просто все, что вы прочитали в Интернете.

Если приведенная выше команда завершается неудачно и выводит что-то вроде «Команда не найдена», установите CocoaPods с помощью следующей команды:

$ sudo gem установить какаоподы

Это установит «драгоценный камень» Ruby для CocoaPods. CocoaPods разработан с использованием языка программирования Ruby, который по умолчанию установлен в macOS.

Рекомендуется поддерживать CocoaPods в актуальном состоянии до последней версии. Чтобы обновить CocoaPods, просто повторите ту же команду:

$ sudo gem установить какаоподы

Теперь, когда вы установили CocoaPods, давайте продолжим!

Не существует простого способа добавить модуль на игровую площадку, но то, что мы собираемся сделать сегодня, довольно близко к этому.

Вот суть:

  1. Создать проект Xcode
  2. Создайте подфайл
  3. Установите модули с помощью CocoaPods
  4. Добавьте игровую площадку в рабочее пространство
  5. Импортируйте модуль модуля прямо на игровой площадке.

Если вы уже знакомы с CocoaPods, Xcode и использованием игровых площадок — дерзайте. Приятного кодирования! Если нет, давайте перейдем к первому шагу.

1. Создайте проект Xcode

Сначала мы создадим простой проект в Xcode. Вот как:

  1. Откройте Xcode на своем Mac
  2. Выберите «Файл» -> «Создать» -> «Проект…».
  3. Выберите шаблон приложения Single View и нажмите «Далее».
  4. Введите CocoaPodsExample в качестве имени проекта и нажмите «Далее».
  5. Наконец, выберите удобное место для сохранения этого проекта и нажмите «Создать».

2. Создайте подфайл

Далее мы собираемся создать Podfile. Этот файл будет содержать всю информацию о библиотеках, которые мы хотим добавить в наш проект.

Вот как:

  1. Щелкните правой кнопкой мыши проект CocoaPodsExample в Навигаторе проектов справа от Xcode и выберите «Новый файл…».
  2. Выберите пустой шаблон в категории «Другое» (прокрутите вниз) и нажмите «Далее».
  3. Назовите файл Podfile и обязательно сохраните его в том же каталоге, что и файл CocoaPodsExample.xcodeproj.
  4. Наконец, нажмите «Создать».

Note: Обязательно назовите файл Podfile и ничего больше. Так что никаких расширений, только Podfile.

Затем добавьте в подфайл следующий текст:

платформа: iOS, ‘11.0’
используйте_frameworks!

цель «CocoaPodsExample» сделать
модуль «SwiftyJSON», «~> 4.0»
конец

Что означает этот код?

  • Первая строка с платформой сообщает CocoaPods, что версия iOS, которую мы хотим поддерживать, — iOS 11.0. Обычно это соответствует версии развертывания вашего проекта Xcode.
  • use_frameworks! указывает, что мы хотим создать Cocoa Touch Framework вместо статических библиотек. Короче говоря, это необходимая настройка для работы с библиотеками, написанными на Swift.
  • Целевой блок содержит модули, которые мы хотим добавить к определенной цели сборки. В нашем случае это CocoaPodsExample. Это название нашего проекта приложения.
  • Код модуля «SwiftyJSON», «~> 4.0» является самым важным! Он сообщает CocoaPods, что мы хотим использовать библиотеку SwiftyJSON в нашем проекте.

Вы можете использовать логические выражения, такие как >=, чтобы указать, какие версии модулей вы принимаете в своем проекте. Если вы опустите часть «~> 4.0», CocoaPods будет использовать только последнюю версию этого модуля. Это часто рекомендуется в начале проекта.

~> называется оптимистическим оператором и принимает версии «до» определенной версии. Например, ~> 4.0 означает, что мы примем любую версию от 4.0 до 4.9 (включительно), но не 5.0. Он идеально подходит для ситуаций, когда вам нужны обновления для библиотеки, если только они не являются серьезными обновлениями, которые могут нарушить ваш код.

Изучение того, как работает CocoaPods, является хорошей практикой, поскольку оно затрагивает множество практических тем разработки программного обеспечения.

3. Установите модули с помощью CocoaPods

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

Сначала закройте проект в Xcode, а затем закройте сам Xcode.

Затем откройте терминал и используйте cd, чтобы перейти в каталог вашего проекта. Если вы не знаете, как это сделать, проще всего просто ввести cd в терминале, затем перетащить каталог вашего проекта из Finder в терминал и, наконец, нажать клавишу Enter.

Затем введите это в командной строке:

$ установка модуля

Это позволит установить модули из вашего Podfile, создав этот проект Pods и добавив его в новое рабочее пространство.

CocoaPods необходимо загрузить большой файл, называемый podspec, если вы используете CocoaPods впервые или если вы какое-то время не использовали CocoaPods. В зависимости от скорости вашего интернета и размера подспецификации это может занять несколько минут.

Когда модуль успешно установлен, вы увидите что-то вроде этого:

Анализ зависимостей
Загрузка зависимостей
Установка SwiftyJSON (4.1.0)
Создание проекта Pods
Интеграция клиентского проекта
[!] Пожалуйста, закройте все текущие сеансы Xcode и с этого момента используйте CocoaPodsExample.xcworkspace для этого проекта.
Установка пода завершена! Установлена ​​1 зависимость от подфайла и всего 1 модуль.

Видите это уведомление? С этого момента вам придется использовать CocoaPodsExample.xcworkspace. Итак, найдите этот файл в Finder и откройте его в Xcode.

Ваш проект выглядит «закрытым» при открытии рабочей области? Убедитесь, что вы сначала закрыли проект Xcode, затем закройте рабочую область и откройте ее снова.
Использование CocoaPods с игровой площадкой Xcode

4. Добавьте игровую площадку в рабочее пространство

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

Открыв рабочую область в Xcode, сделайте следующее:

  • Сначала выберите «Файл» -> «Создать» -> «Игровая площадка»…
  • Затем выберите пустой шаблон.
  • Затем назовите файл CocoaPodsExample и сохраните файл игровой площадки в том же каталоге, что и ваше рабочее пространство Xcode.
  • Наконец, закройте появившийся редактор игровой площадки.

Затем найдите файл CocoaPodsExample.playground в Finder и перетащите его из Finder в рабочую область Xcode.

Xcode, вероятно, добавит игровую площадку в проект CocoaPodsExample. Обязательно перетащите его за пределы проекта прямо в рабочую область!

В Навигаторе проекта вы можете перетащить файл на самый верхний уровень. Когда Xcode создаст копию игровой площадки, просто удалите предыдущую ссылку на игровую площадку.

Этот шаг немного необычный, но вы поймете, что сделали все правильно, если проекты вашего рабочего пространства организованы следующим образом:

5. Импортировать модуль Pod на игровой площадке

Последний шаг — использовать модули, которые CocoaPods генерирует непосредственно на игровой площадке. Это похоже на использование модуля в проекте Xcode, когда вы кодируете импорт в верхней части файла.

Сначала скомпилируйте рабочую область, нажав Command-B. Это скомпилирует проекты в рабочей области и сделает модули модуля доступными на игровой площадке.

Затем откройте игровую площадку в Xcode, щелкнув ее в Навигаторе проекта. Введите это в верхней части файла:

импортировать SwiftyJSON

Когда вы вводите «Swifty», доступные модули уже должны появиться в поле автозаполнения. Так:

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

Наконец, давайте заставим SwiftyJSON работать! Добавьте следующий код на игровую площадку:

let json = JSON(parseJSON: «{\»привет\»: \»Детская площадка!\»}»)
печать (json[“hello”])
И когда вы запустите игровую площадку, в консоли должно появиться следующее:

Детская площадка!
Потрясающий! Это работает 🙂

При использовании CocoaPods с игровыми площадками может возникнуть несколько распространенных ошибок. Ниже вы можете найти решения этих ошибок. А также ознакомьтесь с некоторыми советами, которые помогут максимально эффективно использовать CocoaPods и игровые площадки!

Нет такого модуля

Когда вы видите ошибку типа «Нет такого модуля SwiftyJSON», вы где-то пропустили шаг. Вернитесь к предыдущему разделу и убедитесь, что вы правильно добавили модули и успешно скомпилировали рабочую область с помощью Command-B.

Не удалось найти символы

Эта ошибка появляется, когда вы используете CocoaPods версии 1.5 с Xcode 9. Вы можете решить ее, добавив следующий код в конец вашего подфайла:

post_install сделать |установщик|
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete(‘CODE_SIGNING_ALLOWED’)
config.build_settings.delete(‘CODE_SIGNING_REQUIRED’)
конец

installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[‘CONFIGURATION_BUILD_DIR’] = ‘$PODS_CONFIGURATION_BUILD_DIR’
конец
конец
конец

Обязательно запустите установку pod еще раз, чтобы заново создать проект Pods. Затем очистите сборку с помощью Command-Shift-K, пересоберите ее с помощью Command-B и запустите игровую площадку. Ошибка должна исчезнуть.

JSON имеет значение null

В примере кода SwiftyJSON, который мы использовали ранее, константа json может быть пустой, если JSON не может быть проанализирован. Итак, если вы изменили JSON, убедитесь, что он не содержит ошибок. Вы можете прочитать больше о том, как использовать SwiftyJSON здесь: https://github.com/SwiftyJSON/SwiftyJSON.

Запуск игровой площадки вручную

Вас раздражает то, что ваша игровая площадка работает, пока вы кодируете? Установите ручной режим! Удерживайте кнопку «Воспроизвести» в левом нижнем углу игровой площадки, а затем выберите «Запустить вручную».

Запуск игровой площадки на неопределенный срок

Если вы работаете с асинхронным или долго выполняющимся кодом, вам может потребоваться, чтобы ваша игровая площадка работала бесконечно. В противном случае игровая площадка может закрыться до того, как вернется ваш асинхронный код. Вот как это сделать:

  • Добавьте import PlaygroundSupport в начало файла игровой площадки.
  • Добавьте PlaygroundPage.current.needsIndefiniteExecution = true в свой код Swift.

Playground теперь работает бесконечно и прекращает выполнение по истечении определенного времени (обычно 30 секунд). Вы также можете остановить выполнение игровой площадки вручную с помощью этого кода:

PlaygroundPage.current.finishExecution()

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

Использование CocoaPods с игровой площадкой: немного неудобно настраивать, но определенно работает.

После настройки вы можете добавить в свое рабочее пространство столько игровых площадок, сколько захотите. И вы можете добавить в свой подфайл несколько фреймворков и библиотек, чтобы создать хранилище игровых площадок, лучших практик и фрагментов кода. Потрясающий!

.