How to change version of RoboVM compiler to 2.3.10-SNAPSHOT in Gluon Mobile - gluon

I have an issue with running my JavaFX/Gluon Mobile App on iPadOS 13.3 Actually the similar issue is described here: Gluon sample application failing on ios devices I've identify that the problem is caused by RoboVM and should be fixed in the version 2.3.10-SNAPSHOT
How can I change the version of RoboVM used by Gluon? In the Gluon documentation is mentioned the ios gradle extension property robovmVersion. This property can be set to the version robovmVersion ='2.3.5-ios12' but not 2.3.10. The reason is that on the bintray there is no version 2.3.10.
Is there any way to force Gluon Mobile to use RoboVM 2.3.10?

This is a temporary solution until the JavaFXPorts repository gets updated. There seems to be an issue with iOS 13.3 and JavaFX native libraries that's why apps crash even when using the latest 2.3.10-SNAPSHOT.
The breaking line of code was identified yesterday by Demyan Kimitsa who suggested to remove assert from the following native class
GlassApplication.m:635
assert(pthread_key_create(&GlassThreadDataKey, NULL) == 0);
becomes
thread_key_create(&GlassThreadDataKey, NULL) == 0;
I have created a build with the above change in native libraries and with the use of RoboVM 2.3.10-SNAPSHOT everything runs normal again even in the latest iOS.
Now that the issue is identified, I believe it is a matter of time until a new JavaFXPorts fix is published.
If you can't wait, you can download the HelloWorld sample with the new binaries from here. Adjust the parameters in build.gradle and you are ready to go.

Related

Is the AgoraRTMWrapper in XCode necessary?

I have been dealing with the same issue for a few days now. I'm unable to upload any app store connect files due to the libAgoraRTMWrapper file. To be clear, this entire app has been built through Unity using agora SDK. The reason for failure, according to XCode, is that the wrapper "doesn't have the correct file type for this location". Invalid Swift support.
This leads me to wonder if the libagoraRTMWrapper is even necessary. Yes, I would like to keep using RTM but not at the expense of several build failures.
As a sidenote, XCode does mention that the build is being made for iOS but the wrapper was built for iOS + iOS simulator. I don't remember ever specifying that but it could just be the way the SDK was initially imported.
this library is necessary for RTM to work. Do you have a custom build setting for the project? It is verified that the included SDK Demo works on iOS builds. Perhaps you can build that and compare the build setting to yours to find out what went wrong?

After updating to 4.8 SDK ProGuard minify fails

After changing to the SDK 4.8 (all other files remain unchanged) the build fails if minify is enabled. The error is String-index overflow.
Is there an updated proguard-rules file for 4.8 that takes into account new/changed classes??
It appears that the 4.7 SDK cannot work with the new (default) R8 compressor.
You can get back to a working app by adding the following to the gradle.properties class:
android.enableR8=false
Are you using Mapbox SDK in your application? The issue might be related to pro guard rules. Refer the following Link to a similar issue

Can't Set Target Android version to Automatic

I have been following this document to implement a hybrid webview and am running into an issue with the Target Android version. It states in the document:
On Android Oreo ensure that the Android manifest sets the Target
Android version to Automatic. Otherwise, running this code will result
in the error message "invokeCSharpAction is not defined".
I am using the Android 8.1 - API 27 simulator and I am getting that error. I tried to set the Target Android version to "Automatic" as it suggests in the Android Manifest portion of the project properties, but "Automatic" is not an option I can pick. The only option I get that isn't a specific version is "Use Compile using SDK Version" and that doesn't solve the problem. What am I missing?
Have you seen the following thread?
https://github.com/xamarin/xamarin-forms-samples/issues/343
It states that sample from the documentation does not work and needs to be changed according to the one posted in this thread. Please let me know if it helps or not.

how to ensure backward-compatibilty in a xamarin forms application?

How do i make sure my app can run on android devices below Lollipop( version 4.03 to 4.42). I watched a xamarin university video that says xamarin forms supports android version 4.03(ice-cream sandwich) and upwards. I also read about runtime checks and feel like this might be the answer to my problem, but how can i write runtime checks for android when basically all my ui and logic is contained in the PCL project?
The first thing to do is ensure you are using the Android AppCompat library. I think new projects use this by default now. If you have an older project that doesn't follow these instructions to update. This will allow your app including any Material Design look and feel to run on older versions of Android.
If you do things differently based on Android version, put the code for this in the Android project and use dependency service to call it.
Like this:
if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
{
// level specific code here
}

MQA fails after archiving application in XCode

Short Version: I'm having issues while archiving my application. The debug works, the archive doesn't. There is nothing to troubleshoot, anyone has ideas?
Log Version:
I have a hybrid worklight app, fully functional and archiving was working just fine until I've added MQA and I'm using iOS.
Versions are:
Worklight 6.2, MQA 6.3, Xcode 6.1, and iOS 8.1.2
Now I've added MQA following the steps here.
I've copied the framework into my project directory and added in the other_linked_flags a force load for it.
I've also added a few lines of code to for it to work following the same instructions. Basically everything works just fine when I run it from xcode. When I run the app that xcode deploys on iphone, it the app runs normally and MQA also works.
I only have some kind of problem when I try to archive the app to deploy it in a ad hoc environment.
When I do that the iPhone screen remains black after asking me which user it should use on the MQA. It seems that it can load the webview but can't load the html app.
Unfortunately this doesn't even generate a crash log an as such I'm left in the dark about what is happening.
Can someone give me some light on what can I do to troubleshoot this issue?
You may be trying to integration the wrong library into your project.
Right now it looks like you are working on a Hybrid app but try adding the native libraries into it, which is incorrect.
If you are working on a Hybrid app, you need to download the Hybrid SDK.
If you are working on a Native iOS app, you need to add the native library
There is a library specific to Hybrid apps. You can find it in the following link: http://www-01.ibm.com/support/knowledgecenter/SSFRDS_6.3.0/com.ibm.mqa.uau.doc/topics/t_download_wrklight_libraries.html?lang=en
All what is required is to do is removing the native library if added, and integrate the worklight SDK into the app code under the common folder in the main.js file.

Resources