XCode构build不更新JS和HTML

我正在使用XCode 5.0.2Cordova 3.4.0-0.1.3 – 我发现在使用Cordova CLI创build项目并在XCode中打开后,不会更改index.html文件和index.js文件当我点击运行的时候到模拟器。 我必须打开terminal,并发出一个Cordova Build命令,然后运行模拟器,它的工作原理

我遵循这里的所有说明:

Phonegap – 在模拟器上开发和启动应用程序

xcode 4 + phonegap …不更新构build时的JS?

而且没有任何作品! 任何一个人都可以解决这个问题,因为不得不来回切换正在变成一个痛苦。

所以经过大量search,我似乎find了一个可行的解决scheme,这就是我所做的。 看了其他Stackoverflow的问题后,我发现有人说这对他们有效。

find名为copy-www-build-step.sh的文件。

我在[project_folder] /platforms/ios/cordova/lib/copy-www-build-step.sh

在那个文件中,findrsync -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 

现在我做出改变,点击运行,bam全部更新。 我希望这可以帮助别人。

您可以将预执行脚本添加到您的XCode项目的版本。 去做这个:

  1. 从菜单中select产品>scheme>编辑scheme(或在键盘上⌘<)
  2. 从左侧select“生成”>“预执行”
  3. 点击+并select“新build运行脚本操作”
  4. 添加一个这样的脚本:

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

现在,XCode应该在构build项目之前始终运行cordova prepare,这样就不必跳转到terminal。 您可以在文件xcode-prepare-results.txt中看到准备的输出。

请注意,根据cordova可执行文件的设置以及您使用的shell,您可能必须更改shell或修改PATH以便脚本findcordova。

在这个线程中的其他答案要么不工作,要么搞砸cordova插件,如InAppBrowser,所以我终于想出了这个:

编辑文件copy-www-build-step.sh并在开始处添加以下行:

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

所以它应该看起来像:

 ... cp -fR ../../www/ www/ # new code SRC_DIR="www/" ... 

这样你的代码将被正确更新你的插件将工作

我也编辑了copy-www-build-step.sh文件,但是你不想使用你的用户文件夹的绝对path。 如果您正在与其他开发人员合作,则每次检出代码时都必须更改。

这不是什么大不了的,只是改变:

 SRC_DIR="www/" 

至:

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

更新在Cordova和Phonegap上为我工作。

要在XCode中单击“运行”button时将源文件自动从www源目录复制到platforms / ios / www目录:

在XCode中,selectProduct-> Scheme-> Edit Scheme …
展开“构build”>“预执行”的三angular形
点击“+”创build一个新的预执行

您可以将“shell”设置保留为空白。
将“提供构build设置”设置为您正在构build的项目。 这个很重要。

在脚本区域input:

 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有效

我build议你清理之前build立你的Xcode项目。 还有一件事,确保你使用cordova构build你的项目,而不是在xcode里面,因为它完全不同。

 cordova build yourproject 

@Ksliman我修改了你的代码,在我的系统上工作,稍微泛化一点。

文件顶部copy-www-build-step.sh

 ## New Code Begin ### cd ../../ PATH=${PATH}:/usr/local/bin cordova prepare ios ## New Code End ### SRC_DIR="www/" 

简单的解决scheme是与cordovabuild立应用程序使用:

 sudo cordova build ios 

然后去xcode> Product> Clean

然后去xcode>运行(播放button)

只需input:

 cordova prepare 

在你的terminal上,再在Xcode上运行你的项目

我发现有时Cordova会感到困惑…你需要做一个“cordova platform rm ios”(只留下你的插件),然后做一个“cordova平台添加iOS”,它将把所有的插件重新安装到你的平台上。 ..然后再尝试你的构build。

我所要做的就是为我的项目包含完整的srcpath。 例如:

  1. 从你的项目目录下,vim platforms / ios / cordova / lib / copy-www-build-step.sh
  2. 将SRC_DIR更改为您的www的绝对path,SRC_DIR =“/ Users / michael / Documents / Development / SampleMobileApp / www /”
  3. 保存,build立,你应该很好去。

每次我使用cordova build在我的平台特定的www文件中cordova build它的覆盖内容。 所以我使用cordova compile

从帮助:

编译<platforms>编译平台项目而不编写它

仅仅编译这些修改不是为了构build整个项目,尤其是如果您为许多平台创build移动应用程序,而且您必须进行一些特定于平台的改进,这一点很重要。

对我来说,我的代码中有一个错误。 我只需要运行npm start来find它。

如果您直接从Xcode更改HTML,那么您应该更改暂存文件夹的代码/ html,而不是主文件夹

在暂存文件夹中,您将获得与主文件夹中相同的结构,但它将直接反映在xcode(iOS)构build中

暂存文件夹

注意:当您从cordova build / run中重新生成时,您在xcode中所做的更改将被replace,因此请在启动cordova命令之前将您的更改复制到主文件夹中

你可以从这个答案中获得更多的信息:在PhoneGap 3.4暂存文件夹的目的? 只有对此文件夹中index.html的更改得到识别?

这是从以下方面正确的解决scheme:

Cordova + Xcode 7.3(html + Javascript)在构build和模拟时不会更改或更新

在build设阶段运行“ cordova prepare ios ”:

  1. 打开Xcode。
  2. select你的项目。
  3. 去“build立阶段”。
  4. 继续“+”添加“新build脚本阶段”。
  5. 在“复制www目录”之前移动此部分。
  6. 添加以下行(对于Mac):
    • cd /Users/*/YOUR_PROJECT_FOLDER (更改您的项目文件夹)
    • /Users/*/.nvm/versions/node/v?.?.?/bin/node node_modules/cordova/bin/cordova prepare ios (更改到节点版本的path)

“播放”后,www文件夹将自动刷新!