如何调试iOS Cordova插件的加载?

如何调试iOS Cordova插件的加载?,ios,cordova,ionic-framework,plugins,Ios,Cordova,Ionic Framework,Plugins,我正在开发Cordova插件,该插件封装了iOS和Android平台的messenger框架。 将此插件添加到应用程序项目时,ionic Cordova构建良好,iOS应用程序启动执行顺利。 我的问题是deviceready事件没有被触发,没有加载插件,就像加载系统刚刚悄悄退出一样,根本没有日志… 如果我删除此插件,devireceready将被触发,其他插件将正常加载 我试过: 将本机iOS实现从Swift 3重写为ObjC 没有添加这个插件 仅添加此插件并删除其他插件 少喝咖啡 多喝点咖啡

我正在开发Cordova插件,该插件封装了iOS和Android平台的messenger框架。 将此插件添加到应用程序项目时,ionic Cordova构建良好,iOS应用程序启动执行顺利。 我的问题是
deviceready
事件没有被触发,没有加载插件,就像加载系统刚刚悄悄退出一样,根本没有日志… 如果我删除此插件,
devireceready
将被触发,其他插件将正常加载

我试过:

  • 将本机iOS实现从Swift 3重写为ObjC
  • 没有添加这个插件
  • 仅添加此插件并删除其他插件
  • 少喝咖啡
  • 多喝点咖啡
plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android"
        id="cordova-plugin-lithium"
        version="0.1">
    <name>Lithium SMM Response messenger</name>
    <description>Cordova Lithium SMM Response messenger Plugin</description>
    <keywords>cordova,smm,lithium,response,messenger</keywords>

    <js-module src="www/LithiumMessenger.js" name="LithiumMessenger">
        <clobbers target="cordova.plugins.LithiumMessenger" />
    </js-module>

    <platform name="ios">
        <config-file target="config.xml" parent="/widget">
            <feature name="LithiumMessenger">
                <param name="ios-package" value="LithiumMessenger"/>
                <param name="onload" value="true" />
            </feature>
        </config-file>
        <header-file src="src/ios/LithiumMessenger.h" />
        <source-file src="src/ios/LithiumMessenger.m" />
        <framework src="src/ios/Lithium.framework" custom="true" embed="true" />
    </platform>
</plugin>
LithumMessenger.js

const exec = require('cordova/exec'),
const nativePluginName = 'LithiumMessenger';

exports.init = function(arg0, success, error) {
  exec(success, error, nativePluginName, "messengerInit", [arg0]);
}

从我在你的代码中看到的,对解决这个问题的可能方法,以及如何调试插件的Cordova加载过程,有一些了解是值得的,您的JS正在调用
init
,但是本机函数被调用
Messenger init
,这将导致运行时异常。我将在Xcode中调试您的iOS项目。在本机代码上放置运行时断点。还要检查Xcode控制台日志中的错误。谢谢,我已经更正了。这并不能解决问题,因为这部分代码没有加载(没有断点被命中),从我在你的代码中可以看到,你的JS正在调用
init
,但是本机函数被调用
Messenger init
,这将导致运行时异常。我将在Xcode中调试你的iOS项目。在本机代码上放置运行时断点。还要检查Xcode控制台日志中的错误。谢谢,我已经更正了。这并不能解决问题,因为这部分代码未加载(未命中断点)
const exec = require('cordova/exec'),
const nativePluginName = 'LithiumMessenger';

exports.init = function(arg0, success, error) {
  exec(success, error, nativePluginName, "messengerInit", [arg0]);
}