Users Complain that Xamarin Android App Freezes - xamarin

I have a Xamarin.Forms Android app on the Google Play store. An overwhelming amount of users are leaving 1 star app reviews of my app saying that the app is "Freezing." They say that nothing happens when they click on a button in the apps UI. I have made doubly sure that no processes are running on the UI Thread that might hold up the UI. I have not been able to recreate this "Freezing" behavior personally. There are also no crash or ANR reports in the Google Play Console (at least not enough to make up for the amount of negative reviews I'm receiving). Has anyone else faced this problem?
Useful Info:
Xamarin.Forms Version: 4.8.0.1560
There is no discrimination between the Freezing behavior and users' Android API Version
The issue is not happening (or is not being reported) on the iOS app.

Do you have a physical Android device to deploy to? Take the apk and side load it, or download from the store, don't use VS to deploy the app on your device.
I had a similar issue and it was the code shrinker in VS. The released version with the code shrinker enabled, caused the app to freeze immediately after the splash screen.
You can disable it by selecting 'nothing' in the code shrinker box in VS.

Related

microsoft-teams: How can we update the app of all users ? Lack of functionality plus issue

We have a published app in the Teams App Store.
And we are updating valid domains list from time to time (Adding new valid domains).
So we have to be sure that all users have latest version of the app.
If someone has old version of the app (without this valid domain name) they will not be able to open that site in task module window.
It is very important to keep the app updated.
So as we expected users are experiencing issues with valid domain names.
And the simple question "which app version does user have" led us to next issues: lack of a basic functionality on Mobile versions of the Teams app and a bug on the Desktop/Browser versions of the Teams app.
Mobile apps: There's just no way of getting app version. Or at least we haven't found it.
Desktop/Browser apps: There's 'About' tab with the description of the app and it's version. But in our case the text is long and the section is not scrollable so users can't scroll up and get app version. Check the screenshot below
Is there a way of updating the app for all our users of all tenants ?
Any help would be appreciated.
#Oleksa, #Hilton - Process of updating the version of the app is similar to how you submit the app initially to store.
Teams does not force users to update to latest available version of the App but it shows small banner with the message "latest version of the app is available" which user has to go and update to the newer version.
I am surprised, #Hilton did not have this question till now :)
As of (19/1/2021), You can only upgrade an app on desktop and not on mobile. Upgrading the app on desktop will automatically do the same on mobile.

ios10 custom push notification sound not playing

I am currently running iOS 10 beta 8 with Xcode 8.0 beta 6 and the custom sound does not play when I receive a push notification with the correct payload.
I have verified the payload and it is in the correct format per the apple documentation:
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9,
"sound" : "bingbong.aiff"
},
"acme1" : "bar",
"acme2" : 42
}
When I send the same payload to the same build on iOS9 the custom sound plays properly.
Does anyone know if there are any other changes in iOS 10 that I need to make?
This problem seems to only affect apps installed via Xcode. The issue persists even if you later update the app from a different source.
The solution is to completely remove the app, and reinstall it from TestFlight or the App Store.
In effect, this bug should not affect your end users.
Edit 2016-10-15:
Unfortunately it seems that I was mistaken. This appears to be a bug on iOS 10 that can, in fact, affect App Store apps also. If it is of any consolation, apps such as Facebook and WhatsApp are affected too. The solution is apparently to force restart your phone, but unfortunately there doesn't seem to be much we can do about it as developers.
Apple Fixed Issue:
Based on this comment, Apple has seemed to fix the issue in iOS 10.2
Try installing your app using Test Flight and after implementing initial process to update device token just restart your device.
You'll get what you have been looking for.
Credit goes to - binncheol
Having our user restart their device is correcting the issue for us.
This is an issue for us regardless of how the app was installed (TestFlight or from the app store).
There is definitely an iOS10 bug which still persists as of 10.0.2. It affects many apps including popular ones such as Whatsapp and Messenger. The workaround is just to power cycle the device, after which point the notification sounds are correct. It doesn't seem to matter how the app is installed.
I can't find any documentation of this from Apple (go figure) but there is more info here: http://thetechbeard.com/how-to-fix-notification-sound-problem-in-ios-10/.
As reported here lots of other people are having this problem. Hopefully Apple fixes it soon.
I uninstalled the app, turned off the real device, reinstall the app, and then the custom notification sound started working. It didn't work before I restarted my device XD

Xamarin.Forms application properties not saved between sessions with Android

