代码之家  ›  专栏  ›  技术社区  ›  QuaintJames

在iOS 11.3中,Ember Cordova应用程序卡在加载屏幕上

  •  2
  • QuaintJames  · 技术社区  · 8 年前

    我有一个用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。这是我在控制台日志中看到的内容:

    无法加载脚本 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。 完整性元数据检查失败。

    我试图找到有关“完整性元数据检查”的信息,据我所知,iOS正在运行该检查以验证正在导入的脚本的校验和。在/www/index中。Xcode中的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不知何故正在检查文件的校验和,与它们的“完整性”属性进行比较,但没有得到匹配。有没有人知道是什么导致了这种情况的发生,以及如何修复这种情况?

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

    默认src*gap://ready文件:;样式src“self”“unsafe inline”*; 脚本src“self”“unsafe inline”“unsafe eval”*

    所有这些似乎都没有起到作用,如果内容安全策略出现问题,我希望看到与此相关的错误。

    3 回复  |  直到 8 年前
        1
  •  3
  •   John Polling    8 年前

    我们发现了问题 ember-cli-sri - http://blog.isleofcode.com/untitled/

    这份关于恩伯cli sri回购协议的评论为我们解决了这个问题。 https://github.com/jonathanKingston/ember-cli-sri/issues/33#issuecomment-378448379

        2
  •  1
  •   Phil Rennie    8 年前

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

        3
  •  -1
  •   QuaintJames    8 年前

    问题似乎出在cordova插件上:cordova插件wkwebview引擎。

    我不完全理解这个插件如何与iOS配合使用,但它似乎与iOS 11.3配合不好。删除插件就可以做到这一点。应用程序在重建后正常加载。