0

How do I deal with compatibility issues on a deployed iOS app ?

Profile picture
Software Engineering Intern at Unemployed10 months ago

Hey Everyone,

I’m currently working on an iOS application, that has already been deployed on the App store. I’m still experimenting with it internally with a few friends, but I noticed that for some of them, when the app is installed it is just displayed as a blank screen or with missing icons or default font colors.

The app passed through App store screening before it was deployed, but I suspect that there is a compatibility problem. I was wondering if anyone has suggestions on what the cause might be, and how I may resolve it.

Link to see the screenshots of the normal and buggy versions of the app: https://docs.google.com/document/d/e/2PACX-1vR6r3lqu-tbI88UH8Q9NLFmRZ_QM9bOCpf9PExGZvtWTMWoZR87nN8vVPmjkgwSA5cf4BVAVlyibz6q/pub

Link to download app: https://apps.apple.com/us/app/anyamessenger/id6475115468

A little about the application --> It is a security surveillance iOS app that aims to minimize criminal illiteracy by providing citizens with technology for staying aware, secure, and connected. It includes features such as direct messaging, rapid alert system, sensory data monitoring, and a siren observability module.

I'm open to sharing my code too for a review, but only privately. Thank you so much in advance!

56
2

Discussion

(2 comments)
  • 3
    Profile picture
    Staff Software Engineer at Series A startup
    10 months ago

    First of all, kudos to you for beta testing your app before marketing it. Usually beta testing iOS apps is done by releasing the app to Apple Testflight (iOS app store exclusively meant for various levels of app testing before relasing it to the main app store).

    Coming to the bug you're facing - I have only built native Android apps, but I guess this idea holds good for iOS too. Assuming yours is a native iOS app, usually these things happen when the app uses advances UI widgets that are unsupported in OS versions below a certain version.

    To validate this hypothesis, check the iOS versions of the apps of all your friends. Then, check if the issue persists on phones of a particular version and below. If that is the case, then you can solve it in 2 ways:

    1. (Preferred only if buggy UI is on older iOS versions) Make your app available to only phones with iOS versions equal to or above the version number where the UI widgets work properly.
    2. (If recent versions also have the bug) Fix your app to use stable UI (non-latest) widgets supported by most phones.

    Sometimes it's possible your app is using stable UI widgets and still recent iOS versions have this bug. In that case, you will have to go through the hard route of trial and error on multiple phones (ideally 3 having a mix of buggy and non buggy versions of your app) with different iOS versions.

    Hope this helps!

  • 3
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    10 months ago

    So I have done both Android and iOS with 10+ years of Android and 3+ years of iOS. I have a couple hypotheses:

    1. You are not testing for light/dark mode - I noticed in the "Normal Version" screenshot the buttons are white and in the "Bug Version", the background is also white. It's possible you are not defining dynamic colors, so the buttons just blend in on light mode. When you are defining color assets in Xcode, make sure to set a custom value for both light mode and dark mode. In developer settings, you can easily toggle between light and dark mode for testing.
    2. You have an OS compatibility issue - This is the bane of every mobile engineer's existence, and it's way worse for Android engineers than iOS engineers. In short, you cannot assume that everyone will be on the latest version of iOS. For iOS, it is recommended that you support the most recent 2-3 OS versions. If you're using SwiftUI, there are unfortunately a lot of views that only work on the latest version (Apple sucks at backporting). Make sure that everything you are using supports iOS 16+, maybe even iOS 15+.

    At a high-level, your goal right now should be to find the repro. This should be easy as the iOS Simulator suite is very good. Keep spinning up phones until you hit the bug, focusing on OS changes. If you know the phone that produced the bug, just copy its settings.

    I highly recommend our debugging masterclass as well. A lot of the principles there can be applied here (like with the repro). You can watch it here: [Masterclass] How To Become A Debugging Master And Fix Issues Faster

    Check this out too: "Good resources to learn iOS app development?"