2013-12-17 46 views
2

我有same problem as this user。我使用eclipse(AppCenter - > Run As - > Build All Environments)构建了IBM Worklight AppCenter客户端应用程序,并在xcode(iphone - > Run As - > Xcode项目)中打开它,并通过xcode在iPhone模拟器中运行应用程序。IBM Worklight - AppCenter应用程序缺失插件'com.ibm.mobile.InstallerPlugin'

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

我已经通过应用程序的JavaScript调试和追踪问题的应用程序试图执行一个呼叫到科尔多瓦本地插件:

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

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

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

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

updateConnection方法包含在libAppCenterInstallerLib.a中。

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

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

+0

libAppCenterInstallerLib.a文件位于其预期位置。我已经更新了这个问题来反映这一点。 – benand

0

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

在最近版本科尔多瓦,插件方法签名has changed.

通过提取libAppCenterInstallerlib.a验证此的:

AR -x libAppCenterInstallerlib.a

然后运行:

nm IBMAppCenterPlugin.o

查找initInfo或updateConnection方法秒。如果他们在方法签名中包含:withDict,那么在最近版本的Cordova中已弃用此方法。

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

+0

但是,为什么你将此作为答案?删除它并编辑原始问题或者如果你想要的话,打开另一个问题 –

相关问题