How can I add one app to the App Store and in this app there is one for ios7 and one for the rest?

| | August 6, 2015

Hi since there are a lot of things in ios 7 that does´t work properly on iOS 6, and around. I wonder if there is possible to have two versions of an app on the App Store under the same app. Is it possible to make it so that when someone that have iOS 6 download the app they get the app optimized for ios 6 and when someone who have ios 7 download it, they get one that is optimized for iOS 7. Do I have to create two different apps on the appstore?

Please help.

2 Responses to “How can I add one app to the App Store and in this app there is one for ios7 and one for the rest?”

  1. You cannot submit two different versions for an app (single build file), Think of it – it doesn’t make any sense.
    You can check inside the app the version of the iOS on the device it runs but it’s very bad thing to do because that would break someday.

    The recommended thing to do is before you are willing to use a new feature to check if this feature is implemented on the version you are running, For example if you want to check if you can use:

    [[AVAudioSession sharedInstance] requestRecordPermission];
    

    You should check that this one is true (should return true only if this function is implemented):

    [[AVAudioSession sharedInstance] respondsToSelector:
                                     @selector(requestRecordPermission)]
    

    The big advantage of using this is that it works on iOS 7.x and would return true also if it would be supported on iOS 8.x and so on.

    Another big advantage is that you would only have small sections that would be specific for the OS support and not a full app for each version (easier to maintain).

    Libraries: You should pay attention to the libraries you are linking with. If you are using new libraries that aren’t supported on previous iOS versions you should mark them as “optional” instead of “Required” (which is the default).

    Last thing, If you do want to create separate app for each OS (if I didn’t succeed to explain how wrong it is) you can always add a new target (just duplicate the one you are working on) and set the parameters accordingly. Pay attention that Apple allow you only to limit the oldest version that can download the app and not the newest so it could be that users with iOS 7 would be able to download the app that is dedicated for iOS 6 so it should work also (maybe not with all the great 7 features but must work).

    Hope that helps a bit, If there is something missing please comment below.

  2. You can’t have two versions of an app on the App Store under the same name.

    Check @rmedy comment and @ldan answer for better options to build the application for different versions.

    As a last resort, within your app you can check the iOS version to make decisions. Here are few macros that may be helpful:

    #define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
    #define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice]   systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
    #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
    #define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
    #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
    

Leave a Reply