Posts

Post not yet marked as solved
0 Replies
476 Views
Where can I find a list of all the effects that will happen based on my app's IPHONEOS_DEPLOYMENT_TARGET setting? In "App Startup Time: Past Present and Future" at WWDC 2017, Apple told us that "in a future iOS version" there would be additional restrictions that dyld places upon your app, based on its minimum supported OS setting. I've also seen mentions in various WWDC talks and Xcode patch notes about certain compiler settings & optimizations that are only applied to apps targeting iOS Z or higher, where Z is some version. However I cannot seem to find a comprehensive list of ALL the ways your app will be treated differently based solely on the minimum support OS setting that you list in your Info.plist. The reason I ask is because one of the apps I work with has been experiencing crashes when we set the IPHONEOS_DEPLOYMENT_TARGET to 14.0 instead of 13.0, but nothing else is different. So there must be some difference in how our app is being compiled or signed, or what restrictions are placed on it, based solely on the minimum supported OS. But for the life of me, I cannot find a comprehensive list of the things that come into effect based on the minimum supported OS. In particular, I need to know all the particular effects that are different between compiling for a minimum supported OS of 13.0 and 14.0, besides the obvious things like: now you can use iOS-14-specific APIs without an availability check now your app won't run on an iOS 13 device Besides that, there are obviously some additional differences that come into play. One that I can think of is that when built with Xcode 13 and iOS 15 SDK or later, and a minimum supported OS of 14.0 or later, the following compiler flag is enabled by default: The new -fobjc-constant-literals flag lets you declare declare global constant literals, and performs optimizations for other literals it supports in Objective-C code. You can use this flag to embed static property list literals (NSDictionary, NSNumber, and NSArray) at compile time, placing them in the CONST section of the binaries. (44920795, 45380392) However the crashes we're seeing happen even if the app is built with Xcode 12.5, which doesn't support that new flag, so I don't think that it could be related to this compiler flag. I've also been able to find some places in OpenSource.apple.com in the latest dyld source-code that take the minimum supported OS as a parameter, but I can't tell if it's being used to apply stricter checks to the app or not. Any help would be appreciated, even if it's just to mention one or two things that you're aware of which take effect based on a minimum supported iOS/iPadOS of 14.0.
Posted
by DaddieMac.
Last updated
.
Post not yet marked as solved
2 Replies
684 Views
Currently the deadline is Apr 30 to be switched over to Xcode 11 on production pipelines. However Xcode 11.4 comes out tomorrow. This leaves a tricky situation: do we still update CI to 11.3, when or 11.4 just came out? 11.4 requires Catalina and thus a major devops transition when you have 80 Mojave nodes running on VMWARE ESXI 6.7 that also need to be updated to a newer version for Catalina. Under the current COVID-19 B.S. we are not in as good of a position so upping all our nodes to 11.4 will take longer than April 30. I wonder if Apple might relax this deadline due to COVID so those of us with big devops overhead might be able to go straight to 11.4 and skip 11.3? We can't have multiple folks doing on site upgrades in the current situation.
Posted
by DaddieMac.
Last updated
.