XCode构build不更新JS和HTML
我正在使用XCode 5.0.2和Cordova 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项目的版本。 去做这个:
- 从菜单中select产品>scheme>编辑scheme(或在键盘上⌘<)
- 从左侧select“生成”>“预执行”
- 点击+并select“新build运行脚本操作”
-
添加一个这样的脚本:
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。 例如:
- 从你的项目目录下,vim platforms / ios / cordova / lib / copy-www-build-step.sh
- 将SRC_DIR更改为您的www的绝对path,SRC_DIR =“/ Users / michael / Documents / Development / SampleMobileApp / www /”
- 保存,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
”:
- 打开Xcode。
- select你的项目。
- 去“build立阶段”。
- 继续“+”添加“新build脚本阶段”。
- 在“复制www目录”之前移动此部分。
- 添加以下行(对于Mac):
-
cd /Users/*/YOUR_PROJECT_FOLDER
(更改您的项目文件夹) -
/Users/*/.nvm/versions/node/v?.?.?/bin/node node_modules/cordova/bin/cordova prepare ios
(更改到节点版本的path)
-
“播放”后,www文件夹将自动刷新!
- 停止iframe在phonegap项目中redirect/打开移动Safari
- 在Mac上,Cordova命令行编译在/ tmp中失败
- 如何在使用cordova文件插件时从iOS中导出文件?
- 在与Cordova使用相机之后,会收到iOS内存警告
- 为什么你需要2个Javascript文件用于跨平台Cordova插件?
- IOS设备可以使用html5video和phonegap / cordova从本地文件系统stream式传输m3u8分段video吗?
- Phonegap生成iOS camera.getPicture()质量参数不起作用
- Sencha在iPhone模拟器中parsingJSON,但不支持iPhone – phonegap
- 屏幕方向ios