我有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:
在应用程序中包含本机库是否还需要其他步骤?
非常感谢任何帮助。
答案 0 :(得分:2)
“updateConnection”方法在InstallerPlugin中定义。我认为这只是调用InstallerPlugin的第一种方法,因此问题可能是您不小心删除了安装程序插件。
目录IBMAppCenter / apps / AppCenter / iphone / native / appCenterLib必须包含不同版本的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项目,我不再看到这个问题了。