Skip to content

Latest commit

 

History

History
178 lines (128 loc) · 21.9 KB

README.ru.md

File metadata and controls

178 lines (128 loc) · 21.9 KB

Solar2D → App Store; macOS не требуется

Собственно все, что вам нужно, - это браузер.

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

Требования

  • Активная учетная запись в Apple Development Program для создания и загрузки приложений. Вы можете быть зарегистрироваться как частное лицо или как часть команды с активной подпиской
  • Аккаунт GitHub
  • Устройство iOS с приложением TestFlight, если вы хотите тестировать свое приложение
  • Аккаунт Google

Настройка

Вот краткое изложение того, что мы собираемся сделать, без инструкций, просто для обзора:

  • Клонировать и настроить репозиторий в GitHub
  • Создать сертификаты для подписи iOS приложений и загрузить их в репозиторий вместо шаблонов

1. Подготовка репозитория

  1. Войдите в GitHub и нажмите кнопку ➕ в правом верхнем углу, выберите «Import repository». Мы импортируем репозиторий вместо форка, потому что так у вас будет возможность сделать вашу копию закрытой. На GitHub форки публичных репозиториев могут быть только публичными
  2. Вставьте адрес https://github.com/solar2d/demo-app-store-automation.git, выберите имя для вашего репозитория (например, Solar2Demo) и видимость. Этот конкретный проект не содержит конфиденциальной информации, или конфиденциальная информация зашифрована. Но если вы хотите расширить его и сделать свой проект на его основе, возможно, есть смысл сделать его приватным. Вы можете изменить настройки приватности позже
  3. В репозитории в строке меню нажмите «⚙ Settings» и на боковой панели выберите «Secrets»
  4. Нажмите «New Repository Secret». Введите следующие пары Name и Value в соответствующие поля и нажмите «Add secret» для каждой пары :
    1. Name: AppleUser
      Value: ваш адрес электронной почты пользователя Apple ID
    2. Name: ApplePassword
      Value: ваш пароль Apple ID. Скорее всего, у вас настроена двухфакторная аутентификация. В этом случае не используйте свой настоящий пароль. Перейдите на https://appleid.apple.com/ и войдите в систему. Создайте пароль для приложения «app-specific password» и используйте его
  5. Если ваша учетная запись Apple включена в программу разработки как часть команды, а не как индивидуальный разработчик, вам также необходимо указать секрет AppleTeamId. Вы также можете указывать его как индивидуальный разработчик, но это необязательно. Чтобы получить его :
    1. Нажмите «Actions» в строке заголовка GitHub репозитория и выберите «List Apple Teams» на боковой панели
    2. Нажмите кнопку «Run Workflow» и подтвердите, нажав зеленую кнопку
    3. Подождите. Процесс должен появиться в списке посреди окна. Через некоторое время символ рядом с ним должен стать галочкой ✓. Нажмите «List Apple Teams» рядом с галочкой
    4. Щелкните в боковой панели выберите «list», потом в основной области щелкните на «List Teams». Через некоторое время должна появится текстовая таблица
    5. Найдите желаемое короткое название команды (столбец ProviderShortname) и сохраните его как AppleTeamId в «Settings» → «Secrets»
    6. После получения идентификатора группы вы можете удалить лог, щелкнув ⋯ в списке процессов во вкладке «Actions» и выбрав «Delete workflow run». Я рекомендую это сделать, поскольку логи доступны всем, кто имеет доступ к репозиторию. Эти логи могут содержать ваше настоящее имя и другую конфиденциальную информацию
  6. При желании вы можете изменить название вашего приложения, для этого:
    1. Нажмите «Code» в строке меню и перейдите в каталог «Util»
    2. Щелкните файл recipe.lua и нажмите кнопку с иконкой карандаша ✎, чтобы отредактировать его
    3. Измените имя в кавычках (Solar2Demo) в редакторе и нажмите кнопку «Commit changes»
    4. Я настоятельно не рекомендую использовать что-либо, кроме простой латиницы, или изменять что-либо еще в этом файле, если вы не очень уверены в том что делаете

