But on the other hand, that's a well-known difference between Apple and Microsoft philosophies. Microsoft bends over backwards to support old software (e.g. hard-coding old buggy/undefined behavior for specific legacy apps), while Apple fully expects app developers to maintain their software and upgrade it as necessary with each new iOS release, using new versions of libraries etc.
I don't think either is "correct", they're just different philosophies. The Microsoft way leads to incredibly complicated OS behavior that must be hell on the Windows devs. But if you develop an iOS app, you should know this going into it, that you'll need to budget for a certain level of occasional maintenance or risk that the app breaks.