corona-warn-app / cwa-app-ios

Native iOS app using the exposure notification framework from Apple. The CWA development ends on May 31, 2023. You still can warn other users until April 30, 2023. More information:
https://coronawarn.app/en/faq/#ramp_down
Apache License 2.0
1.68k stars 285 forks source link

[Discussion] App does not run on iOS 13.5 -13.6 #2032

Closed GHRob549 closed 2 years ago

GHRob549 commented 3 years ago

Fix the current (and future) versions of Corona-Warn-App to allow usage under iOS 13.6.1 on iPhone 8.

[X] Bug is not mentioned in the FAQ [X] Bug is not already reported in another issue

Describe the bug

The previous version of Corona-Warn-App functioned as expected on iPhone 8 running iOS 13.6.1 until the latest update to version 1.12.1.

After updating to version 1.12.1 of Corona-Warn-App, the user is now shown a button-less dead-end screen with the following notice:

"Please update your iOS. You need the current iOS version to install the Corona-Warn-App. To do so, open the settings in your iPhone and select General -> Software Update."

At that point, the user has no choice but to force-close Corona-Warn-App.

Steps to reproduce the issue

Self-explanatory.

Expected behavior

Corona-Warn-App should run on iPhone 8 running iOS 13.6.1.

Possible Fix

Additional context

I--and I'm sure many other users--don't WANT to update the operating system to iOS14 and Corona-Warn-App shouldn't put us into a position where we're forced by ONE APP to update our iOS version or go without the protections of taxpayer-funded Corona-Warn-App.

Ein-Tim commented 3 years ago

Hey @GHRob549 👋🏻

Corona-Warn-App is using version 2 of the underlying API, the Exposure Notification Framework (ENF), provided by Apple. Version 2 was introduced with iOS 13.7, so there is no other possibility than updating to iOS 13.7 or higher to keep on using Corona-Warn-App.

More infos can be found in the FAQ: https://www.coronawarn.app/en/faq/#ios135

ndegendogo commented 3 years ago

no other possibility than updating to iOS 13.7 or higher to keep on using Corona-Warn-App.

@GHRob549 if I understand correctly, cwa auto-updated to the new version, and only then notified you about the requirement to update also iOS - yes?

Are you aware which cwa version you were using before that? Did you use any of the new features like contact diary, or were you just using the background functionality (contact tracing / collecting BLE IDs / risk assment procedure)?

