Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8842089
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T10:52:41+00:00 2026-06-14T10:52:41+00:00

I am testing an app on an iPhone 4 with iOS 5.1 and an

  • 0

I am testing an app on an iPhone 4 with iOS 5.1 and an iPad 4 with iOS 6.0. I looked around and surprisingly did not find similar questions:

1- My app has some methods that have been deprecated in iOS 6.0 so I believe I have to build some if/then conditions to test for system version using: [[UIDevice currentDevice] systemVersion], and then use the version appropriate methods. Is that the most efficient way?

2- My understanding is, with only one target, the “project” Deployment Target and the “Targets” deployment target serve the same purpose. And I need to have one of them or both as iOS 5.1 since that is the minimum iOS supported. What is confusing is that if the target is built based on iOS 5.1, how would it run on the iPad4 with iOS 6.0:

  • Does the iPad OS checks for target versions before running or just tries to run the code and it happens that the iOS 5.1 target does not have any code that the 6.0 is incompatible with?

  • Even if that is the case though, how could a 5.1 target support 6.0 methods that I built to conditionally replace deprecated methods?

Many thanks!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T10:52:44+00:00Added an answer on June 14, 2026 at 10:52 am

    Deprecated methods

    Deprecated methods can be used if you are targetting iOS versions that were released before those methods were deprecated. But assuming your deployment target is set correctly, you won’t get any compiler errors unless those deprecated methods were always deprecated for the versions you are targetting. In other words, if you are seeing deprecation warnings in your code you need to fix them or check that your deployment target setting is correct. Do not ignore them!

    Xcode setting levels

    You mention the fact that you can define the deployment target setting at both the target and project level. Xcode build settings at the target level will override project settings. So define the deployment target at one of these levels only, then go to the other and hit delete so you don’t have duplicate values. If you only have one target then it doesn’t really matter if you define it at the target or project level.

    Backwards and forwards compatibility

    Finally, there are many factors that come into play for backwards and forwards compatibility. Sometimes there will be new iOS 6 methods like supportedInterfaceOrientations which will simply be ignored on older iOS versions. Other times you need to add explicit checks:

    • If you are calling a method on an object and that method was only introducted with iOS 6, you will need to add a respondsToSelector: check like this:

      // only available on iOS 6
      if ([locationManager respondsToSelector:@selector(pausesLocationUpdatesAutomatically)]) {
          locationManager.pausesLocationUpdatesAutomatically = YES;
      }
      
    • If you want to check if a particular class exists on the current iOS version, you can check the return value of the +class method like this:

      // Only available on iOS 6
      if ([UICollectionView class]) {
          // ...
      } else {
          // class doesn't exist in this iOS version
      }
      
    • If you want to check if a particular function is available, do a simple if statement on it:

      // Only available in iOS 6
      if (ABAddressBookCreateWithOptions) {
          ABAddressBookCreateWithOptions(...);
      } else {
          ABAddressBookCreate(...);
      }
      
    • Finally, if you want to check if a constant is available, check it’s address:

      // Only available in iOS 4
      if (&UIApplicationProtectedDataDidBecomeAvailable) {
          // subscribe to notification
      }
      

    Your Base SDK setting should always be set to “latest”.

    If you follow all these guidelines you will be able to solve most of your problems without having to add explicit version checks. Checking the iOS version or device ID is very brittle and is likely to cause your app to break in future versions. You really want to avoid it.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am testing a Universal app (IOS 4.3) on both iPhone/iPad simulator. It has
I'm currently creating an iPhone app and we need some testing with about 20~30
I am currently testing an app on an iPhone 3G with iOS 4.0. I
I'm developing a jquerymobile app, testing for IOS4,5 on iPhone, iPad, Android 2.2, 2.3.3,
I'm testing a new iPhone app with my end-users and found that a lot
I am trying to push an app to a jailbroken iPhone for development testing.
I'm testing one of my iPhone apps on my iPad in 2x mode, so
During the testing of my app i discovered that it crashed on an iphone
I'm testing an iPhone app in both the simulator (XCode 3.2.3, iPhone SDK 4.0.1)
So I am trying to archive my iPhone app for ad-hoc testing and I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.