Ошибка сборки cordova, когда `узел cordova / lib / copy-www-build-step.js` в фазе сборки - PullRequest
0 голосов
/ 09 апреля 2019

Я веб-разработчик без опыта разработки под iOS.Сейчас я использую Cordova для создания приложения для iOS.Поскольку я ничего не знаю об iOS или Xcode, для меня это очень сложно.Я всегда получаю ошибку как следующий вывод, когда я встроен в XCode или встроенную командную строку.

  1. Информация об ошибке в сборке Xcode:
Run custome shell script 'Copy www directory'

PhaseScriptExecution Copy\ www\ directory /Users/jyjin/Library/Developer/Xcode/DerivedData/myios-auhioanpfinvvvcrnvoaioslreyr/Build/Intermediates.noindex/myios.build/Debug-iphonesimulator/myios.build/Script-304B58A110DAC018002A0835.sh (in target: myios)
    cd /Users/jyjin/workspace/gitProject/Cordova/FirstProject/platforms/ios
    /bin/sh -c /Users/jyjin/Library/Developer/Xcode/DerivedData/myios-auhioanpfinvvvcrnvoaioslreyr/Build/Intermediates.noindex/myios.build/Debug-iphonesimulator/myios.build/Script-304B58A110DAC018002A0835.sh

/Users/jyjin/Library/Developer/Xcode/DerivedData/myios-auhioanpfinvvvcrnvoaioslreyr/Build/Intermediates.noindex/myios.build/Debug-iphonesimulator/myios.build/Script-304B58A110DAC018002A0835.sh: line 2: 27158 Segmentation fault: 11  node cordova/lib/copy-www-build-step.js
Command PhaseScriptExecution failed with a nonzero exit code

Информация об ошибке в сборке из командной строки:
** BUILD FAILED **


The following build commands failed:
        PhaseScriptExecution Copy\ www\ directory /Users/jyjin/Library/Developer/Xcode/DerivedData/myios-auhioanpfinvvvcrnvoaioslreyr/Build/Intermediates.noindex/myios.build/Debug-iphonesimulator/myios.build/Script-304B58A110DAC018002A0835.sh
(1 failure)
xcodebuild: Command failed with exit code 65

Я прочитал множество решений на веб-сайтах и, наконец, обнаружил, что на этапе сборки был какой-то скрипт:

NODEJS_PATH=/usr/local/bin; NVM_NODE_PATH=~/.nvm/versions/node/`nvm version 2>/dev/null`/bin; N_NODE_PATH=`find /usr/local/n/versions/node/* -maxdepth 0 -type d 2>/dev/null | tail -1`/bin; XCODE_NODE_PATH=`xcode-select --print-path`/usr/share/xcs/Node/bin; PATH=$NODEJS_PATH:$NVM_NODE_PATH:$N_NODE_PATH:$XCODE_NODE_PATH:$PATH && node cordova/lib/copy-www-build-step.js

после проверки сообщения об ошибке несколько раз, я пытался удалить && node cordova/lib/copy-www-build-step.js в Этапы сборки , он успешно строится, но в html не ожидается никакого эффекта страницы (причина в том, что ресурс www не скопирован, я думаю).

и я попытался проверить некоторое значение PATH env в copy-www-build-step.js, поэтому я написал некоторый код журнала в copy-www-build-step.js, но не знаю, как печатать журналы js в Xcode.Потом я нашел cordova-plugin-console, но npm doc сказал, что он продублирован и содержит последнюю версию для Cordova, а моя тоже самая последняя.

О, Боже! Прошла одна неделя ... Я просто хочу создать приложение для iOS.Это так сложно играть.Призрак знает, что я испытал: настройка сертификатов, профиля, создание приложения Cordova с нуля, даже потратив 99 долларов на покупку учетной записи разработчика Apple ...

Просто хочу сам играть в приложение iOS в свободное время... надеюсь, кто-нибудь может мне помочь ~~

     -- From a desperate Chinese boy !

1 Ответ

0 голосов
/ 11 апреля 2019

О!Я исправил это ~

Во-первых, проверьте скрипт:

NODEJS_PATH=/usr/local/bin; NVM_NODE_PATH=~/.nvm/versions/node/`nvm version 2>/dev/null`/bin; N_NODE_PATH=`find /usr/local/n/versions/node/* -maxdepth 0 -type d 2>/dev/null | tail -1`/bin; XCODE_NODE_PATH=`xcode-select --print-path`/usr/share/xcs/Node/bin; PATH=$NODEJS_PATH:$NVM_NODE_PATH:$N_NODE_PATH:$XCODE_NODE_PATH:$PATH && node cordova/lib/copy-www-build-step.js

В настоящее время ошибка xcodebuild: Command failed with exit code 65.Это первая ошибка, && должна быть & при запуске в Mac.

И затем ошибка становится Command /bin/sh failed with exit code 127. И я нашел сообщение об ошибке xcode: node: command not found.

Итак, я запускаю find /usr/local/n/versions/node/* -maxdepth 0 -type d 2>/dev/null | tail -1 в командной строке.и получить путь к результату узла /usr/local/n/versions/node/11.12.0

run

node -v // v10.15.3

Поэтому я удаляю все сценарии в build_phases и даю ему путь к узлу для моего реального пути к узлу nvm, изменив build_phases, как показано ниже:

/Users/jyjin/.nvm/versions/node/v10.15.3/bin/node cordova/lib/copy-www-build-step.js

Успешная сборка!

Резюме!Сценарий cordova auto build_phases может не подходить для вашей среды, убедитесь, что фаза сборки может получить путь к вашему узлу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...