Ember Cordova 应用卡在 iOS 11.3 的加载屏幕上
Ember Cordova app stuck on loading screen in iOS 11.3
我有一个使用 Corber 为 Ember-Cordova 构建的应用程序。
Xcode 版本 9.3
科尔多瓦-ios@4.5.4
所有依赖项更新到最新版本。
我正在模拟器上进行测试,因为我没有可以安装 iOS 11.
的开发 iPhone
该应用程序在 iOS 11.2 和更早版本上加载良好 - 但在 iOS 11.3 上它卡在启动画面上。过了一会儿,我看到一个加载图标,但页面从未改变。
通过在应用程序开始加载后立即使用 Safari 进行分析,我可以看到 js 脚本和 css 没有从 /www/index.html 加载。这是我在控制台日志中看到的:
Cannot load script
file:///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.
Failed integrity metadata check.
我试图在 'integrity metadata check' 上查找信息,据我所知,iOS 正在 运行 验证正在导入的脚本的校验和.在 Xcode 内的 /www/index.html 中,我可以看到脚本标签具有 "integrity" 属性,这是两个校验和 - 一个 sha256,一个 sha512。例如
<script src="assets/vendor-e8e903cf6a6bf0f81f23d4b68ae6ffde.js" integrity="sha256-MPm9fFc7ljuslonkMxW0TnQOAcy6KgJ4zLs+ptl/b58= sha512-oIqpQbUMPLBbSASoSCJ/+z55y2g6NlBzhTE3V+uDt8TNeJam5GAWoGT/D2u4ihIxE586JPu3c+r4GaUpjUWCAw=="></script>
所以我想发生的事情是 iOS 11.3 以某种方式检查文件的校验和,与它们的 "integrity" 属性 进行比较,但没有得到匹配。有谁知道可能导致这种情况发生的原因以及如何解决?
N.B。虽然从表面上看这是关于无法加载资源,但我不认为这与内容安全策略有关 - 我在 /www/index 中尝试了几次内容安全策略迭代。html - 最近:
default-src * gap://ready file:; style-src 'self' 'unsafe-inline' *;
script-src 'self' 'unsafe-inline' 'unsafe-eval' *
None 这些似乎有所作为,如果这是一个问题,我希望看到与内容安全策略相关的错误。
问题似乎与 cordova 插件有关:cordova-plugin-wkwebview-engine。
我不完全了解该插件如何与 iOS 一起使用,但它似乎与 iOS 11.3 一起使用效果不佳。删除插件就可以了。重建后应用正常加载。
我也遇到了这个问题。
目前我通过编辑构建命令生成的 index.html 来解决它,只从脚本标签中删除完整性属性。
这至少在模拟器中得到了 运行。
等着看是否通过应用商店审核。
我们发现 ember-cli-sri
- http://blog.isleofcode.com/untitled/
存在问题
ember-cli-sri repo 上的这条评论为我们解决了这个问题。
https://github.com/jonathanKingston/ember-cli-sri/issues/33#issuecomment-378448379
我有一个使用 Corber 为 Ember-Cordova 构建的应用程序。 Xcode 版本 9.3 科尔多瓦-ios@4.5.4 所有依赖项更新到最新版本。
我正在模拟器上进行测试,因为我没有可以安装 iOS 11.
的开发 iPhone该应用程序在 iOS 11.2 和更早版本上加载良好 - 但在 iOS 11.3 上它卡在启动画面上。过了一会儿,我看到一个加载图标,但页面从未改变。
通过在应用程序开始加载后立即使用 Safari 进行分析,我可以看到 js 脚本和 css 没有从 /www/index.html 加载。这是我在控制台日志中看到的:
Cannot load script file:///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. Failed integrity metadata check.
我试图在 'integrity metadata check' 上查找信息,据我所知,iOS 正在 运行 验证正在导入的脚本的校验和.在 Xcode 内的 /www/index.html 中,我可以看到脚本标签具有 "integrity" 属性,这是两个校验和 - 一个 sha256,一个 sha512。例如
<script src="assets/vendor-e8e903cf6a6bf0f81f23d4b68ae6ffde.js" integrity="sha256-MPm9fFc7ljuslonkMxW0TnQOAcy6KgJ4zLs+ptl/b58= sha512-oIqpQbUMPLBbSASoSCJ/+z55y2g6NlBzhTE3V+uDt8TNeJam5GAWoGT/D2u4ihIxE586JPu3c+r4GaUpjUWCAw=="></script>
所以我想发生的事情是 iOS 11.3 以某种方式检查文件的校验和,与它们的 "integrity" 属性 进行比较,但没有得到匹配。有谁知道可能导致这种情况发生的原因以及如何解决?
N.B。虽然从表面上看这是关于无法加载资源,但我不认为这与内容安全策略有关 - 我在 /www/index 中尝试了几次内容安全策略迭代。html - 最近:
default-src * gap://ready file:; style-src 'self' 'unsafe-inline' *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *
None 这些似乎有所作为,如果这是一个问题,我希望看到与内容安全策略相关的错误。
问题似乎与 cordova 插件有关:cordova-plugin-wkwebview-engine。
我不完全了解该插件如何与 iOS 一起使用,但它似乎与 iOS 11.3 一起使用效果不佳。删除插件就可以了。重建后应用正常加载。
我也遇到了这个问题。 目前我通过编辑构建命令生成的 index.html 来解决它,只从脚本标签中删除完整性属性。 这至少在模拟器中得到了 运行。 等着看是否通过应用商店审核。
我们发现 ember-cli-sri
- http://blog.isleofcode.com/untitled/
ember-cli-sri repo 上的这条评论为我们解决了这个问题。 https://github.com/jonathanKingston/ember-cli-sri/issues/33#issuecomment-378448379