IBM Worklight 6.1 - How can I remove the Tealeaf library? - eclipse-plugin

I need to remove the Tealeaf library from my Worklight application in order to have a lighter App (I'm using Eclipse Juno Service Release 2 Build id: 20130225-0426 with WorklightStudioPlugin version 6.1.0.01-20140311-2356 ).
I have modified my project following these steps:
In the application-descriptor.xml's Design view I've removed Optional Features > Analytics
Then I've removed the existing Tealeaf folder under native in iPhone’s environment
Finally I've removed from native\libs the library uicandroid.jar for Android
Is there any other option/configuration to set?
I receive the error below:
TLF_configurator.enable was called, but the required Tealeaf libraries are not present in the classpath.
I haven’t found any details in the official guide. There's only the procedure for adding Tealeaf, not for removing it.

If you remove the Analytics optional feature and rebuild your application/environments, it should have removed everything for you. Just changing the app descriptor XML file is not enough to do so. Did you rebuild your environment after removing the Analytics optional feature?
Also, make sure you are not enabling analytics in your code (by calling WL.Analytics.enable or setting analytics : {enabled : true} in your initOptions.js) and that you are not using the WL.Analytics API in your code.

Related

What are the changes required in build setting when added share extension in app and submit Enterprise build

What are the necessary changes required in build setting when added share extension in app and submitting it to Enterprise distribution.
There are no required build setting changes for any type of iOS extension. However, depending on how you want your app and share extension to interact, there are entitlements and capabilities that you may want to set for your application. You should check out a tutorial. A quick google search gave me these:
http://www.technetexperts.com/mobile/share-extension-in-ios-application-overview-with-example/
https://www.youtube.com/watch?v=TBC2m8BbcCE
Also, you don't have to submit builds for review for enterprise distribution.

IBM Ready Healthcare app migration from v6.3 to v8.0 issue

I am trying to migrate the IBM Ready Healthcare app (https://github.com/IBM-MIL/IBM-Ready-App-for-Healthcare) from v6.3 to v8.0.
I ran "mfpmigrate client ..." command from 'healthcare-mfpf' folder (folder structure shown below), and I got "No supported platforms were detected to migrate" error. Next, I ran the command "mfp add environment" in order to add the environment, that would add the platform. However, I get an error saying that there needs to be a hybrid app available to add environment. I had no luck on running the commands from apps folder as well (folder structure shown below).
Would anyone please kindly let me know the folder I should run the command from, or do I need to go through some extra steps before I can run the "mfpmigrage client ..." command.
Folder structure
Notice: please note that the Ready Apps are no longer maintained by IBM. Just take this under considerations
This project is a Hybrid app, meaning you need to first add it to MobileFirst Studio and then add a supported environment. The project does not come with environments by default.
Only once you do this step will the migration tool find a platform (= environment) to migrate from...
Looking at the file structure you've provided, it's wrong.
It shows:
Apps
- android
- iphone
It's supposed to be:
Apps
- some app
--- android
--- iphone
--- common
It could be that they call the app in the platform name, but that doesn't matter, it still needs to have the environment folder, so maybe to "Android" you need to add the "Android environment" (right-click > add environment...).
It could be because you thought this is Cordova app and used mfp add environment in the wrong filesystem location (also looks like you're trying to use a CLI instead of Studio?).
Looking at the GitHub repository, this whole structure is unconventional and it's not clear why they did it this way.
The links to the documentation there are also dead. This looks like a dead project.

MobileFirst AppCenter: Error while calling an adapter from iphone on login

I need to customize the login step of the MobileFirst AppCenter in order to make a call to an external service that creates the user in the DB if it doesn't exists, before performing the out-of-the-box login with the user provided.
In order to do this, I created and deployed an adapter that makes the call to the db, and in the AppCenter project, and I modified the code in the script /common/js/appcenter/views/Login.js (which is the script that actually performs the login), to include a call to the aforecited adapter, using the default method:
WL.Client.invokeProcedure(invocationData,options)
Building and running the app on Android, it works fine, the call to the adapter works like a charm and it creates the user and then performs the log in.
However, building and running on IOS, i stumble on the following error when trying to call the adapter through the invokeProcedure method:
Method 'getWlSignedClientId:' not defined in Plugin 'WLAuthorizationManagerPlugin'
The WLAuthorizationManagerPlugin is defined in the iphone config.xml in this way (i was getting a plugin missing before first):
<feature name="WLAuthorizationManagerPlugin">
<param name="ios-package" value="WLAuthorizationManagerPlugin"/>
</feature>
The error seems to be in the default plugin WLAuthorizationManagerPlugin defined in worklight.js, which I have no control on, and it basically prevents me from using the invokeProcedure method (however it works on Android).
Any help please?
Thank you.
It is unclear what version and build of MobileFirst are you using. I suggest that you will attempt again by downloading the latest iFix from IBM Fix Central, and use the new/fresh project for the AppCenter Installer app, and try again. The App is a regular Hybrid app that that you need to build in MobileFirst Studio, so ensure you are using an up-to-date build of it as well. This is where the SDK is then added to the project and should contain the mentioned "missing" plug-in.

IBM Worklight 6.0 - Worklight Starter Dojo example broken?

I've installed Worklight 6 in an instance of Eclipse Juno and I am wanting to migrate working apps into it from Eclipse Helios and Worklight 5. I am running into some strange problems, possibly because of the transition to Dojo 9 or maybe the new directory structure of the resident Dojo files. So I decided to start with the examples. I use Dojo in my apps, so I downloaded the WorklightStarter_DojoMobile eclipse project and imported it. I did the 'build and deploy' step, and also deployed the WorklightStarterAdapter.
I am trying to run the app in the browser simulator and it appears to be busted. I get the 'about' view but no feeds. I ran it with Firebug and the console shows a lot of peculiar errors.
I won't paste in the network links but a lot of files are not found:
WorklightStarter_DojoMobile/apps/services/preview/WorklightStarter_DojoMobile/android/1.0/default/cordova_plugins.json not found
WorklightStarter_DojoMobile/apps/services/preview/WorklightStarter_DojoMobile/android/1.0/default/dojo/core-web-layer.js not found
WorklightStarter_DojoMobile/apps/services/api/WorklightStarter_DojoMobile/android/init unauthorized
/WorklightStarter_DojoMobile/apps/services/preview/WorklightStarter_DojoMobile/android/1.0/default/dojox/mobile/themes/android/android-compat.css
Procedure invocation error. White spaces are required between publicId and systemId. Failed to parse the payload from backend (procedure: HttpRequest) with transformation...
Indeed, the Worklight Starter Dojo Edition is not fully compatible with Worklight 6; instead, you can use the Dojo examples from the training materials.

IBM Worklight 6.0 - Dojo library uses localhost after deploy

I have a Worklight 6.0 project that uses the new Dojo 1.9 libs, I created an external dojo project, like the documentation suggested, then, in the main project properties, under "Dojo toolkit", it references this dojo19 project.
The project works on the local server, then I did "Run As" | "Build for Remote Server...", and entered the correct domain:port and context path, clicked Build, the *.wlapp files were updated. (I've also updated the settings for publicWorkLightHostname / publicWorkLightPort / publicWorkLightProtocol in the "Environment Entries for Web Modules" in the installed war to match the remote server names/port/protocol.)
But, after deploying both war and -all.wlapp file, accessing the app I get JS errors when it tries to refer to the dojo19 library:
The page at
https://<myIP>:9443/<myproject>/apps/services/www/ /mobilewebapp/default/IODMobile.html
ran insecure content from http://localhost:64441/dojo19/<myproject>/IODMobile/mobilewebapp/dojo/nls/core-web-layer_en-us.js.
The dojo19 is the project name in my Worklight developer workspace that I referred to above.
Why is it trying localhost? Seems there's a missing step here in deploying the dojo library project into Worklight.
Where are you trying to preview the application when you get the error message?
See the changes in Dojo in Worklight 6.0
If launching the application in emulator/simulator/device, see Billy Rowe's answer in this question
Partial copy/paste:
Step 1: Verify your application works in the Mobile Browser Simulator
with Provide Library Resources checked. If the Console log is showing
resources being served from the server, then these have to be copied
to your application before deploying to AVD or a device
Step 2: After you think you have all Dojo/resources within your
project, uncheck Provide Library Resources and test it again in MBS.
If it fails in MBS, then something is missing in your application that
is in the library/server. You can check Provide Library Resources and
retest to see if it shows you what that is. Not all resources are
shown, e.g. if there's a missing CSS file.
Also I would suggest to do all of this in the Development environment (that is, in Eclipse) before starting to deploy the .war file and .wlapp file etc... (which, BTW, I hope you're doing based on the new instructions for Worklight 6.0)
In the information center, it will show you how to uncheck the Provide Library Resources in the Console Log.
I think what you're running into is:
1) Something is being served from the Dojo Library/Server
2) A bug in 6.0 that used "localhost" instead of the IP of the host (your machine running eclipse). This is fixed in the 6.0 iFix. With this fix, you can run your app external to Studio and still use the Dojo Library/Server. Without this fix, you must have everything you need within your app.
Can you install the iFix and let us know if that fixed the problem?