Tone.js 未在 iOs 上加载 Cordova

Tone.js doesn't load for Cordova on iOs

我正在尝试加载 Tone.js 库以在我的 Cordova 应用程序中使用 iOs 作为目标平台。 当我启动 iPhone 模拟器时,我在控制台中看到这个错误:

[shim] BKSProcessAssertion "ConnectionTerminationWatchdog" initialized with invalid pid

应用程序未加载,我只看到空白屏幕。

我试图从 CDN 加载库,如下所示:

<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/13.4.9/Tone.min.js" ></script>

还有本地文件系统:

<script src="js/libs/tone/13.4.9/Tone.min.js"></script>

似乎没有任何区别。当我尝试从 Safari 调试应用程序时,我发现网页甚至没有加载。似乎以某种方式加载库会使应用程序永远挂起,直到崩溃。

我尝试在没有库的情况下加载应用程序,然后尝试使用 javascript 从控制台加载它,如下所示:

$.getScript( "js/libs/tone/13.4.9/Tone.min.js", function( data, textStatus, jqxhr ) {
  console.log( data ); // Data returned
  console.log( textStatus ); // Success
  console.log( jqxhr.status ); // 200
  console.log( "Load was performed." );
});

在我 运行 这个命令之后,Safari 就死了,就像 Tone.js 或加载程序中有一个无限循环一样。我正在尝试不同版本的 Tone.js lib - 没有发现任何区别。

这是我使用的环境:

Cordova Packages:
    cli: 10.0.0
        common: 4.0.2
        create: 3.0.0
        lib: 10.0.0
            common: 4.0.2
            fetch: 3.0.0
            serve: 4.0.0

Project Installed Platforms:
    android: 9.0.0
    ios: 6.1.1

Project Installed Plugins:
    cordova-plugin-whitelist: 1.3.4

Environment:
    OS: macOS 11.1 (20C69) (darwin 20.2.0) x64
    Node: v14.5.0
    npm: 6.14.6

ios Environment:
    xcodebuild:
    Xcode 11.7
    Build version 11E801a

我检查了 iPhone 个模拟器日志。

事实证明,WKWebView 对象在解析 Tone.js 库时崩溃,因为 iPhone 模拟器上缺少一些与 protobuf 相关的库。

模拟器与我的 XCode (11.7) 版本捆绑在一起。我将 XCode 升级到版本 12.3,问题消失了。