确定 Cordova 无法在 iOs 9 中启动但在 iOs 10 中正常工作的原因

Posted

技术标签:

【中文标题】确定 Cordova 无法在 iOs 9 中启动但在 iOs 10 中正常工作的原因【英文标题】:Identify source cause for Cordova no launching in iOs 9 but works fine in iOs 10 【发布时间】:2017-01-23 18:44:33 【问题描述】:

正如标题所说,我遇到了 Cordova 在模拟器和设备上的 ios 10 中正常工作的问题,但没有在 iOs9 上启动(没有设备准备好触发,根本没有脚本启动。 它只显示 index.html 静态内容文件。 Xcode 在控制台中没有告诉我任何信息。

我使用的是最新版本的 Cordova,而且所有插件都是最新的。 我试图一个一个地停用每个插件,但没有任何反应,我对问题的原因一无所知。

这是我的配置文件,以防任何人有我在这里错过的直接根本原因:

欢迎任何其他关于调试方法的建议!

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.my-domain.myapp" version="2.0.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>revolution</name>
    <description> My Description </description>
    <author email="my_email" href="my_website"> Author detail </author>
    <content src="index.html" />
    <access origin="*" />
    <access origin="cdvfile://*" />
    <allow-navigation href="http://*/*" />
    <allow-navigation href="https://*/*" />
    <allow-navigation href="data:*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <preference name="StatusBarOverlaysWebView" value="false" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <icon  src="res/ios/icon-29.png"  />
        <icon  src="res/ios/icon-40.png"  />
        <icon  src="res/ios/icon-40-2x.png"  />
        <icon  src="res/ios/icon-50.png"  />
        <icon  src="res/ios/icon-57.png"  />
        <icon  src="res/ios/icon-58.png"  />
        <icon  src="res/ios/icon-57@2x-114.png"  />
        <icon  src="res/ios/icon-58@2x-116.png"  />
        <icon  src="res/ios/icon-60@2x-120.png"  />
        <icon  src="res/ios/icon-76@3x-180.png"  />
        <icon  src="res/ios/icon-60.png"  />
        <icon  src="res/ios/icon-60-2x.png"  />
        <icon  src="res/ios/icon-72.png"  />
        <icon  src="res/ios/icon-72@2x-144.png"  />
        <icon  src="res/ios/icon-76.png"  />
        <icon  src="res/ios/icon-29@3x-87.png"  />
        <icon  src="res/ios/icon-76@2x-152.png"  />
        <icon  src="res/ios/icon-50@2x-100.png"  />
        <splash  src="res/screen/ios/launch_iPh4x3-480.png"  />
        <splash  src="res/screen/ios/launch_iPh4x3@2x-960.png"  />
        <splash  src="res/screen/ios/launch_iPh5-1136.png"  />
        <splash  src="res/screen/ios/launch_iPh6-1334.png"  />
        <splash  src="res/screen/ios/launch_iPh6p-2208.png"  />
    </platform>
    <engine name="browser" spec="~4.1.0" />
    <engine name="ios" spec="~4.3.1" />
    <plugin name="cordova-plugin-camera" spec="~2.3.1">
        <variable name="CAMERA_USAGE_DESCRIPTION" value=" " />
        <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value=" " />
    </plugin>
    <plugin name="cordova-plugin-file-transfer" spec="~1.6.1" />
    <plugin name="cordova-plugin-file" spec="~4.3.1" />
    <plugin name="cordova-plugin-google-analytics" spec="~1.7.4" />
    <plugin name="cordova-plugin-whitelist" spec="~1.3.1" />
    <plugin name="cordova-plugin-badge" spec="~0.7.4" />
    <plugin name="cordova-plugin-device" spec="~1.1.3" />
    <plugin name="cordova-plugin-network-information" spec="~1.3.0" />
    <plugin name="cordova-plugin-statusbar" spec="~2.2.0" />
    <plugin name="cordova-plugin-splashscreen" spec="~4.0.0" />
    <plugin name="phonegap-plugin-barcodescanner" spec="~6.0.3" />
    <plugin name="cordova-plugin-console" spec="~1.0.4" />
    <plugin name="cordova-plugin-dialogs" spec="~1.3.0" />
    <plugin name="cordova-sqlite-storage" spec="~1.5.0" />
    <plugin name="cordova-plugin-googlemaps" spec="~1.4.0">
        <variable name="API_KEY_FOR_IOS" value="my_google_key" />
        <variable name="NSLOCATIONWHENINUSEUSAGEDESCRIPTION" value="Show your location on the map" />
        <variable name="NSLOCATIONALWAYSUSAGEDESCRIPTION" value="Trace your location on the map" />
    </plugin>
</widget>

【问题讨论】:

您找到问题的原因了吗? 【参考方案1】:

尝试检查您的 iOS 崩溃日志:

~/Library/Logs/CrashReporter/MobileDevice/&lt;DEVICE_NAME&gt;

Xcode > 窗口 > 管理器 > 设备选项卡 > 设备日志

管理器窗口的快捷方式是 cmd-shift-2。

【讨论】:

以上是关于确定 Cordova 无法在 iOs 9 中启动但在 iOs 10 中正常工作的原因的主要内容,如果未能解决你的问题,请参考以下文章

iOS Cordova 应用程序无法在设备上正确加载

CSS 动画在 iOS 上无法原生运行,但带有 Cordova 端口

Cordova iOS libMobileGestalt 错误应用程序无法加载

使用cordova 和 pixi.js 无法在 iPhone 上呈现画布

JQuery 在实际 IOS 设备上无法使用 Cordova 3.1.0,但可以在模拟器上使用

Ionic emulate ios:无法启动会话