Подтвердить что ты не робот

XCode Build не обновляет JS и HTML

Я использую XCode 5.0.2 и Cordova 3.4.0-0.1.3. Я нахожу это после создания проекта с помощью CLOS и открытие в XCode, никакие изменения в файле index.html и index.js никогда не переносятся на симулятор, когда Я нажимаю run. Мне нужно открыть терминал и выпустить команду Кордова Build, а затем запустить симулятор, и он работает

Я выполнил все инструкции здесь:

Phonegap - разработка и запуск приложения на симуляторе

xcode 4 + phonegap... не обновлять JS после сборки?

И ничто из этого не работает! любой из них имеет решение этого, потому что переключение туда и обратно становится болью.

4b9b3361

Ответ 1

Итак, после долгих поисков я, похоже, нашел решение, которое работает, вот что я сделал. Посмотрев на другие вопросы Stackoverflow, я обнаружил, что кто-то сказал, что это сработало для них.

Найдите файл с именем copy-www-build-step.sh.

Шахта была в [Project_folder]/platforms/ios/cordova/lib/copy-www-build-step.sh

В этом файле найдите строки, начинающиеся с rsync -a "...

Добавьте -c в строки rsync, чтобы они были готовы rsync -a -c"...

Ну, я пробовал это, и он не работал сам по себе. Я также попробовал ответ от Вилле, и это приблизилось, но не сигары. Наконец, я взял команду Ville и поместил ее в файл copy-www-build-step.sh

поэтому моя верхняя строка теперь

cd /path/to/your/cordova/project/
cordova prepare

SRC_DIR="www/"
DST_DIR="$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/www"
COPY_HIDDEN=
ORIG_IFS=$IFS
IFS=$(echo -en "\n\b")
.....
.....
.....etc etc 

И теперь я делаю изменения, и нажимаю run, bam all обновляется. Надеюсь, это поможет кому-то другому.

Ответ 2

Вы можете добавить предварительное действие script в свою сборку проекта XCode. Для этого:

  • Выберите "Продукт" > "Схема" > "Редактировать схему" в меню (или "на клавиатуре" )
  • Выберите "Сборка" > "Предварительные действия" слева.
  • Нажмите + и выберите "Новый запуск script Действие"
  • Добавьте script следующим образом:

    cd /path/to/your/cordova/project/
    cordova prepare ios > xcode-prepare-results.txt
    

Теперь XCode должен всегда запускать кордовую подготовку перед созданием вашего проекта, чтобы вам не приходилось переходить на терминал. Вы можете увидеть результат подготовки в файле xcode-prepare-results.txt.

Обратите внимание, что в зависимости от того, как настроен ваш исполняемый файл cordova и какой оболочки вы используете, вам может потребоваться либо изменить оболочку, либо изменить свой PATH, чтобы script нашел кордову.

Ответ 3

Другие ответы в этой ветке либо не работали для меня, либо прикручивали плагины cordova, например. InAppBrowser, поэтому я, наконец, придумал следующее:

Отредактируйте файл copy-www-build-step.sh и добавьте следующую строку в начале:

cp -fR ../../www/ www/

чтобы он выглядел так:

...
cp -fR ../../www/ www/ # new code

SRC_DIR="www/"
...

Таким образом, ваш код будет обновлен правильно, и ваши плагины будут работать

Ответ 4

Я также отредактировал файл copy-www-build-step.sh, однако вы не хотите использовать абсолютный путь из своей папки пользователя. Если вы работаете с другими разработчиками, вам придется изменить это каждый раз, когда вы проверяете код.

Это неважно, просто измените:

SRC_DIR="www/"

To:

SRC_DIR="../../www/"

UPDATE Работал для меня на Кордове и в телефоне.

Ответ 5

Чтобы исходные файлы автоматически копировались из исходного каталога www в каталог platform/ios/www, когда вы нажимаете кнопку "Выполнить" в XCode:

В XCode выберите Product- > Scheme- > Edit Scheme...
Разверните треугольник для Build- > Pre-actions
Нажмите "+", чтобы создать новое предварительное действие

