我正在尝试使用xcode模拟器,但在启动时始终出现此错误:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<WKWebViewConfiguration 0x7f9dce800d40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key _requiresUserActionForMediaPlayback.'
Run Code Online (Sandbox Code Playgroud)
我尝试卸载/重新安装cordova-plugin-ionic-webview,并用尽了在SO上可以找到的所有解决方案,但它们没有任何区别。
这是一个离子科尔多瓦项目,因此我无法更改xcode中的任何代码,因为下次我构建该项目时,它将被覆盖。任何其他解决方案将不胜感激。
我不确定是否相关,但是当我在命令行上执行android ionic仿真时,它可以工作,但是ios emulation没有,并且出现此错误:
/Users/path-to-project/platforms/ios/build/emulator/project.app/Info.plist file not found.
Run Code Online (Sandbox Code Playgroud)
问题是在ios之下没有创建任何构建文件夹,这可能就是为什么它无法在其中找到任何内容的原因。我想我已经将问题跟踪到了输出结果上方的以下消息中:
CONFIGURATION_BUILD_DIR = /Users/path-to-project/platforms/ios/build/emulator
SHARED_PRECOMPS_DIR = /Users/path-to-project/platforms/ios/build/sharedpch
Run Code Online (Sandbox Code Playgroud)
但是,我不知道这些配置在哪里设置。谁知道ionic从哪里获得这些配置的?
但是,一个问题浮现在脑海:如果CONFIGURATION_BUILD_DIR设置为此位置,为什么不在此处创建构建目录?
这是一种笨拙而又晦涩难懂的方法,它花了很长时间才弄清楚。
该溶液用于离子。Xcode有很多“解决方案”,但是它们不能用于离子项目,因为ios文件夹中的任何代码更改都将在下次编译时覆盖。
提示在消息中:_requiresUserActionForMediaPlayback。但是,消息的另一部分提到WKWebView,这是一条红色的鲱鱼,因为它实际上与问题无关。
实际的问题在于/cordova-plugin-background-mode/src/ios/ios/APPBackgroundMode.m文件中的cordova-plugin-background-mode插件。在类底部的swizzleWKWebViewEngine方法的末尾,更改:
forKey:@"_requiresUserActionForMediaPlayback"];
Run Code Online (Sandbox Code Playgroud)
至:
forKey:@"requiresUserActionForMediaPlayback"];
Run Code Online (Sandbox Code Playgroud)
即删除下划线。是的,这真的很简单,而且浪费了我一生的日子。
Github上提到了一个错误:https : //github.com/katzer/cordova-plugin-background-mode/issues/381。截至2018年10月9日,该插件已两年未更新,并且该错误在npm中仍未得到纠正,因此您必须自己进行更改,直到更改为止。
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |