ios - ionic ios build 在 ios 上工作时出错
问题描述
我在 ionic 版本 3 应用程序上工作我想将它发布到苹果商店我成功构建它但是何时提交它以审查应用程序被拒绝,因为
在通过 Wi-Fi 运行 iOS 13.7 的 iPad 上查看时,我们在您的应用程序中发现了一个或多个错误。您的应用程序启动并显示无响应的白屏,没有其他内容。
然后我开始了一个新的 ionic 3 项目,我遇到了同样的问题。我尝试使用 Cordova ios v6 和 v5 构建,但我遇到了同样的问题。我使用这些命令构建它
ionic cordova platform add ios
ionic cordova run ios --prod -l --external --emulator --consolelogs --target="C62C1D15-1BDF-433C-BD72-2D9957C5F0F7"
当我在 iPhone 模拟器上运行它时它运行良好但在 iPad 上给我这些问题
[app-scripts] [00:02:36] console.warn: Ionic Native: tried calling StatusBar.styleDefault, but Cordova is not available. Make sure to
[app-scripts] a) run in a real device or simulator and b) include cordova.js in your index.html
[app-scripts] [00:02:36] console.warn: Ionic Native: tried calling SplashScreen.hide, but Cordova is not available. Make sure to a)
[app-scripts] run in a real device or simulator and b) include cordova.js in your index.html
使用
科尔多瓦 v10.0.0
离子cli v6.11.0
解决方案
插件使用平台的本机代码。为了执行该代码,他们依赖于 Cordova。在加载 Cordova 之前执行插件代码时会抛出错误消息“Cordova 不可用”。
您应该确保所有与插件相关的代码仅在加载后才执行。您可以通过订阅平台就绪事件并仅在触发后执行插件代码来做到这一点。这方面的一个例子是 import { Platform } from 'ionic-angular';
@Component({...})
export MyApp {
constructor(public plt: Platform) {
this.plt.ready().then((readySource) => {
console.log('Platform ready from', readySource);
// Platform now ready, execute any required native code
});
}
}
推荐阅读
- reactjs - React - 如何编写 API 映射器?
- javascript - 我在 Metamask 上收到错误“未检查的 runtime.lastError:无法建立连接”
- azure - 如何使用 UDR 分析来自 Azure 中另一个 VM 的流量
- android - 如何为内核模块编写 Android.bp?
- excel - 我对 VBA 中的 counta 函数有疑问
- dart - VS Code dart 行格式,行到屏幕中心后的新行
- java - 如何从 InstanceClass 枚举映射到实际的 AWS 实例类型
- php - 如何优化在具有 50M 行的表中总共执行 4000 次的 MYSQL 选择语句
- python - 如何避免这个熊猫数据框的迭代
- compiler-errors - U-Boot:尝试包含 TPM 头文件时出现编译错误