IBM Worklight - в приложении AppCenter отсутствует плагин 'com.ibm.mobile.InstallerPlugin'
У меня та же проблема, что и у этого пользователя. Я создал клиентское приложение IBM Worklight AppCenter, используя eclipse (AppCenter -> Run As -> Build All Environments), открыл его в xcode (iphone -> Run As -> Xcode project) и запустил приложение в эмуляторе 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:
- Debug-iphoneos / libAppCenterInstallerLib.a
- Выпуск-iphoneos / libAppCenterInstallerLib.a
- Debug-iphonesimulator/libAppCenterInstallerLib.a
- Выпуск-iphonesimulator/libAppCenterInstallerLib.a
Есть ли дополнительные шаги, необходимые для включения собственных библиотек в приложение?
Любая помощь будет принята с благодарностью.
2 ответа
Метод "updateConnection" определяется в InstallerPlugin. Я думаю, что это просто первый метод, который вызывается из InstallerPlugin, поэтому проблема может заключаться в том, что вы случайно удалили плагин установщика.
Каталог IBMAppCenter/apps/AppCenter/iphone/native/appCenterLib должен содержать различные версии libAppCenterInstallerLib.a:
- Debug-iphoneos / libAppCenterInstallerLib.a
- Выпуск-iphoneos / libAppCenterInstallerLib.a
- Debug-iphonesimulator/libAppCenterInstallerLib.a
- Выпуск-iphonesimulator/libAppCenterInstallerLib.a
Метод updateConnection содержится в libAppCenterInstallerLib.a.
Если эти библиотеки отсутствуют, их можно скопировать из исходного установочного каталога IBM Worklight.
Пожалуйста, никогда не удаляйте собственные каталоги IBMAppCenter / apps / AppCenter перед восстановлением среды iphone или Android. Если вы удаляете собственные каталоги, вы удаляете эти необходимые библиотеки, а затем клиент AppCenter не работает.
Мне удалось это исправить путем обновления до Worklight 6.1.
В последних версиях Cordova подпись метода Plugin изменилась.
Проверьте это, распаковав libAppCenterInstallerlib.a с помощью:
ar -x libAppCenterInstallerlib.a
затем запустите:
nm IBMAppCenterPlugin.o
ищите методы initInfo или updateConnection. Если они имеют:withDict в сигнатуре метода, то это не рекомендуется в последних версиях Cordova.
Используя проект AppCenter из Worklight 6.1, я больше не вижу этой проблемы.