Я сейчас работаю над проектом на основе Cordova. Тем не менее, мне настоятельно рекомендуется настроить GitLab CD для доставки нашего iOS или Android APP клиенту как можно скорее. Я завершил конвейер CD GitLab для приложения Android, и мне трудно разобраться с конвейером CD для iOS, и поэтому я здесь, чтобы спросить о нем.
Прежде чем мы приступим Что касается проблемы, с которой я столкнулся, то моя конечная цель состоит в следующем: собрать приложение iOS в Ubuntu 18.04 LTS без использования виртуального, чтобы я мог создать образ docker для размещения всего процесса GitLab CD, который основан на системе Linux.
Первое, что пришло мне в голову - это создать образ, совместимый для нас, чтобы создать приложение iOS. После долгого времени опроса я обнаружил, что спасение проекта с открытым исходным кодом, похоже, спасло меня - osxcross , цель которого - обеспечить хорошо работающий кросс-инструментальный набор OS X для Linux, FreeBSD. , OpenBSD и Android (Termux). Так вот, я установил следующую цепочку инструментов вместе с readme, в результате чего возникла неловкая ситуация:
DONE Build complete. The src-cordova/www directory is ready to be deployed.
INFO Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
INFO executing "cordova clean ios" in folder /home/f26401004/Documents/kyronus/frontend/src-cordova
Running command: xcodebuild -project Kryonus.xcodeproj -configuration Debug -alltargets clean
osxcross: error: xcodebuild: unknown argument: '-project'
xcodebuild: Command failed with exit code 2
INFO executing "cordova build ios --release" in folder /home/f26401004/Documents/kyronus/frontend/src-cordova
cordova-custom-config: Skipping auto-restore of config file backup(s)
Command failed: xcrun simctl list --json
osxcross: warning: xcrun: ignoring environment variable 'DEVELOPER_DIR'
osxcross: error: xcrun: cannot find 'simctl' executable
Кажется, что xcrun не распознает аргумент simctl? И вот как я построил osxcross:
git clone [https://github.com/tpoechtrager/osxcross](https://github.com/tpoechtrager/osxcross)
cd osxcross
./build_clang.sh
- Скачать Xcode 11.3.1 : https://developer.apple.com/download/more
./tools/gen_sdk_package.sh <path_to_xcode_xip_file>
- Скопируйте или переместите файл SDK в каталог
tarballs/
OSXCross. UNATTENDED=1 ./build.sh
- Добавить путь к результату сборки в env PATH
Я убежден, что osxcross, похоже, работал хорошо, так как я создал test.cpp
файл для печати Hello World
, компилируя в исполняемый файл, который успешно выполняется на компьютере с операционной системой Ma c.
Поэтому я подумал, могу ли я решить такую проблему, используя xcodebuild напрямую, не вызывая командную строку Cordova для сборки моего iOS Приложение. Тем не менее, выяснилось, что мой xcodebuild оказался бесполезным, что предоставляло разработчикам только флаг -version.
f26401004@f26401004-PE62-7RD:~/Documents/kyronus/frontend$ xcodebuild
Only '-version' is supported by this stub tool
f26401004@f26401004-PE62-7RD:~/Documents/kyronus/frontend$
Поэтому я попытался использовать xcbuild , который совместим с Xcode инструмент сборки с целью обеспечения более быстрой сборки, лучшей документации по процессу сборки и работы на нескольких платформах (macOS, Linux и Windows) для непосредственной сборки моего iOS APP. Но все равно не получилось.
** BUILD FAILED **
The following build commands failed:
ProcessPCH /home/f26401004/Library/Developer/Xcode/DerivedData/Kryonus-gaiqundnpwcugadckbjklitdwnad/Build/Intermediates/CordovaLib.build/Release-iphoneos/CordovaLib.build/PrefixHeaders/CordovaLib-5924aa2d2a574b697e53874f62fe1f5a/CordovaLib_Prefix.pch.pch CordovaLib_Prefix.pch normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
f26401004@f26401004-PE62-7RD:~/Documents/kyronus/frontend$
Вот мои шаги по сборке xcbuild:
git clone --depth=1 https://github.com/facebook/xcbuild
cd xcbuild
git submodule update --init
make
Я понятия не имею, что делать дальше, чтобы успешно построить iOS APP на моем ком, или я должен просто отказаться и использовать компьютер с ОС Ma c в качестве бегуна GitLab для размещения процесса CD? Я готов услышать любой совет, чтобы получить другое понимание этого! Thx!