Автоматический вход в Xcode с действиями github? ⇐ IOS
Автоматический вход в Xcode с действиями github?
Я хочу иметь рабочий процесс действий GitHub для автоматического создания моей отладочной и выпускаемой сборки, когда я запускаю свою ветку с помощью fastlane, но у меня возникли некоторые проблемы, и я хотел посмотреть, есть ли у кого-нибудь какие-либо данные:
Сначала я хотел использовать автоматический вход в xcode, но fastlane продолжал говорить, что мне нужна учетная запись, связанная с xcode, поэтому я попытался использовать это в fastlane:
полоса :myLaneToBuildDev do инкремент_билд_номер(xcodeproj: "App/App.xcodeproj") build_app(workspace: "App.xcworkspace", схема: "App", конфигурация: "Debug", Export_method: "ad-hoc", xcargs: "-allowProvisioningUpdates -authenticationKeyID #{ENV["APPSTORE_CONNECT_API_KEY"]} -authenticationKeyIssuerID #{ ENV["APPSTORE_CONNECT_ISSUER_ID"]} -authenticationKeyPath #{File.expand_path('pathToP8')}") firebase_app_distribution(app: ENV["FIREBASE_PRO_APP_ID"], service_credentials_file: ENV["SERVICE_CREDENTIALS_FILE_PATH"], groups: "developers", Release_notes: "Множество потрясающих новых функций для тестирования!") slack(сообщение: «Новая сборка Firebase для приложения успешно распространена», slack_url: ENV["FASTLANE_SLACK_URL"], канал: ENV["FASTLANE_SLACK_CHANNEL"]) конец Я думаю, что он должен работать с автоматическим входом в систему из xcode. У меня больше нет ошибок входа в систему, но моя сборка блокирует создание шага dSYM.
[12:37:20]: ▸ Компиляция LaunchScreen.storyboard [12:37:20]: ▸ Обработка App.plist [12:37:21]: ▸ Привязка приложения [12:37:22]: ▸ Генерация 'App.app.dSYM' ##[debug]Повторно оценить условие отмены задания для шага: «Запустить fastlane». Ошибка: операция отменена. Я также пытался загрузить все профили подготовки и настроить сертификаты в рабочем процессе действий github, чтобы попытаться войти таким способом, но у меня все еще была ошибка «нет учетной записи»:
имя: Сборка на: толкать: ветви: - 'релизы/приложение-**' параллелизм: группа: build-ios-${{ github.ref }} отмена в процессе: правда вакансии: строить: разрешения: запись всего продолжение: macos-13 шаги: - использует: действия/checkout@v2 - использует: действия/кэш@v2 с: путь: капсулы ключ: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} ключи восстановления: | ${{ runner.os }}-pods- - имя: установить сертификат Apple и профиль обеспечения. окружение: PROD_CERTIFICATE_BASE64: ${{ secrets.IOS_PROD_P12 }} DEV_CERTIFICATE_BASE64: ${{ secrets.IOS_DEV_P12 }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} запустить: | эхо $PROD_CERTIFICATE_BASE64 | base64 --decode > prod.p12 эхо $DEV_CERTIFICATE_BASE64 | base64 --decode > dev.p12 безопасность create-keychain -p $KEYCHAIN_PASSWORD build.keychain безопасность по умолчанию-keychain -s build.keychain безопасность разблокировки-keychain -p $KEYCHAIN_PASSWORD build.keychain импорт безопасности prod.p12 -k build.keychain -P $P12_PASSWORD -T /usr/bin/codesign импорт безопасности dev.p12 -k build.keychain -P $P12_PASSWORD -T /usr/bin/codesign список-разделов безопасности set-key -S apple-tool:,apple:,codesign: -s -k $KEYCHAIN_PASSWORD build.keychain - имя: «Загрузить профили обеспечения для разработчиков» использует: apple-actions/download-provisioning-profiles@v1 если: содержит (github.ref, 'релизы/приложение') с: идентификатор пакета: 'com.*.*.dev' тип профиля: 'IOS_APP_DEVELOPMENT' идентификатор эмитента: ${{ secrets.APPSTORE_ISSUER_ID }} API-ключ-идентификатор: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} - имя: «Загрузить версию профилей обеспечения» использует: apple-actions/download-provisioning-profiles@v1 если: содержит (github.ref, 'релизы/приложение') с: идентификатор пакета: 'com.*.*' тип профиля: 'IOS_APP_STORE' идентификатор эмитента: ${{ secrets.APPSTORE_ISSUER_ID }} API-ключ-идентификатор: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} - имя: Настройка файла netrc для Mapbox. запустить: echo "machine api.mapbox.com" > ~/.netrc && echo "loginmapbox" >> ~/.netrc && echo "password ${{ secrets.MAPBOX_SECRET }}" >> ~/.netrc - имя: Зависимости пакета запустить: установка пакета - имя: зависимости CocoaPods запустить: установка пакета exec pod - название: Беги по быстрой полосе запустить: пакет exec fastlane myLaneToBuildDev - имя: Очистить связку ключей и профиль подготовки. если: ${{ всегда() }} запустить: | безопасность удаления-связки ключей build.keychain cat /Users/runner/Library/Logs/gym/*-*.log Кроме того, мое приложение сделано с использованием фреймворков, поэтому оно немного модульное, потому что у меня есть 2 приложения, и некоторые коды у них общие (но фреймворки не должны быть подписаны)
Итак, в завершение моих вопросов:
[*]Предполагается ли, что способ использования ключа API Appstore Connect работает с автоматическим входом с помощью xcode? Если да, я могу удалить этапы загрузки, а также всю настройку p12 и сертификатов? [*]Даже если я загрузил все сертификаты и профиль обеспечения с помощью рабочего процесса, у меня возникли проблемы со входом в систему, как будто учетная запись xcode имеет приоритет, даже если она не настроена? [*]Почему сборка блокируется на этапе создания dSYM? Можно ли это связать со знаком? Возможно, он не может войти по ключам, но у меня нет ошибок.
Спасибо за прочтение и извините за длинный пост!
РЕДАКТИРОВАТЬ: Наконец мне удалось решить мою проблему: это был конфликт между тем фактом, что я загружаю сертификаты и создаю с ними связку ключей, и между тем фактом, что я использую автоматическую аутентификацию Appstore Connect...
Поэтому я удалил всю часть, где я загружаю сертификаты и профили подготовки
Я хочу иметь рабочий процесс действий GitHub для автоматического создания моей отладочной и выпускаемой сборки, когда я запускаю свою ветку с помощью fastlane, но у меня возникли некоторые проблемы, и я хотел посмотреть, есть ли у кого-нибудь какие-либо данные:
Сначала я хотел использовать автоматический вход в xcode, но fastlane продолжал говорить, что мне нужна учетная запись, связанная с xcode, поэтому я попытался использовать это в fastlane:
полоса :myLaneToBuildDev do инкремент_билд_номер(xcodeproj: "App/App.xcodeproj") build_app(workspace: "App.xcworkspace", схема: "App", конфигурация: "Debug", Export_method: "ad-hoc", xcargs: "-allowProvisioningUpdates -authenticationKeyID #{ENV["APPSTORE_CONNECT_API_KEY"]} -authenticationKeyIssuerID #{ ENV["APPSTORE_CONNECT_ISSUER_ID"]} -authenticationKeyPath #{File.expand_path('pathToP8')}") firebase_app_distribution(app: ENV["FIREBASE_PRO_APP_ID"], service_credentials_file: ENV["SERVICE_CREDENTIALS_FILE_PATH"], groups: "developers", Release_notes: "Множество потрясающих новых функций для тестирования!") slack(сообщение: «Новая сборка Firebase для приложения успешно распространена», slack_url: ENV["FASTLANE_SLACK_URL"], канал: ENV["FASTLANE_SLACK_CHANNEL"]) конец Я думаю, что он должен работать с автоматическим входом в систему из xcode. У меня больше нет ошибок входа в систему, но моя сборка блокирует создание шага dSYM.
[12:37:20]: ▸ Компиляция LaunchScreen.storyboard [12:37:20]: ▸ Обработка App.plist [12:37:21]: ▸ Привязка приложения [12:37:22]: ▸ Генерация 'App.app.dSYM' ##[debug]Повторно оценить условие отмены задания для шага: «Запустить fastlane». Ошибка: операция отменена. Я также пытался загрузить все профили подготовки и настроить сертификаты в рабочем процессе действий github, чтобы попытаться войти таким способом, но у меня все еще была ошибка «нет учетной записи»:
имя: Сборка на: толкать: ветви: - 'релизы/приложение-**' параллелизм: группа: build-ios-${{ github.ref }} отмена в процессе: правда вакансии: строить: разрешения: запись всего продолжение: macos-13 шаги: - использует: действия/checkout@v2 - использует: действия/кэш@v2 с: путь: капсулы ключ: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} ключи восстановления: | ${{ runner.os }}-pods- - имя: установить сертификат Apple и профиль обеспечения. окружение: PROD_CERTIFICATE_BASE64: ${{ secrets.IOS_PROD_P12 }} DEV_CERTIFICATE_BASE64: ${{ secrets.IOS_DEV_P12 }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} запустить: | эхо $PROD_CERTIFICATE_BASE64 | base64 --decode > prod.p12 эхо $DEV_CERTIFICATE_BASE64 | base64 --decode > dev.p12 безопасность create-keychain -p $KEYCHAIN_PASSWORD build.keychain безопасность по умолчанию-keychain -s build.keychain безопасность разблокировки-keychain -p $KEYCHAIN_PASSWORD build.keychain импорт безопасности prod.p12 -k build.keychain -P $P12_PASSWORD -T /usr/bin/codesign импорт безопасности dev.p12 -k build.keychain -P $P12_PASSWORD -T /usr/bin/codesign список-разделов безопасности set-key -S apple-tool:,apple:,codesign: -s -k $KEYCHAIN_PASSWORD build.keychain - имя: «Загрузить профили обеспечения для разработчиков» использует: apple-actions/download-provisioning-profiles@v1 если: содержит (github.ref, 'релизы/приложение') с: идентификатор пакета: 'com.*.*.dev' тип профиля: 'IOS_APP_DEVELOPMENT' идентификатор эмитента: ${{ secrets.APPSTORE_ISSUER_ID }} API-ключ-идентификатор: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} - имя: «Загрузить версию профилей обеспечения» использует: apple-actions/download-provisioning-profiles@v1 если: содержит (github.ref, 'релизы/приложение') с: идентификатор пакета: 'com.*.*' тип профиля: 'IOS_APP_STORE' идентификатор эмитента: ${{ secrets.APPSTORE_ISSUER_ID }} API-ключ-идентификатор: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} - имя: Настройка файла netrc для Mapbox. запустить: echo "machine api.mapbox.com" > ~/.netrc && echo "loginmapbox" >> ~/.netrc && echo "password ${{ secrets.MAPBOX_SECRET }}" >> ~/.netrc - имя: Зависимости пакета запустить: установка пакета - имя: зависимости CocoaPods запустить: установка пакета exec pod - название: Беги по быстрой полосе запустить: пакет exec fastlane myLaneToBuildDev - имя: Очистить связку ключей и профиль подготовки. если: ${{ всегда() }} запустить: | безопасность удаления-связки ключей build.keychain cat /Users/runner/Library/Logs/gym/*-*.log Кроме того, мое приложение сделано с использованием фреймворков, поэтому оно немного модульное, потому что у меня есть 2 приложения, и некоторые коды у них общие (но фреймворки не должны быть подписаны)
Итак, в завершение моих вопросов:
[*]Предполагается ли, что способ использования ключа API Appstore Connect работает с автоматическим входом с помощью xcode? Если да, я могу удалить этапы загрузки, а также всю настройку p12 и сертификатов? [*]Даже если я загрузил все сертификаты и профиль обеспечения с помощью рабочего процесса, у меня возникли проблемы со входом в систему, как будто учетная запись xcode имеет приоритет, даже если она не настроена? [*]Почему сборка блокируется на этапе создания dSYM? Можно ли это связать со знаком? Возможно, он не может войти по ключам, но у меня нет ошибок.
Спасибо за прочтение и извините за длинный пост!
РЕДАКТИРОВАТЬ: Наконец мне удалось решить мою проблему: это был конфликт между тем фактом, что я загружаю сертификаты и создаю с ними связку ключей, и между тем фактом, что я использую автоматическую аутентификацию Appstore Connect...
Поэтому я удалил всю часть, где я загружаю сертификаты и профили подготовки
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно найти подходящее место в Fastlane с действиями GitHub для проекта Swift Xcode
Anonymous » » в форуме IOS - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Интеграция Patrol с действиями GitHub для автоматизированных интеграционных тестов Flutter
Anonymous » » в форуме IOS - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-