2. Создание идентификатора приложения

  1. Войдите в веб-портал разработчика Apple: http://developer.apple.com/account/
  2. Выберите «Certificates, Identifiers & Profiles»
  3. На боковой панели выберите «Identifiers» и нажмите ➕, чтобы создать его
  4. Вам нужен «App ID» для типа «App»
  5. Заполните форму
    1. Description, описание, по которому вы узнаете свое приложение, например «Solar2D Demo App»
    2. App prefix, я обычно выбираю тот в котором есть «Team ID», но это не имеет большого значения
    3. Explicit bundle id, например «com.solar2d.solar2demo». Вам придется изменить название компании на другое, поскольку идентификаторы приложений должны быть уникальны
    4. Capabilities, возможности по умолчанию обычно подходят, вы можете отредактировать их позже (в таком случае вам придется перевыпустить профиль подготовки (provisioning profile))

3. Создание сертификата подписи

Apple требует криптографической подписи приложений. Для подписи нужны две вещи: сертификат и профиль подготовки (provisioning profile). Сертификат идентифицирует команду, и создается один на все ваши приложения. Xcode автоматизирует этот процесс, но мы будем использовать утилиты командной строки, предоставляемые Google Cloud Shell бесплатно

  1. Перейдите по этой ссылке. Она должен открыть для вас новый сеанс терминала
  2. Выполните: rm -f key.key distribution*; openssl req -newkey rsa:2048 -keyout key.key -out request.csr -nodes -subj "/C=CA/ST=/L=/O=/CN=Solar2D"; cloudshell dl request.csr
  3. Это должно вызвать загрузку файла «request.csr». Скачайте его и не закрывайте терминал, он еще понадобится
  4. На портале Apple Developer перейдите в раздел «Certificates, Identifiers & Profiles», Certificates
  5. Нажмите ➕, чтобы начать процесс создания сертификата
  6. Выберите «Apple Distribution»
  7. Нажмите «Choose File» и выберите только что скачанный «request.csr»
  8. Нажмите «Create» и «Download». Должен скачаться файл «distribution.cer»
  9. Вернитесь в окно Cloud Shell и загрузите сертификат. Вы можете сделать это, перетащив файл «distribution.cer» на консоль или выбрав его через «Upload Files» в меню ⋮ (More)
  10. Запустите: openssl x509 -inform DER -in distribution.cer -out distribution.crt && openssl pkcs12 -export -out distribution.p12 -inkey key.key -in distribution.crt && cloudshell dl distribution.p12 && rm -f key.key request.csr distribution.c*
  11. При запросе пароля я советую использовать надежный случайно сгенерированный пароль, например, отсюда
  12. Сохраните пароль в репозитории GitHub как секрет CertPassword (мы уже добавляли секреты выше). Вам также понадобится этот пароль если вы решите использовать сертификат на настоящем маке
  13. Скачайте пакет p12, содержащий зашифрованный сертификат и ключ подписи
  14. В репозитории GitHub перейдите в раздел «Code», затем щелкните каталог «Util»
  15. Нажмите кнопку «Add file» и выберите «Upload files»
  16. Выберите загруженный файл «distribution.p12» и нажмите кнопку «Commit changes»

В ваших последующих проектах сразу переходите к пункту 12 и переиспользуйте пароль и файл distribution.p12.

4. Создание профиля подготовки (provisioning profile)

Вторая часть необходимая для подписи приложения это профиль подготовки. Он идентифицирует приложение и его возможности, то есть создается для каждого приложения отдельно.

  1. Перейдите на портал разработчика Apple, выберите «Profiles» и нажмите ➕
  2. Выберите «App Store» в разделе «Distribution»
  3. Выберите идентификатор приложения, который мы создали ранее (у меня com.solar2d.solar2demo)
  4. На следующей странице выберите сертификат, который мы только что создали. Единственный способ который я знаю чтобы их отличать - это по дате истечения годности - должен быть ровно год от даты создания
  5. На следующей странице введите имя «distribution» и нажмите «Generate»
  6. Скачайте сгенерированный профиль. Если ваш файл назван по-другому, обязательно переименуйте его в distribution.mobileprovision, так как инструменты сборки ожидают, что файл будет именно так называться
  7. Загрузите файл, заменив шаблон в каталоге Util в вашем репозитории, как в конце предыдущего раздела

5. Создание приложений в App Store

