Настройте osxcross для сборки iOS APP в Ubuntu 18.04 LTS - PullRequest
0 голосов
/ 28 апреля 2020

Я сейчас работаю над проектом на основе 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:

  1. git clone [https://github.com/tpoechtrager/osxcross](https://github.com/tpoechtrager/osxcross)
  2. cd osxcross
  3. ./build_clang.sh
  4. Скачать Xcode 11.3.1 : https://developer.apple.com/download/more
  5. ./tools/gen_sdk_package.sh <path_to_xcode_xip_file>
  6. Скопируйте или переместите файл SDK в каталог tarballs/ OSXCross.
  7. UNATTENDED=1 ./build.sh
  8. Добавить путь к результату сборки в 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:

  1. git clone --depth=1 https://github.com/facebook/xcbuild
  2. cd xcbuild
  3. git submodule update --init
  4. make

Я понятия не имею, что делать дальше, чтобы успешно построить iOS APP на моем ком, или я должен просто отказаться и использовать компьютер с ОС Ma c в качестве бегуна GitLab для размещения процесса CD? Я готов услышать любой совет, чтобы получить другое понимание этого! Thx!

...