iOS version affecting app download - ios

I recently submitted an app to the app store and it was approved, however it appears that I'm almost the only one that can download it. I've asked family and friends to download it on their devices but they just get a message saying something along the lines of
"iOS version 8.3 or later is required."
This is clearly a problem because it limits the amount of downloads, is there a way around this to allow users with almost any version of iOS to download the app?
I really appreciate any help, thank you!

You can change the iOS deployment target in your project build settings
Or set the deployment target of each target (general settings).
You should be able to lower down to 7.X with a Swift-written application.
Make sure you don't any API specific to iOS 8.X or that you handle those correctly.

In Xcode, click on your Xcode project and navigate to the General tab. Under Deployment Info, change your Deployment Target to the oldest OS version you would like to support. You must recompile and make sure to test on different OS versions, as you won't be able to call newer APIs if they don't exist yet in that iOS version.

Related

Apple store connect doesn't show my latest build

I built my latest release of my iPhone app. I used XCode to build it, archive it and publish it.
Usually I see the latest build in the Apple store connect. This time it doesn't show up and I don't know why:
You can check the status of you uploaded builds under Activity. Maybe there's something wrong with your upload.
Usually you need to wait a few minutes for apple to process your uploaded version.
Also try to hover over Build in your screenshot. A blue + button should appear there.
Your assumption, that you need to increment the deployment target is wrong.
You only need the Xcode 10.1 (or higher) build tools. The deployment target is the minimum iOS version which you support. So building for iOS target 9.0 with Xcode 10.1 should also work.
I just fixed the problem,
Till now, in XCode, under the deployment info, I had "Deployment Target = 9.1". I tried setting it to "10.1" and now my new builds show up on the online Apple developer page.
To solve the issue I had to go through the Apple help page, where I found that from now on, Apple only accepts apps build with XCode 10.1 or later
Go to Activity and check the binary version which you have uploaded. Check the status. The newer binary still is in the waiting process or have some issues. You should get a confirmation mail regarding successful uploads.

Releasing iOS apps built with an older SDK version

My App Store question doesn’t seem to be answered clearly in the official guidelines document so here you go.
My app is developed for iOS8, its deployment target is 8.1. We would like to have it reviewed around next week.
Now there is the iOS9 version coming up. Will I be able to upload our binary to itunesconnect without any change? Will we have to compile with a newer SDK to pass the review process? Will I need to install a new version of Xcode do be able to upload a binary?
We would like to submit the app as is, without touching anything. (same situation as if it had been release 3 weeks ago) Is that possible? Thanks
Will I be able to upload our binary to itunesconnect without any change?
Yes. Apple will not require that you build your app against the latest SDK. Will you have problems with folks running iOS 9? Maybe?
Will we have to compile with a newer SDK to pass the review process?
No.
Will I need to install a new version of Xcode do be able to upload a binary?
No.
We would like to submit the app as is, without touching anything. (same situation as if it had been release 3 weeks ago) Is that possible?
Yes.
Also, here's a great post about the difference between the Base SDK and the Deployment Target settings: What's the meaning of Base SDK, iOS deployment target, Target, and Project in xcode

iOS 8 (.0 to .3) vs 8.4 Share Extension

While developing with all my tools up to date, I noticed that on 8.3 and lower devices my extension seems to have disappeared and not show at all in the list from which users can enable it. I extracted the contents of the app file and the extension does get compiled and packaged.
On a few devices we decided to update, the extension immediately started showing up on iOS 8.4 devices (post update with no app reinstall required).
What's up with this? Has anyone else run into this issue? Is there anything I can do to fix it?
NB: I have to mention, the only thing that changed was updating our dev tools. The extension project was untouched. Dev environment is using Xamarin.
Make sure that the CFBundleDisplayName and CFBundleName values are both set in your Info.plist for the Share Extension. If my memory serves correctly, I've run into the same issue before and that's how I managed solved it.
After checking with Xamarin, the project template does not set the deployment target in the info.plist by default (or it might have gotten lost with updates to the tooling).
If the "Deployment Target" is not set, the extension will only show on devices running the latest os version that was supported at the time the app was packaged.

Apple Development: Release iOS 7 app

I will soon be uploading a new app to the App store. I have a question concerning the build version of the app. Does Apple still allow us to upload an app that has been build for iOS 7, since I know Apple is kind of forceful about staying up-to-date. I can't find anything about it while googling.
Thanks
The deployment target is the lowest iOS version your app is supporting and Apple doesn't limit that (AFAIK). So if you want to (and are able to), you can still submit an app that runs on iOS 5, for example (iOS 5.1.1 is the newest iOS version for first-generation iPads).
Apple does specify the lowest acceptable Base SDK (the libraries you're linking against) when submitting, though (they change this every few months/years and announce this to developers via e-mail). If you're using the latest non-beta Xcode, you're always fine. Submissions from Xcode beta version are never accepted.

How Apple knows if an app only runs on 6.1 or above?

Just a small query :
When you develop the app, is it written somewhere in the code what iOS the app should run on?
We’re trying to determine how Apple knows if an app only runs on 6.1 or above.
Also – maybe you know for sure… if a user with 6.0 tries to download our app that requires 6.1 or above, what happens? And, if a user with 6.0 already has the app installed (but not the update for 6.1 or above) are they still able to open the app?
In respect to it being written in code, there is a preprocessor macro you can use to get the version you defined as the deployment target.
__IPHONE_OS_VERSION_MIN_REQUIRED
That'd return 60100 for 6.1 I believe. It seems that's not your question. Apple know because of the deployment target you set in the target general settings. If you set 6.1, then anyone below that can still run your app if they have it installed but cannot update or see newer versions.
A settings section is available in Xcode named as Base SDK . If this is 6.1, then app only runs on 6.1 or above. These informations are embedded with the binary you are uploading.
if a user with 6.0 tries to download our app that requires 6.1 or
above, what happens?
If you select the app you want in the App Store and, if it's incompatible with your iOS version, a prompt will appear offering to let you download a previous, compatible version of the app.

Resources