In my cross-platform app I save application properties in the following way:
Application.Current.Properties["myValue"] = "Test";
await Application.Current.SavePropertiesAsync();
I then retrieve them later like this:
string myVal = Application.Current.Properties["myValue"];
This works perfectly when using the Android emulator. I can close the emulator down, and when I restart it again, my app data is preserved.
However, when I deploy this app to a physical Android device, data preservation works as expected until I close the app and open it again. At this point I retrieve an empty value. It's as though the data is only saved to memory (and not to file).
Furthermore, the iOS version of the exact same app works faultlessly. When I open the app up, all previous values have been saved and I can retrieve them.
What am I doing wrong on the Android version? Is there an Android setting, permission, or option which I need to enable to have the values saved between app sessions when actually deployed to a phone?
I had a similar problem where only the debug version saved Properties. I think we're still waiting for the bug fix, and this is the workaround on Xamarin Forms bugzilla.
In short: go to .Droid project settings -> Android Options -> Linker
and enter/add "System.Runtime.Serialization" to Skip linking assemblies.
Wow! After lots of research, I have getting solution for same issue in mine. Problem is that, when i store List or DataTable in Application.Current.Properties then all properties are removed after reopen app but if i store List or DataTable as serialize, it working fine.
In VS you need to enable the option:
Preserve application data/cache on device between deploys
You can find this at Tools > Options > Xamarin > Android Settings.
I don't know if this has stopped in the latest updates of Xamarin Forms, the data is available until the application is running similar to session but persistent storage does not work.
The best api I think available for this is Akavache https://github.com/akavache/Akavache.
You can read this blog https://codemilltech.com/akavache-is-aka-awesome/.
Update
There is a bug filed in bugzilla:
https://bugzilla.xamarin.com/show_bug.cgi?id=26444
I don't remember exactly which part of this solved the issue, but when I followed the instructions to prepare the Android application for release from start to finish, the issue went away. The problem occurred when debug builds were used on an Android device.
https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/
The link details the suggested settings for the Android project when releasing to device. Following these instructions should solve the issue.

Proper way to debug watchos2 app in XCode7

I'm rewriting my watch app to work in watchos2 but have problems debugging on the actual watch (XCode7). What is the correct way how to do this?
1) Obvious (but naive) approach - connect your phone with paired watch, in XCode select Extension scheme to run on Phone + Watch. Click play and it should work, right? This seems to work only just after fresh pairing and breaks very quickly (after few debug runs). See issues and behaviour below
2) Run phone app first then add run of extension - this approach worked for me longer but eventually broke as well.
3) Unpair and pair again - more than painful experience, time consuming and not practical at all. Will help for a while though.
Main problems:
phone app not communicating - I've seen not reachable or messages just time out
watch app stops running - XCode is saying it's running but it's not - won't even attach. If I run it manually on watch most of the times it will attach but then the phone app is not reachable
watch app won't even install - I suspect when the XCode is saying it's running it in fact it doesn't because when I remove the app from watch and then run XCode goes through the whole install process and "running" but the icon doesn't even appear on the main screen
phone stops reacting when I use option 2) and try to run something else while app is attached
phone seems to be blocked, selecting other apps (even going back to my app) won't work until I kill the session
Setup: The phone and watch is paired correctly, phone can see watch, watch can see phone, other apps are working. Watch "trusts" the computer as well, app is "shown on apple watch". Phone is 5s 9.0.1.
I've tried various restart combinations (phone|watch|xcode|mac), shuffled cables, disconnect, reconnect, etc. but that didn't help either.
Did anybody find a usable way how to debug watchos2 app from XCode? Nobody else seems to be complaining about this with released XCode7 though I've seen lots of similar issues in beta builds.
Use Apple watch recharging cable, connect your watch to developing Mac that runs Xcode.
It provides much more successful and fast debugging.
I have been dealing with the same issue this last days, I just updated to iOS 9.2, watchOS 2.1 and XCode 7.2, and now everything works.
After update XCode to 7.2, iOS9.2 my phone and WatchOS2.1 my Apple Watch the debug process is better. I suggest to update all your devices.

Test Flight Beta Testing: Xcode 6.3 Beta 4 does not show crashes

I'm focusing on the new Test Flight procedure. I developed an application (that I submitted through Xcode to the iTunes Connect portal) that crashes if a UIButton is tapped. Since, the application is available for Beta Testing to Internal Testers, I would expect to see a crash log within the new Crashes section of Xcode 6.3 Beta 4 (see Crashes Organizer Help). But nothing. No crashes available.
Is there any particular reason for that? Is this related to the type of testers I'm using? I'm understanding that Xcode 6.3 is Beta version.
Update
Xcode 6.3 has been released and crashes are now available.
Original answer
From Apple documentation
How Crash Logs Are Collected and Aggregated into Crash Reports
Apple provides a service that collects crash logs from users and
organizes them into downloadable crash reports. However, crash logs
are collected only if you upload an app with the symbols. (In the
Archives organizer, select the “Include app symbols for your
application…” box when you upload your app to iTunes Connect.) For
apps released in the App Store, the user must also agree to share
crash logs with developers. TestFlight users automatically share crash
logs with developers. The service that creates the crash reports does
the following:
Collects crash logs from both TestFlight and App Store builds
Provides the total number of unique devices where the crash occurred
Provides a sample set of crash logs for each crash report
Removes all personal user data from the crash logs
Creates crash reports daily
When you open the Crashes organizer, Xcode begins refreshing the crash
reports for your apps. Xcode downloads the top crash reports—crash
reports with the most number of occurrences on unique devices—that
occurred during the past two weeks. However, there may be up to a
three day delay between when you first distribute your app and when
crash reports are available in Xcode.
where emphasis is mine.
So I guess I need to wait.
When you submit a new build to iTunes Connect you will see THIS screen in organizer and you need to make sure the box is checked that says:
"Include app symbols for your application to receive symbolicated crash logs from Apple. "
When setting up an iPhone up for the first time you are asked THIS
If you select "Don't Share" then the crashes won't be reported
P.S. I tried to show images in the post but I don't have any rep yet so it wouldn't let me, the best I could do was link to some images.

Resources