Javascript xcode 4+;电话缺口。。。不在构建时更新JS?
在过去的一个小时里,我遇到了一个让我挠头的奇怪问题 我正在使用Xcode 4和PhoneGap开发一款iPad应用程序。它使用jQuery。我已将所有JS放入scripts.JS文件中 事情进展顺利 我花了大约一个小时做了大量的CSS调整。我会更新CSS文件,停止应用程序,重建,然后推到iPad模拟器或我的iPad。这很好。CSS文件的每次更新都会反映在新构建中 然后我需要更新JS文件。我无法让事情正常工作,然后我终于意识到我的JS更改实际上没有一个被投入到构建中。我最终完全删除了我的JS文件,重新构建,但它仍然没有更新 我更新的文件正在项目文件夹中的finder中更新(我可以右键单击“在finder中查看”,该文件确实已更新)Javascript xcode 4+;电话缺口。。。不在构建时更新JS?,javascript,xcode4,Javascript,Xcode4,在过去的一个小时里,我遇到了一个让我挠头的奇怪问题 我正在使用Xcode 4和PhoneGap开发一款iPad应用程序。它使用jQuery。我已将所有JS放入scripts.JS文件中 事情进展顺利 我花了大约一个小时做了大量的CSS调整。我会更新CSS文件,停止应用程序,重建,然后推到iPad模拟器或我的iPad。这很好。CSS文件的每次更新都会反映在新构建中 然后我需要更新JS文件。我无法让事情正常工作,然后我终于意识到我的JS更改实际上没有一个被投入到构建中。我最终完全删除了我的JS文件,
所以我被难住了。xcode编译器是否以某种方式缓存JS文件,而不是获取更新的文件?有没有办法强迫它获取更新的JS 我现在没有mac电脑,但可以尝试的东西很少:
- 尝试查看您的项目构建(或预构建或其他)操作,其中应该复制www文件夹
- 尝试更改index.html并查看它是否有效
- 尝试将所有javascript代码复制粘贴到index.html脚本标记
- 尝试验证您的javascript(例如:Google闭包编译器),看看它是否没有问题
- 打开.plist文件
- 更改某些内容(在我的情况下,我每次重命名一个应用程序图标文件)
- 保存并构建
似乎苹果还有一些漏洞需要解决。我想我们必须耐心等待下一次4gig.x的放松 我发现有必要在单击菜单命令时按住选项按钮,该命令将命令从“清理”变为“清理构建文件夹…”,这导致我的资产被刷新。只需在XCode中向目标添加一个新的“运行脚本”构建阶段并粘贴以下内容:
touch -cm ${SRCROOT}/www
我刚刚遇到了这个问题,发布在这里的构建阶段命令(实际上现在由默认的Phonegap项目使用)对我不起作用,因为我正在Visual Studio中的Parallels Windows VM上编辑我的文件 我所做的是在我的项目的构建阶段使用这个:
find "${PROJECT_DIR}/www/." -exec touch -cm {} \;
这基本上是一种递归触摸。然后,我将VisualStudio设置为始终重新加载文件(如果已保存)。希望这能有所帮助。我不确定是谁做的,但我做了以下几点:
MyProject Info.plist中的图标值
Product->(保留选项)->清理生成文件夹
找到名为
copy www build step.sh
的文件
我的在[project_folder]/platforms/ios/cordova/lib/copy www-build-step.sh
在该文件中,找到以rsync-a“…
将-c添加到rsync行中,使它们准备就绪。rsync-a-c“…
copy-www-build-step.sh是将文件从www/复制到应用程序文件中的位置的脚本。rsync是他们使用的unix文件复制命令。如果没有-c,rsync只会比较每个文件和文件夹上的文件大小,并在大小发生变化时复制它们,并且几个空格或引号不算足够的变化。使用-c,它对它们进行校验和比较校验和,这将捕获最小的更改
我认为这将是最好的,因为这不是一个解决办法,它实际上解决了问题的原因。这些都不适合我:(
我能更新html和js的唯一方法是在命令行上运行“corodova run ios”。我在ios模拟器上也遇到了同样的问题,我尝试了上面的大多数建议,但没有成功,它不会接受我的更改。 后来,我想到了另一个可行的解决方案,它确实起了作用: 从模拟器中删除应用程序。(即,单击并按住图标,然后在其开始抖动时点击X,然后点击硬件主页) 然后从xCode重新运行
(注意:“cordova构建ios”也是必需的)上述工作没有任何解决方案 最后,我看到在使用Cordova的命令行工具创建的项目中有两个index.html文件和.js文件 因此,按照以下所示在“暂存文件夹”下进行更改
Xcode/Phonegap是否在编译之前尝试验证.js文件?可能是这样。让我通过JSLint运行它…不,它不会。它只复制您编写的任何内容。它只编译允许iOS运行Phonegap的Obj-C包装。Phonegap不进行js编译/转换。这有点烦人,尤其是当您习惯于开发firebug和friends的设备环境。这对我来说很有效(XCode 4.2.1,PhoneGap 1.3.0)。上面提到的“Clean Build Folder…”不起作用。现在,后续的JS更改将自动重建。我想知道是否有
touch$Build\u PRODUCTS\u DIR/$INFOPLIST\u PATH
预操作shell脚本(请参阅)这样做可以保持正常工作。这就像一个符咒。要支持带有空格的目录,应该在la周围添加引号