Ember Cordova应用程序停留在iOS 11.3的加载屏幕上

时间:2018-04-19 22:42:21

标签: ios xcode cordova ember.js

我有一个用Corber为Ember-Cordova构建的应用程序。 Xcode版本9.3 cordova-ios@4.5.4 所有依赖项都更新为最新版本。

我在模拟器上进行测试,因为我没有可以安装iOS 11的开发iPhone。

该应用程序在iOS 11.2及更早版本上正常加载 - 但在iOS 11.3上,它会停留在启动画面上。过了一会儿,我看到一个加载图标,但页面永远不会改变。

一旦应用程序开始加载,通过Safari分析,我可以看到js脚本和css没有从/www/index.html加载。这是我在控制台日志中看到的:

  

无法加载脚本   文件:///Users/username/Library/Developer/CoreSimulator/Devices/07A01A47-573B-4D25-ABE3-AV9179985ABF/data/Containers/Bundle/Application/7976FE33-BLO3-21E9-A055-707AAC68468B/App%20Name.app /www/assets/vendor-e8t893cf6a6bg0f81f23d4a68ae6ffde.js。   完整性元数据检查失败。

我已尝试查找有关完整性元数据检查的信息,据我所知,它正由iOS运行以验证脚本的校验和进口。在Xcode中的/www/index.html中,我可以看到脚本标签具有"完整性"属性,这是两个校验和 - 一个sha256,一个sha512。 e.g。

<script src="assets/vendor-e8e903cf6a6bf0f81f23d4b68ae6ffde.js" integrity="sha256-MPm9fFc7ljuslonkMxW0TnQOAcy6KgJ4zLs+ptl/b58= sha512-oIqpQbUMPLBbSASoSCJ/+z55y2g6NlBzhTE3V+uDt8TNeJam5GAWoGT/D2u4ihIxE586JPu3c+r4GaUpjUWCAw=="></script>

所以我猜想发生了什么,iOS 11.3正在检查文件的校验和,与他们的&#34;完整性&#34;相比较。财产,而不是匹配。有谁知道可能导致这种情况发生的原因以及如何解决这个问题?

N.B。虽然从表面上看这是无法加载资源的,但我不认为这与内容安全策略有关 - 我已经在/ www /中尝试了几次内容安全策略的迭代index.html - 最近一次:

  

default-src * gap:// ready file:; style-src&#39; self&#39; &#39;不安全直插&#39; *;   script-src&#39; self&#39; &#39;不安全直插&#39; &#39;不安全-EVAL&#39; *

这些似乎没有任何影响,如果出现问题,我希望看到与内容安全政策相关的错误。

3 个答案:

答案 0 :(得分:3)

我们在ember-cli-sri - JsonProvider

中发现了此问题

这篇关于ember-cli-sri repo的评论为我们解决了这个问题。 http://blog.isleofcode.com/untitled/

答案 1 :(得分:0)

问题似乎是使用cordova插件:cordova-plugin-wkwebview-engine。

我不完全了解该插件如何与iOS配合使用,但它似乎与iOS 11.3并不相称。删除插件可以解决问题。应用程序在重建后正常加载。

答案 2 :(得分:0)

我也遇到了这个问题。 目前我通过编辑build命令生成的index.html来解决这个问题,只是从脚本标记中删除了integrity属性。 这至少使它在模拟器中运行。 等待查看是否通过appstore审核。