IBM Worklight - AppCenter app缺少插件'com.ibm.mobile.InstallerPlugin'

时间:2013-12-17 23:04:55

标签: ibm-mobilefirst worklight-appcenter

我有same problem as this user。我使用eclipse(AppCenter - > Run As - > Build All Environments)在xcode(iphone - > Run As - > Xcode项目)中打开它来构建IBM Worklight AppCenter客户端应用程序并在iphone中运行应用程序模拟器通过xcode。

在应用程序(用户名,密码,服务器,端口,上下文)中输入Worklight服务器凭据后,将显示“正在加载”消息,并且应用程序将停止运行。

我通过应用程序的javascript进行了调试,并将问题追溯到试图执行对Cordova本机插件的调用的应用程序:

cordova.exec(pSuccessCallback,                      // Success callback from the plugin
                     function(e){     
                        console.log("Error connecting to server [code, msg, status] = " 
                                + e.errorCode + ", "
                                + e.errorMsg + ", "
                                + e.httpCode);

                        pFailureCallback(e);
                     },                              
                     'com.ibm.mobile.InstallerPlugin',      // Tell cordova to run "com.ibm.mobile.InstallerPlugin" Plugin
                     'updateConnection',                    // Tell plugin, which action we want to perform
                     [pUsername, pPassword, pServerURL]);   // Passing list of args to the plugin         

此错误消息显示在xcode中:IBMAppCenter [2315:70b]错误:方法'updateConnection:'未在插件'com.ibm.mobile.InstallerPlugin'中定义

实现此插件的本机库位于预期的位置,但应用程序似乎看不到它们 - IBMAppCenter / apps / AppCenter / iphone / native / appCenterLib:

  • 调试-的iPhoneOS / libAppCenterInstallerLib.a
  • 推出-的iPhoneOS / libAppCenterInstallerLib.a
  • 调试-iphonesimulator / libAppCenterInstallerLib.a
  • 推出-iphonesimulator / libAppCenterInstallerLib.a

在应用程序中包含本机库是否还需要其他步骤?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

“updateConnection”方法在InstallerPlugin中定义。我认为这只是调用InstallerPlugin的第一种方法,因此问题可能是您不小心删除了安装程序插件。

目录IBMAppCenter / apps / AppCenter / iphone / native / appCenterLib必须包含不同版本的libAppCenterInstallerLib.a:

  • 调试-的iPhoneOS / libAppCenterInstallerLib.a
  • 推出-的iPhoneOS / libAppCenterInstallerLib.a
  • Debug-iphonesimulator / libAppCenterInstallerLib.a
  • 推出-iphonesimulator / libAppCenterInstallerLib.a

方法updateConnection包含在libAppCenterInstallerLib.a中。

如果缺少这些库,您可以从IBM Worklight的原始安装目录中复制它们。

在重新生成iphone或Android环境之前,请永远不要删除IBMAppCenter / apps / AppCenter的本机目录。如果删除本机目录,则删除这些必需的库,然后AppCenter客户端不起作用。

答案 1 :(得分:0)

我设法通过升级到Worklight 6.1来解决这个问题。

在最新版本的Cordova中,插件方法签名为has changed.

通过解压缩libAppCenterInstallerlib.a来验证这一点:

ar -x libAppCenterInstallerlib.a

然后运行:

nm IBMAppCenterPlugin.o

查找initInfo或updateConnection方法。如果它们在方法签名中有:withDict,那么在最新版本的Cordova中不推荐使用它。

使用Worklight 6.1中的AppCenter项目,我不再看到这个问题了。