XCode Build不更新JS和HTML

Ksl*_*man 19 javascript xcode ios cordova

我正在使用XCode 5.0.2Cordova 3.4.0-0.1.3 - 我发现在使用Cordova CLI创建项目并在XCode中打开后,没有对index.html文件和index.js文件进行任何更改点击运行时转到模拟器.我必须打开终端并发出Cordova Build命令,然后运行模拟器并且它可以工作

我按照这里的所有说明操作:

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

xcode 4 + phonegap ...在构建时不更新JS?

它都不起作用!任何人都可以解决这个问题,因为不得不来回切换会变得很痛苦.

小智 12

您可以在XCode项目的构建中添加一个预操作脚本.去做这个:

  1. 从菜单中选择产品>方案>编辑方案(或在键盘上⌘<)
  2. 从左侧选择Build> Pre-actions
  3. 单击+并选择"新建运行脚本操作"
  4. 添加如下脚本:

    cd /path/to/your/cordova/project/
    cordova prepare ios > xcode-prepare-results.txt
    
    Run Code Online (Sandbox Code Playgroud)

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

请注意,根据您的cordova可执行文件的设置方式以及您使用的shell,您可能需要更改shell或修改PATH以便脚本找到cordova.


Ksl*_*man 11

经过多次搜索,我似乎找到了一个有效的解决方案,这就是我所做的.在查看其他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的答案,但是拉得更紧,但没有雪茄.最后,我从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 Code Online (Sandbox Code Playgroud)

现在我进行更改,然后点击运行,bam全部更新.我希望这有助于其他人.

  • 不要使用解决方案或我上面说过的解决方案!它们都会引起很多奇怪的问题.在我的情况下,它会导致inappbrowser插件未正确部署到模拟器或真实设备.我认为我们应该坚持使用`cordova build` (4认同)

Yos*_*sho 7

这个帖子中的其他答案要么对我不起作用,要么搞砸了Cordova插件,例如InAppBrowser,所以我终于想出了这个:

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

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

所以看起来应该是这样的:

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

SRC_DIR="www/"
...
Run Code Online (Sandbox Code Playgroud)

这样,您的代码将得到正确更新,您的插件将正常工作


Rya*_*Ore 5

我还编辑了copy-www-build-step.sh文件,但您不想使用User文件夹中的绝对路径.如果您正在与其他开发人员合作,则每次签出代码时都必须更改它.

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

SRC_DIR="www/"
Run Code Online (Sandbox Code Playgroud)

至:

SRC_DIR="../../www/"
Run Code Online (Sandbox Code Playgroud)

更新 为Cordova和Phonegap工作.


小智 5

单击XCode中的"运行"按钮时,将源文件从www源目录自动复制到platforms/ios/www目录:

在XCode中,选择Product-> Scheme-> Edit Scheme ...
展开Build-> Pre-actions的三角形
单击"+"以创建新的Pre-action

您可以将"Shell"设置留空.
将"提供构建设置"设置为您正在构建的项目.这个很重要.

在脚本区域输入:

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
Run Code Online (Sandbox Code Playgroud)

这适用于XCode 8.2和Apache Cordova 6.x