Запись сценария упаковки мобильного терминала задачи синхронизации Mac

Во-первых, здесь подробно описывать скрипт автоматической упаковки не буду, я использовал python для написания скрипта для упаковки apk(aar) и ipa для загрузки pgy и fir и App Store в сочетании с работой оболочки.

 

Из Интернета есть много способов представить создание и использование задач по времени, не более чем crontab и launchctl. crontab — это задача по времени для системы linux, и macos также ее поддерживает. launchctl — это инструмент для выполнения задач по времени, рекомендованный macos.

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

#!/bin/sh

. /etc/profile

. ~/.bash_profile

source /etc/profile
source ~/.bash_profile


ln -s ~/Library/Keychains/login.keychain-db ~/Library/Keychains/login.keychain
security unlock -p ******* ~/Library/Keychains/login.keychain


python3 /Users/caoshixin/Desktop/AutoPackage/starkidapp/auto.py

Обнаруженные проблемы и решения перечислены ниже для записи:

1. Сначала проверьте, запущен ли cron:

launchctl list | grep cron

Если есть вывод контента, значит он включен и его можно использовать.Если нет, то запускаем службу cron

2. Самая главная проблема (запуск этой команды на отдельном терминале может выполняться, а после добавления задачи по расписанию появляются разные проблемы,)

Решение: Терминал использует среду, заданную в /etc/profile и ~/.bash_profile, но crontab для запланированной операции задачи находится в корневом каталоге диска, что не связано с пользовательской средой настройки. Так он сообщит об ошибке.

Идея обработки: добавьте эффективный код среды в исполняемый скрипт оболочки:

. /etc/profile

. ~/.bash_profile
# 或者(目前我觉得这两个方式的效果一样)
source /etc/profile
source ~/.bash_profile

3. Для вашего сценария оболочки нет проблем с разрешениями: выполнение задачи синхронизации crontab сообщает об ошибке. Операция не разрешена, и сообщение об ошибке похоже: sh: **********.sh: Операция не разрешена.

Решение: обратитесь к статье

Предоставьте cron полный доступ к диску, как показано ниже.

  • Системные настройки -> Безопасность и конфиденциальность -> Полный доступ к диску
  • Разблокируйте, чтобы разрешить изменения, здесь требуется пароль
  • Нажмите +, чтобы добавить cron в usr/sbin

Аналогично, если у sh или bash нет прав доступа, добавьте их сюда

4. crontab можно использовать, переключая среды:

# 修改定时任务填写方式,手动切换到脚本路径之后再执行脚本

* * * * * cd /server/ && /bin/sh test.sh >>/dev/null 2>&1

5. Пакет Android можно запустить, но не удается найти файл конфигурации для обычного пакета iOS, и появляется сообщение об ошибке:

ошибка: Не найден сертификат подписи «Разработка iOS»: Не найден сертификат подписи «Разработка iOS», соответствующий идентификатору команды «***************» с закрытым ключом. (в цели '*********')

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

разблокировка безопасности -p ******* ~/Library/Keychains/login.keychain

Здесь за -p следует пароль вашего компьютера. Кроме того, вы можете проверить, есть ли на вашем компьютере файл login.keychain в папке ~/Library/Keychains/. Если нет, то есть только один login.keychain-db, вы можете создать это перед этой командой Один ярлык называется login.keychain. Команда:

ln -s ~/Library/Связки ключей/login.keychain-db ~/Library/Связки ключей/login.keychain

Итак, для безопасности: добавьте сюда две строки команд:

ln -s ~/Library/Keychains/login.keychain-db ~/Library/Keychains/login.keychain
security unlock -p ******* ~/Library/Keychains/login.keychain

Дополнение: Так как эта разблокировка не постоянная, каждый раз при выполнении скрипта упаковки необходимо сначала выполнить команду разблокировки, а затем выполнить скрипт упаковки.

6. Есть проблема с таймингом упаковки iOS, а ручное выполнение команд этой проблемы не имеет:

Warning: CocoaPods is installed but broken. Skipping pod install.
  You appear to have CocoaPods installed but it is not working.
  This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
  This can usually be fixed by re-installing CocoaPods.
To re-install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

CocoaPods not installed or not in valid state.

Решение: (необходимо решить проблему, с которой я сейчас сталкиваюсь)

Supongo que te gusta

Origin blog.csdn.net/BUG_delete/article/details/123125519
Recomendado
Clasificación