IBM Worklight - How to remove JSONStore resources from the application - ibm-mobilefirst

I am not using JSONStore in my App and as it comes as a package by default within WL App. Is there any option to remove them, even manually on a particular platform?

In Worklight 6.0.0.x this can be achieved,
In Android: by removing the <features> section in application-descriptor.xml
In iOS: by deleting deleting native\Frameworks\sqlcipher.framework (to be improved in the future)
In Worklight 5.0.x.x this is done manually,
In Android: by deleting the file native\assets\www\icudt46l.zip
In iOS: by deleting the framework native\Frameworks\sqlcipher.framework

Related

Fabric.io: new app does not show up in the dashboard

For some reason we needed to change the package-id of our existing android application. We already use Fabric for Crashlytics.
I'm trying to bring that new app up in the Fabric dashboard, but it's not showing there, despite the device log showing no issues (as fas as I can see): device log
Any ideas why the new package-id isn't visible in our dashboard?
Best,
Sven
I experienced a very similar issue to this when building an app with multiple flavours. The solution is to manually specify the package name, and not let Fabric try to automatically grab it, as it tries very hard to "stick" your old package name.
There is a full post available (disclaimer: my site), but essentially you need to use:
Fabric.with(
Fabric.Builder(this)
.kits(Crashlytics())
.appIdentifier(BuildConfig.APPLICATION_ID)
.build()
)
Make sure to include all dependencies on their dedicated gradle.build and meta in manifest file. Next is to throw a force runtime error on your device with internet connection also do not forget to initialize it first with Fabric.with(this,new Crashlytics()). If this doesn't work try to download and install Fabric for Android plugin in Android Studio, restart the IDE and you will see a fabric icon above. Start it and select your package name.
I had the exact same problem, in the log I clearly see that the Crashlytics is in use.
I/CrashlyticsCore: Crashlytics report upload complete: <ID>
But I cannot see my project on the dashboard, and always redirect to the tutorial.
After a Build-Clean and an Android studio restart, build and run the app again to my phone, and voilá, it finds itself. Now working, without any change.
I have the same problem. After hours of researches I resolve this for my application.
First: After adding new flavour, I make changes in Firebase console (added new app in existing project, with production SHA1, changed google-services.json).
After that app does not show in fabric dashboard and fabric plugin in Android Studio. Problem was resolved after linking new app in crashlitycs in firebase console. And after that check your roles, must have Owner role (on Firebase Console Project).

How to detect a MobileFirst iOS app's new version in app store and direct updating programatically?

We would like to make a version checking function by clicking a version checking button inside our MobileFirst app. So how to do a detecting of new version of a MobileFirst iOS app for both appstore version and DirectUpdate version.
For direct updating, it's easy to trigger when client is first loaded (now it works great in our initOptions.js file). But also it seems that wl_directUpdateChallengeHandler.handleDirectUpdate works only when the app is loaded. To trigger it, we have to quit the app and re-initialise it. Can we do it programatically anywhere/anytime within app?
And for appstore version update checking (in fact, this won't be frequent), there are many native ways but is there a hybrid or MobileFirst way to do it ?
For the App Store version check you can implement a Cordova plug-in: https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.0/adding-native-functionality/
For Direct Update, you cannot change its mode during runtime. You can however change its mode to perRequest in authenticationConfig.xml: https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.0/advanced-client-side-development/using-direct-update-quickly-update-application/

Worklight 6.0 - Steps to fix IBM App Center for iOS8?

I am using IBM Worklight 6.0 with December 14th fix.
I am trying to use IBM App Center client for iOS8.
I have seen multiple discussions about this issue:
IBM Worklight Application Center iOS unresponsive to touch events
IBM App center not working for iOS8
I copied the project from my server, where the fix is installed, and built for iOS, but when I inspect the mobile App, I can see that the application is using Dojo 1.9.0.
> dojo.version.toString();
"1.9.0 (29469)"
I can see that the IBM App Center mobile client does not use Dojo Toolkit, but includes a dojo.js file (with a size of 1.2MB).
My question is : What are steps to build IBM App Center for Worklight 6.0, knowing that the fix is installed (Both Worklight studio and server)?
Do I need to manually change dojo.js file with a newer version? if yes, where can I find such file?
The AppCenter installation contains an Application Center Installer application project.
This is a Worklight project with the iPhone environment. The app that is generated from it is the Installer application that you need to install on a device, and from which the user will then install any subsequent applications distributed via Application Center.
Make sure you are using the provided Worklight project; there are no additional changes to be done to to project (other than using your own bundleId, ...).
It could be that you are missing the Dojo library in your workspace?
You can generate it by creating a new Worklight project and application using the Dojo wizard in Studio.
When you received the fix, it contains a new project for IBM app centre.
You need to get this project and import it to your Eclipse Environment and rebuild the IBM app centre (APK and IPA) files.
You have to redeploy these files to IBM app centre console and re-download them on your iOS8 devices.
I believe the iOS8 fix starts from version V6.2, and we have downloaded fix v6.2.0.1.
So, I'm not sure about V6.0.
Please verify with IBM.

Worklight v6.2 - Android Cordova Plug-in

Has anyone tried the "Android - Adding native functionality to Hybrid Application using Apache Cordova plug-in" feature in v6.2 ?
I'm trying to use a 3rd party library on the client side and wanted to understand where to put the plug-in java class in the project. The documentation shows a java package (src) structure whereas the best I can find is normal folders in the android native folder.
Thanks.
The reason you see these as "regular" folders is likely because you are look at the Worklight project rather than the generated Android project.
Worklight project\apps\your_app\android\native\ ... will look as folders because they are indeed just folders.
Once you build your Worklight application (containing an Android environment), an Android project will be generated. In it, you will see the folders as packages, etc.
A Worklight project and application structure is explained in earlier training modules:
Creating your first Hybrid Worklight application
Previewing your application on Android
So, you should place your Java Class file in Worklight project\apps\your_app\android\native\src\com\package_name\ ...
Note about Cordova plug-ins in Worklight: depending on the plug-in this may not be possible to use as some plug-ins require using the Cordova plugman, which is not yet supported in Worklight.

How to enable WL.JSONStore in Worklight project?

When I played with the sample Using_JSONStore, I always tested WL.JSONStore=="undefined" on Android Mobile Browser Simulator or on a Android Virtual Device Emulator, or on my real Android device (Android version 2.3.5). How to enable the WL.JSONStore feature in the Worklight project? Thanks.
In Worklight 5.0.6.x, JSONStore is always part of the Android and iOS environments, so it is always present. There is nothing to 'enable'.
What you want to do, is perhaps initialize it, that is - use the init method. Is that what you're after?
Please also consult with the JSONStore documentation.
Enabling JSONStore
Since IBM® Worklight® V6.0, JSONStore is an optional feature. To use JSONStore, you must take steps to enable it.
About this task
To use JSONStore you must enable it by modifying the application-descriptor.xml file.
Procedure
Using the Application Descriptor Editor, open the file application-descriptor.xml
Click the Design tab.
Under Overview, expand Application [your application's name].
Click Optional Features.
Click Add.
Select JSONStore.
Click Ok.
Under Worklight Project, right-click the folder titled with your application name.
Select Run As….
Click Run on Worklight Development Server.
http://www-01.ibm.com/support/knowledgecenter/api/content/nl/it/SSZH4A_6.1.0/com.ibm.worklight.dev.doc/devref/t_enabling_jsonstore.html