I understand that iOS 14 seems a big step (although, I am using iPhone 8 myself and don't experience any issues with iOS 14 - but of course, this depends on your use cases and on the apps you are using) but: would iOS 13.7 be an option / acceptable compromise for you?

If you go into the App store: can you see any older versions of cwa, or only the newest 1.12.1? (So: would it be an option / work-around that you "downgrade" to an older cwa version which is indeed compatible with your iOS version?

Ein-Tim commented 3 years ago

I'm having a second thoughts on this.

Until version 1.11 it was possible to use CWA with iOS-Versions below 13.7 too (13.5 -> 13.6.1): Version 1.12 added this screen because it made CWA available for iOS 12.5. This screen was added so that user between iOS 13.0 and iOS 13.4 (these versions did not include the ENF) are informed that they have to update their iOS to use CWA. Makes sense.

But why was this also added for users of iOS 13.5 -> 13.6.1? It seems to be possible that they can use CWA, although they don't have the updated version of the ENF.

@dsarkar Could you please clarify this? Thanks!

ndegendogo commented 3 years ago

The Apple app store has a very robust mechanism to prevent exactly what was happening here. It checks in advance the compatibility of an app with a specific iOS version, and prevents automatic app upgrade (and, as far as I know, also manual upgrade) to an incompatible configuration. In this mechanism, it is responsibility of the app developers to declare the "minimum supported iOS version" (they call it differently, something like "base iOS version").

So, for some cwa version the developers have increased this "base version" beyond 13.6.1, with the effect that all users with older iOS just stay on the older cwa, and everybody is happy.

But now Apple has backported ENF (= the framework for corona contact tracing) to iOS 12.5, so they can support also older devices like iPhone 6. And cwa has backported also the app to that iOS version. And for this they needed to decrease the "base version" down to iOS 12.5, although there are intermediate iOS versions that are not compatible.

@dsarkar could you please bring this discussion to the developers, if they have any ideas how to resolve this dilemma? I guess this is even a candidate for discussion with Apple. It seems that the concept of "base iOS" is not strong enough for cases like this one.

ndegendogo commented 3 years ago

@Ein-Tim good point!! I was suspecting a major compatibility issue / root cause, but maybe (hopfully!) it can be resolved easy?! 😅

Ein-Tim commented 3 years ago

@ndegendogo

Good comment from you!

I am just curios why it was possible to use CWA 1.11 (with ENF v2) on iOS 13.6 (for example) but now this isn't possible anymore with version 1.12.

This seems like a limitation that is just not needed...

r0my commented 3 years ago

Same problem here. Also iphone 8 with 13.6 and cwa is not working anymore. And there are no downgrade options. Tried appstore++ but there are no options available.

Bad thing ;-(

I hope, there is a solution with edit some file entrys to get the app working again (with jb).

Ein-Tim commented 3 years ago

It is not possible to

a) downgrade an App b) update to a specific iOS version, if your device is supported by the newest, you have to update to the newest

(These do not apply on jailbroken devices, but I do not recommend to Jailbreak your device)

dsarkar commented 3 years ago

@Ein-Tim @ndegendogo

We have similar reports on the AppStore. All these cases are users with CWA 1.3. About a week ago we got all these reports because the minimum required CWA version was set on the server to CWA version 1.5.3 for iPhones. Of course, that triggered then the user to update also to newer iOS. I suspect that users @GHRob549 and @r0my used CWA 1.3 until recently, could you please confirm? Many thanks.

Ein-Tim commented 3 years ago

Thanks @dsarkar

Could you please still clarify why it was possible to support iOS 13.5 - 13.6.1 in version 1.11 but why this is no longer possible in version 1.12?

dsarkar commented 3 years ago

@Ein-Tim

Until version 1.11 it was possible to use CWA with iOS-Versions below 13.7 too (13.5 -> 13.6.1)

I think from 1.9 it was required to upgrade to 13.7

dsarkar commented 3 years ago

see the old FAQ entry https://github.com/corona-warn-app/cwa-website/issues/855

image

r0my commented 3 years ago

I'm using cwa 1.12.1 on iphone 8 (ios 13.6). is not working.

my friend's cwa is working on 13.6 with cwa(1.7.1(0)) on his iphone 11 pro max with no update warnings.

dsarkar commented 3 years ago

@Ein-Tim So, I think, these users didn't update the CWA for a longer time, and actually, I suspect they were on CWA 1.3.

@GHRob549 @r0my:

dsarkar commented 3 years ago

my friend's cwa is working on 13.6 with cwa(1.7.1(0)) on his iphone 11 pro max with no update warnings.

Yes, indeed that is possible currently, although we recommend strongly updating both, iOS to 14.4 (latest version) and CWA 1.12 (latest version).

I run on a quite old iPhone 6s without any problem, all smooth.

r0my commented 3 years ago

@Ein-Tim So, I think, these users didn't update the CWA for a longer time, and actually, I suspect they were on CWA 1.3.

@GHRob549 @r0my:

  • where you before trying to update to 1.12 on 1.3, maybe you can remember.
  • When did you notice that you need to update your iOS. Like about a week ago?
  • I will come back to you with more details and an explanation.

yes, about a week ago i saw this message in the cwa. after i started the app after an appstore update (manually). want to see if something is new inapp and isee the bad message.

I don't know on which version i was before.

Ein-Tim commented 3 years ago

@dsarkar True. Thank you so much, now this makes sense (FYI @ndegendogo)

Until version 1.12 was released, users on a iOS version below 13.7 could not update to a CWA version higher than 1.7 (App Store prevented them from doing so).

Now, with version 1.12, the minimum requirements went down from 13.7 to 12.5. So, the App Store updated CWA since the App Store "thought" that everything will continue working. But, as said before by @ndegendogo, this seems a rare case and with the current implementation provided by Apple, this is the only thing that can be done.

@dsarkar Thanks again!

dsarkar commented 3 years ago

Summarized

Ein-Tim commented 3 years ago

Short conclusion:

This message is the only possibility to currently make the app available on iOS 12.5. Nothing can be done here.

r0my commented 3 years ago

Thanks. But where can i get the old 1.9 .ipa? Is here an archive for .ipa projects?

Ein-Tim commented 3 years ago

Release 1.9.1: https://github.com/corona-warn-app/cwa-app-ios/releases/tag/v1.9.1

ipa's are not public AFAIK.

dsarkar commented 3 years ago

I am gonna write a little bit more later, but as an advance, there good reasons to keep all up to date. I can only guess why a user would not like to do so:

Having said this (guessing), from iPhone SE (1. gen) on, via iPhone 6s, and all later models they are all supported by Apple with the newest iOS version and run smoothly.

Apple provided for the models iPhone 5s, iPhone 5 plus, iPhone 6 an update of the iOS to version 12.5 (latest 12.5.1) providing ENF, which now also are models supported by CWA.

ndegendogo commented 3 years ago

@dsarkar please consider to tag this ticket as "hot topic".

It is extremely bad UX to get an automatic update of an app that runs fine (although an old version), and after this update the app forces him to upgrade the system.

Ein-Tim commented 3 years ago

This is a really difficult situation.

There is no other way (but either asking Apple to allow 2 API versions in one App or jump back to version 1 of the ENF) than this screen (for sure, it could be improved (link to a FAQ entry, etc.).

But I think we have to be realistic here:

The most users (not technical, think of your mother for example) will let iOS carry for iOS- and App-Updates.

The most users are using iOS 14, so they are already on a supported iOS version. Apple reports that 81% of all iPhones introduced in the last 4 years and 72% of all iPhones are using iOS 14.

I think this is and will stay a rare case. For the most users this isn't a problem. They can continue using the app as before. Yes I see all the reports on the App Store, but there only the users go who have problems, not the users with fine working Apps.

Don't understand me wrong, I don't want to play this down, I just wanted to drop the numbers here and give my POV (happy to hear your opinion on this @ndegendogo)

Still I think that this screen should be improved somehow.

ndegendogo commented 3 years ago

Summarized CWA < 1.5 is outdated CWA >= 1.5 and < 1.9 can run on iOS 13.5 - 13.6 CWA 1.9 - 1.12 must run on iOS 13.7 - iOS 14.4

Thanks @dsarkar.

So, this means if we are not going to find a solution we have won the potential for users on iOS 12.5, but are currently loosing all that are still on iOS 13.5 / 13.6 / 13.6.1

emergencies need creative solutions ...

@dsarkar please discuss with the developers the following idea:

This strategy should

Edit: corrected cwa version number 1.8.x => 1.7.x - there was never a release of 1.8

ndegendogo commented 3 years ago

... and of course this strategy does not allow any further update for iOS 12.5 ...

... but we will have won time to discuss and find a better solution ...

... and maybe Apple has an idea. In theory, one option would be to have the support for iOS 12.5 in a separate app. But afaik, Apple allows only a single ENF app per country ...

... what a mess, really ... 😫

ndegendogo commented 3 years ago

But where can i get the old 1.9 .ipa? Is here an archive for .ipa projects

@r0my afaik, Apple supports ipa only for beta users. And the certificate for such beta users is short-living, and the number of such certificates for beta users is limited. All large-scale number of users must go through the "official" way and load from the Apple shop.

r0my commented 3 years ago

But where can i get the old 1.9 .ipa? Is here an archive for .ipa projects

@r0my afaik, Apple supports ipa only for beta users. And the certificate for such beta users is short-living, and the number of such certificates for beta users is limited. All large-scale number of users must go through the "official" way and load from the Apple shop.

Many friends still use iOS 13 because they are very satisfied. But in return, they can no longer use the Corona app. I can only hope that a solution will be found.

ndegendogo commented 3 years ago

Many friends still use iOS 13 because they are very satisfied. But in return, they can no longer use the Corona app.

@r0my they should consider to disable automatic update of the app. (I am not sure if this setting is possible per app granularity, or only completely / for all apps).

r0my commented 3 years ago

But where can i get the old 1.9 .ipa? Is here an archive for .ipa projects

@r0my afaik, Apple supports ipa only for beta users. And the certificate for such beta users is short-living, and the number of such certificates for beta users is limited. All large-scale number of users must go through the "official" way and load from the Apple shop.

Many friends still use iOS 13 because they are very satisfied. But in return, they can no longer use the Corona app.

@r0my they should consider to disable automatic update of the app. (I am not sure if this setting is possible per app granularity, or only completely / for all apps).

They all have disabled the automatic update but they never thought that the app would be unusable when they install a new update.

Ein-Tim commented 3 years ago

@r0my

They all have disabled the automatic update but they never thought that the app would be unusable when they install a new update.

But you have to say that if they would have read the description of the update they could have known it.

IMHO we should better discuss how to improve the screen, I really don't see any "Hotfixes", etc. for this since it affects (numbers see above) only some users.

ndegendogo commented 3 years ago

they never thought that the app would be unusable when they install a new update.

@r0my tbh, if you had asked me before this had happened, I would have told you: no, this cannot happen, the Apple shop and their mechanism of minimum required iOS version prevents this

So I am sure, nobody had imagined that this backport of Apple ENS and of corona warn app would have such an effect

Ein-Tim commented 3 years ago

What also is asked in the store is the question:

Why don't you want to update your iOS Version @r0my @GHRob549?

(I think the most common answer for this is already given by @dsarkar above: Jailibroken devices)

Ein-Tim commented 3 years ago

I hope this is ok, I think we can discuss here what could be done to resolve this dilemma, in #2045 we can discuss how to enhance the shown screen.

Thanks and have a good night.

ndegendogo commented 3 years ago

Why don't you want to update your iOS Version

The other reason I have seen was also given by @dsarkar above. You need a certain amount of free memory to upgrade.

I am also one of the users who update late. And I am always very worried that something breaks (well, usually it does not, but you never know) and so I make sure that I have enough time, like a free weekend, and do a backup before ... and I would be very annoyed if something forces me through this procedure at a time that I don't choose myself.

ndegendogo commented 3 years ago

This said: @r0my @GHRob549 maybe you could still have a look at the iOS change set if you would consider to upgrade iOS, at least to 13.7. Often they have not only functional bugfixes but also security fixes...

... ah, yes, I forgot, sorry. jb

Ein-Tim commented 3 years ago

One small suggestion:

Change the title to something more general:

"App shows update os screen on iOS 13.5 - 13.6.1"

GHRob549 commented 3 years ago

@Ein-Tim So, I think, these users didn't update the CWA for a longer time, and actually, I suspect they were on CWA 1.3.

@GHRob549 @r0my:

* where you before trying to update to 1.12 on 1.3, maybe you can remember.

* When did you notice that you need to update your iOS. Like about a week ago?

* I will come back to you with more details and an explanation.

I have my app update preferences set to "manual", not automatic (exactly because of this sort of thing). I don't know for sure which version was running previously.

I saw CWA's notice for the first time when I tapped on the CWA icon on the homescreen immediately after updating.

I use other apps which I refuse to update, because I learned over time that their app developers killed functionality in their newest versions of their apps in the name of adding things that not all users even want (SONOS is one prime example of this kind of irritation). Again, it was my mistake to think this wouldn't happen with CWA. I broke my own rule by updating rather than leaving it alone and running a perfectly fine older version.

GHRob549 commented 3 years ago

What also is asked in the store is the question:

Why don't you want to update your iOS Version @r0my @GHRob549?

(I think the most common answer for this is already given by @dsarkar above: Jailibroken devices)

I am an app developer myself. I have five apps of my own in the App Stores. I would never ask my users why they would not upgrade an operating system or an app. CWA, at the moment, is a perfect example of "why not upgrade an OS or app". There's a simple rule that I try to live by: if it's not broken, don't fix it. Right now, iOS 13.6.1 can only be considered "broken" for one reason--and that reason is CWA.

GHRob549 commented 3 years ago

One small suggestion:

Change the title to something more general:

"App shows update os screen on iOS 13.5 - 13.6.1"

I disagree. The term "App shows update screen" takes away the significance of the issue.

Or is the app still functioning somehow in the background on our devices for the protection of others?

dsarkar commented 3 years ago

@ndegendogo Regarding your comment https://github.com/corona-warn-app/cwa-app-ios/issues/2032#issuecomment-782312284: We can bring that up. As far as I understand your suggestion:

dsarkar commented 3 years ago

More sophisticated solution: Use ENF API 1 or API 2 depending on installed iOS version?

GHRob549 commented 3 years ago

@ndegendogo Regarding your comment #2032 (comment): We can bring that up. As far as I understand your suggestion:

* it would allow for a period of time to install from the AppStore CWA 1.7 for those using iOS < 13.7

* After some weeks AppStore back to CWA 1.12, but preventing CWA download/updates for users with iOS < 13.7

* Problematic was, if I understand correctly, that users were not warned before updating, that an iOS update is necessary.

* I also understand, most users affected, if not all, were still on CWA 1.3

* Assuming this could be done, a major issue remains: How to reach all the potential users for CWA 1.7, i.e. those who don't want to update iOS >= 13.7

To your third point: In the App Store entry for CWA, in the "What's New" ("Neuheiten"), iOS users see the following...

image


Only if and when the user clicks on the extra "Mehr" link, is the user then shown the most critical of information, and even then very nonchalantly, not in all caps or with any emphasis on how significant this "Neuheit" actually is:

image

So, is there a mention of it? Yes. But it's buried as low as possible, behind a "More" button when it should have been the very first point (if it should've been allowed to become an issue at all).

ndegendogo commented 3 years ago

I disagree. The term "App shows update screen" takes away the significance of the issue. Or is the app still functioning somehow in the background on our devices for the protection of others?

@GHRob549 correct. Although in the background it is still collecting RPI (BLE beacons); as long as you stay on iOS 13.6.1, it will neither warn you nor give you the means to warn others. So, yes, broken for these three iOS versions... Still I suggest to extend the title to "iOS 13.5 / 13.6 / 13.6.1", because these three versions are affected equally.

ndegendogo commented 3 years ago

it would allow for a period of time to install from the AppStore CWA 1.7 for those using iOS < 13.7

@dsarkar yes, but actually not "after a few weeks". Use the shortest sequence that Apple accepts (considering that you need their review and approval for the release, I would re-release the "version 1.12.3" asap after the "version 1.12.2" is in the shop. (Maybe you can have even a discussion with Apple and an extra fast review cycle?)

But, yes, this will result in a "hickup" for all your millions of users who currently indeed fulfill the requirements for cwa 1.12.1

More sophisticated solution: Use ENF API 1 or API 2 depending on installed iOS version?

Good idea - for a sustainable / long-term solution. But this will be some development work, and need some time.

ndegendogo commented 3 years ago

@dsarkar a period of time to wait till all devices are updated is not needed. Each device will automatically pick the latest version that is declared compatible with its iOS version. If you can have a faster release cycle than the device picks it up - even better, in this case they skip the "hickup" version.

ndegendogo commented 3 years ago

Still you should not forget to test this update sequence, if you decide to go for it. Just to avoid any bad surprises ....

dsarkar commented 3 years ago

@ndegendogo ok, thanks for the suggestions. I will bring it up...

ndegendogo commented 3 years ago

Problematic was, if I understand correctly, that users were not warned before updating, that an iOS update is necessary.

@dsarkar exactly. As @GHRob549 already pointed out, this very essential information was not highlighted appropriate in the description.

I also understand, most users affected, if not all, were still on CWA 1.3

Actually, we don't know this. cwa 1.3 or 1.5 or 1.7. Or even before 1.3.

Assuming this could be done, a major issue remains: How to reach all the potential users for CWA 1.7, i.e. those who don't want to update iOS >= 13.7

With the strategy that I have outlined you would reach them all (if they are still willing to use cwa!) - but you will reach also your millions of other users (which you actually don't want! This is the "hickup").

I guess you need to accompany such a strategy with a very good and "hearable" communication. Those with iOS 13.5/13.6 need to trust it again, and give it another try. And those with higher iOS versions - which are the majority! - will go through the hickup; so you better warn them beforehand and explain what they have to expect ...

Maybe somebody comes up with a better / smoother idea ...

ndegendogo commented 3 years ago

I am an app developer myself.

Actually @GHRob549 brought up another good reason why a user might not want to upgrade his device always to the newest iOS version:

As an app developer, I need a certain diversity of device configurations in my development team, so that we can better test and trouble-shoot the application.