Нам нужно создать приложение в App Store чтобы загружать и тестировать его

  1. Перейдите на сайт App Store Connect: https://appstoreconnect.apple.com/
  2. Войдите в систему, прочтите и примите все пользовательские соглашения
  3. Выберите «My Apps»
  4. В заголовке рядом с «Apps» нажмите кнопку ➕ и выберите «New App»
  5. Во всплывающем окне:
    1. Выберите iOS в качестве платформы
    2. Назовите свое приложение, например, Solar2Demo
    3. Выберите язык, который вам подходит, например, English (U.S.)
    4. Идентификатор приложения, который мы создали ранее (для меня это «Solar2D Demo App - com.solar2d.solar2demo»)
    5. Какой-то SKU для идентификации приложения, например Solar2Demo
    6. Выберите «Full Access» и нажмите «Create»
  6. Через несколько секунд откроется страница со списком приложений
  7. Это окно браузера понадобится вам позже для настройки тестировщиков, так что оставьте его открытым

Проверка

На этот момент, у вас должно быть следующее:

  • 4 секрета в настройках репозитория :
    • AppleUser
    • ApplePassword
    • AppleTeamId (Необязательно)
    • CertPassword
  • В каталоге Util заменены 2 файла :
    • Util/distribution.p12
    • Util/distribution.mobileprovision

Сборка и загрузка приложения

Теперь самое интересное. Сборка и загрузка приложения

  1. Перейдите в репозиторий GitHub и выберите «Actions» в строке меню
  2. Выберите «Build and Deliver» на боковой панели
  3. Выберите «Run Workflow», оставьте все параметры по умолчанию и подтвердите, нажав зеленую кнопку

Готово!

Это запустит сборку. Сама сборка должна завершится примерно за 3-10 минут, она также загрузит созданное в App Store Connect, где оно будет проходить автоматическую обработку. Иногда это может занять довольно много времени

Тестирование

Сразу после того, как GitHub отправило сборку, вы можете настроить тестирование. Для этого:

  1. Перейдите на портал App Store Connect, выберите «My Apps» и щелкните свое приложение
  2. В верхнем меню выберите «TestFlight», а затем на боковой панели в разделе «Internal Group» выберите «App Store Connect Users»
  3. Нажмите ➕ возле «Testers» и добавьте хотя бы себя
  4. Вам будет отправлено электронное письмо. Откройте это письмо на iOS устройстве и нажмите на кнопку в нем. Должно запуститься приложение TestFlight и предложить вам присоединиться к тестированию приложения

Когда обработка сборки будет завершена, вы получите электронное письмо. Используйте TestFlight, чтобы установить приложение и тестируйте его на своем устройстве

Последующие сборки

Когда сборка и TestFlight уже настроены, все, что вам нужно сделать, - это закоммитить свой код, перейти к «Build and Deliver» в Actions вашего репозитория и нажать «Run Workflow»

Затем дождитесь уведомления и обновите приложение в TestFlight. Эту же сборку потом можно опубликовать в App Store

Что дальше

Замените проект в каталоге Project своими творениями. Как правило, рекомендуется использовать систему управления версиями, такую ​​как Git, чтобы иметь историю изменений в вашем проекте и не потерять весь код из-за какой-то странной аварии. Вы можете клонировать репозиторий на свой компьютер, изменять содержимое, комитить изменения и создавать новые сборки. Когда обновление будет готово, тестируйте его при помощи TestFlight

Другой вариант - интегрировать скрипты в ваши существующие проекты на GitHub. Все, что вам нужно, находится в файлах .github/workflows/build.yml и Util/build.sh

Скажите спасибо ❤️ (бесплатно, без СМС)

Если вам нравится этот шаблон и руководство, не забудьте отметить проекты звездочкой на GitHub:

Поддержите проект

Solar2D - это игровой движок с полностью открытым исходным кодом, для существования которого требуются пожертвования пользователей. Рассмотрите возможность поддержки проекта на Patreon

Примечания

GitHub Actions имеют ограничения на использование, особенно для проектов в приватных репозиториях. Обязательно ознакомьтесь с ними. На данный момент минута для macOS равна 10 бесплатных минут для Linux и стоит 8 центов после превышения бесплатного лимита. Итого, в настоящее время у вас есть 200 бесплатных минут для сборки в приватных репозиториях. Этого более чем достаточно, чтобы билдить один или два раза в неделю. Вам не нужно вводить кредитную карту или что-то еще, пока у вас не закончатся бесплатные минуты, но даже если вы это сделаете, эту цену трудно превзойти

Вопросы/пожелания

Если у вас есть какие-либо вопросы, сообщите о них на https://github.com/solar2d/demo-app-store-automation/issues

Наслаждайтесь и создавайте потрясающие игры с Solar2D!