Вы можете оставить поле "Shell" пустым.
Установите "Предоставить параметры сборки от" к проекту, который вы строите. Это важно.

В области script введите:

cd ${PROJECT_DIR}/../..
echo "--- Start ---" > xcode-prepare-ios-results.txt
echo "Running cordova prepare ios command..."
pwd >> xcode-prepare-ios-results.txt
cordova prepare ios --verbose >> xcode-prepare-ios-results.txt
echo "--- Finished ---"  >> xcode-prepare-ios-results.txt

Это работает для меня с XCode 8.2 и Apache Cordova 6.x

Ответ 6

Я предлагаю вам очистить, прежде чем создавать свой проект xcode. И еще одна вещь, убедитесь, что вы снова создаете свой проект, используя кордовую сборку, а не внутри xcode, потому что она совершенно другая.

cordova build yourproject

Ответ 7

@Ksliman Я немного изменил код, чтобы работать в моей системе и сделать немного более общим.

верхняя часть файла copy-www-build-step.sh

## New Code Begin ###

cd ../../
PATH=${PATH}:/usr/local/bin
cordova prepare ios

## New Code End ###

SRC_DIR="www/"

Ответ 8

Простые решения - это создать приложение с кордорой, используя:

sudo cordova build ios

Затем перейдите в xcode > Product > Clean

Затем перейдите в xcode > Run (Play Button)

Ответ 9

просто введите:

cordova prepare

на вашем терминале и снова запустить проект в Xcode

Ответ 10

Запустите "cordova prepare ios" во время фаз здания:

  • Открыть Xcode.
  • Выберите свой проект.
  • Перейдите к разделу "Сборка фаз".
  • Перейдите на "+", чтобы добавить "New Run Script Phase".
  • Переместите этот раздел перед "Копировать каталог www".
  • Добавьте следующие строки (для Mac):
    • cd /Users/*/YOUR_PROJECT_FOLDER (Измените папку проекта)
    • /Users/*/.nvm/versions/node/v?.?.?/bin/node node_modules/cordova/bin/cordova prepare ios (Изменить путь к версии node)

После "Воспроизвести" www-папка будет автоматически обновляться!

Ответ 11

Я обнаружил, что иногда Кордова путается... вам нужно сделать "кордовую платформу rm ios" (просто оставьте свои плагины в покое), а затем сделайте "платформу кордовы, добавьте iOS", которая переустановит все ваши плагины в ваша платформа... затем повторите попытку сборки.

Ответ 12

Все, что я должен был сделать, это включить полный абсолютный путь src для моего проекта. Например:

  • Из каталога проектов, платформ vim/ios/cordova/lib/copy-www-build-step.sh
  • измените SRC_DIR на абсолютный путь вашего www, SRC_DIR = "/Users/michael/Documents/Development/SampleMobileApp/www/"
  • Сохраните, создайте, и вам должно быть хорошо идти.

Ответ 13

Каждый раз, когда я использую cordova build, он переопределяет контент в моем конкретном для платформы файле www. Поэтому я использую cordova compile.

С помощью:

compile <platform> компилирует проект платформы без его подготовки

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

Ответ 14

Для меня была ошибка в моем коде. Мне просто нужно было запустить npm start, чтобы найти его.

Ответ 15

Если вы напрямую меняете html из Xcode, вы должны изменить код /​​html промежуточной папки, а не основной папки

В промежуточной папке вы получите ту же структуру, что и в основной папке, но она будет отображаться непосредственно в сборке xcode (iOS)

Папка для хранения

Примечание. Изменения, внесенные вами в xcode, будут заменены, когда вы будете строить снова из сборки/запуска кордоны, поэтому скопируйте свои изменения в основную папку, прежде чем делать команды по команде cordova.

Вы можете получить более подробную информацию из этого ответа: Цель создания папки в PhoneGap 3.4? Изменены только изменения в index.html в этой папке?

Это правильное решение, взятое из:

Кордова + Xcode 7.3 (html + Javascript) не изменяется или не обновляется при сборке и эмуляции