У меня есть сервер jenkins, подключающийся к удаленному Mac mini через ssh для выполнения сценария оболочки, который должен создать IPA из проекта Unity.
Когда сценарий оболочки выполняется локально на Mac Mini, всеидет нормально.Но когда сценарий оболочки запускается из jenkins (с тем же параметром и тем же пользователем), он не может кодировать подпись архива.
Я поделюсь с вами запутанным сценарием оболочки и журналом сборки.
Заранее благодарю за помощь.
Сценарий оболочки:
#!/bin/bash
# Consider directory paths initialized in parameter here
#
#
# Consider git cleaning / fetching commit here
#
#
# Consider environment / version and build name controls here
#
#
# Start Unity Build :
/Applications/Unity2017.4.10f1/Unity.app/Contents/MacOS/Unity -batchmode -quit -projectPath "$SOURCE_PATH" -executeMethod "BuildManager.BuildPlayer" -logFile "$BUILD_LOG_FILE" -buildEnvironment "$ENVIRONMENT" -buildPlatform "IOS" -buildPath "$TARGET_BUILD_DIR" -overrideVersion "$OVERRIDE_VERSION"
if [ ! -d "${TARGET_BUILD_DIR}/Unity-iPhone.xcodeproj" ]
then
echo "[ERR]Exporting unity project to Xcode failed."
exit 1
else
echo "Build successfull"
fi
#
#
# Consider initializing a param for the provisioning profile file path
#
#
# Consider initializing a param for the plist file path
cd $TARGET_BUILD_DIR
# archive generated xcode project
xcodebuild -scheme "Unity-iPhone" -archivePath "${DEPLOY_DIR_ROOT}/${BUILD_NAME}_${FILE_FORMAT_VERSION}/archive.xcarchive" -sdk iphoneos -configuration Release PROVISIONING_PROFILE="${PROVISIONING_PROFILE_PATH}" archive
if [ $? != 0 ]; then
echo "FAILED ARCHIVING XCODE PROJECT"
exit 1
fi
# export ipa from archive
xcodebuild -exportArchive -archivePath "${DEPLOY_DIR_ROOT}/${BUILD_NAME}_${FILE_FORMAT_VERSION}/archive.xcarchive" -exportOptionsPlist "${PLIST_PATH}" -exportPath "${DEPLOY_DIR_ROOT}/${BUILD_NAME}_${FILE_FORMAT_VERSION}"
if [ $? != 0 ]; then
echo "FAILED EXPORTING IPA FROM ARCHIVE"
exit 1
fi
#
# Section reserved for uploading the ipa to relevant remote storage
#
exit 0
Так что все работает как чудо (даже сборка может быть установлена на устройстве), когдаСкрипт оболочки запускается локально из терминала на Mac mini.
Когда он запускает скрипт оболочки удаленно через ssh, он не может кодировать архив.Пользователь, используемый через ssh, тот же, что и пользователь, используемый локально для запуска сценария.
Вот ошибка:
CodeSign / ####### / Library /Разработчик / Xcode / DerivedData / Unity-iPhone - ######### / Build / Intermediates.noindex / ArchiveIntermediates / Unity-iPhone / InstallationBuildProductsLocation / Applications / #########. App (в целевом приложении): Unity-iPhone) cd / ######### / xcodeProjPath export CODESIGN_ALLOCATE = / Applications / Xcode.app / Содержание / Разработчик / Наборы инструментов / XcodeDefault.xctoolchain / usr / bin / codesign_allocate
ПодписаниеИдентификационные данные: "#########" Профиль обеспечения: "Профиль обеспечения группы iOS: #########" (#########)
/usr / bin / codesign --force --sign ######### --entitlements / ######### / Библиотека / Разработчик / Xcode / DerivedData / Unity-iPhone - ######### / Build / Intermediates.noindex / ArchiveIntermediates / Unity-iPhone / IntermediateBuildFilesPath / Unity-iPhone.build / Release-iphoneos / Unity-iPhone.build / #########. App.xcent --timestamp = нет / ######### / Библиотека / Разработчик / Xcode / DerivedData / Unity-iPhone - ######### / Build / Intermediates.noindex / ArchiveIntermediates / Unity-iPhone / InstallationBuildProductsLocation / Applications / #########. app / ######### / Library / Developer / Xcode / DerivedData / Unity-iPhone - ######### / сборки / Intermediates.noindex / ArchiveIntermediates / Unity-iPhone / InstallationBuildProductsLocation / Применения / ######### .app: errSecInternalComponent
Сбой команды CodeSign с ненулевым кодом выхода
** СБОЙ АРХИВА **
Я застрял сейчас, так как все моипопытки не сработали совсем ... Заранее спасибо за помощь.
РЕДАКТИРОВАТЬ:
mac mini на macOS High Sierra Версия 10.13.6 (17G65)
Xcode Version 10.0 (10A255)