Making app more compatible

Discussion in 'iOS Programming' started by chainprayer, Mar 22, 2010.

  1. chainprayer macrumors 6502a

    Joined:
    Feb 10, 2008
    #1
    My first iPhone app was approved today (yay!) but I encountered an unforeseen problem. My app is only compatible with iPhone version 1.3.1. If I compile it using the 3.0 device binary will it be compatible with 3.0+? How can I make it even more backwards compatible? Can I go back to 1.0 so everyone can get it? (its a very simple app that should work with that version)

    Thanks! So excited to be in the app dev community :D
     
  2. skunkworker macrumors regular

    Joined:
    Sep 9, 2007
    #2
    There is no sdk for 1.3.1.
    The first sdk that came out was for 2.0, but right now you can be pretty certain targeting 3.0, and yes 3.0 works for 3.0+.
     
  3. chainprayer thread starter macrumors 6502a

    Joined:
    Feb 10, 2008
    #3
    My appologies... I meant 3.1.3 not 1.3.1... long day at work heh.

    The only options i have for debug, release, and distribution are 3.1.3.... how can I downgrade to 3.0?

    Thank you MR!
     
  4. robbieduncan Moderator emeritus

    robbieduncan

    Joined:
    Jul 24, 2002
    Location:
    London
    #4
    Set the Base SDK to 3.0. Make sure you're not overriding this with an Active SDK setting.
     
  5. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #5
    You need to set the iPhone deployment target to the minimum OS you want to support and the Base SDK to the target OS. Then you need to test on all the OSes between the min and max.
     
  6. chainprayer thread starter macrumors 6502a

    Joined:
    Feb 10, 2008
    #6
    How can I make my app compatible with 2.0+? I know the previous sdk was out but I don't see the option in xcode. I appreciate the help!
     
  7. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #7
    Set the "iPhone OS Deployment Target" in your project's build setting to the minimum OS you are wanting to support.
     
  8. chainprayer thread starter macrumors 6502a

    Joined:
    Feb 10, 2008
    #8
    I can only go down to 3.0 but I want to go lower
     
  9. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #9
    When using the Xcode 3.2 SDK final I can set iPhone OS Deployment target to any OS from 2.0 to 3.2. There are nine OS choices.

    You should be able to do the same.
     
  10. chainprayer thread starter macrumors 6502a

    Joined:
    Feb 10, 2008
    #10
    Is there a way I can download the 2.0+ system so I can build my project under it?
     
  11. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #11
    So, you don't want to support 3.x anymore then?
     
  12. chainprayer thread starter macrumors 6502a

    Joined:
    Feb 10, 2008
    #12
    I want to make it compatible with as many people as possible. If I compile it under 2.0 will it still work up to the current os version? I would rather have it work from 2.0 to current rather than 3.0 to current.
     
  13. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #13
    Then you should build your project under the 3.2 SDK Final and set your "Base SDK" to 3.2 and your "iPhone OS Deployment Target" to iPhone OS 2.0.
     
  14. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #14
    In the end you'll have to test on devices with all the OSes that you support. Since there are only three devices in the known universe running OS 2.0 you will have difficulties.

    There's no reason at all to support any OS older than 2.2.1, and no good reason to support any OS older than 3.0.

    There is a difference between building with a Deployment target of 2.2.1 and a Base SDK of 3.1.3 and building with a Base SDK of 2.2.1, but it's a subtle difference. You're better off doing the latter and testing to find any problems. You have to do the testing anyway.

    Problem is the current tools don't allow you to build with a Base SDK of less than 3.0.
     
  15. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #15
    Care to elaborate? Why would you need to test using a Base SDK of 2.2.1?
     
  16. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #16
    What I was referring to was that there are binary incompatibilities if you build with gcc 4.2 and run on 2.x. Any app may or may not run into them (I had an app that failed to run in one case.) So I was suggesting that building using the older tools and then running on the newer OS is better than building with the newer tools and running on the older OS. I'm sure the people at Apple would disagree. They hate the old OS and dropped support for it in their tools as soon as they could.

    Maybe it's better to build with the newer tools and just be sure to test thoroughly on the older OS.

    Actually I will recommend that new code should not be written to target the old OS. It's just too much hassle and I don't think there are many users on 2.x anymore. At least not the kind that actually pay for software. That's why I said
     
  17. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #17
    Wirelessly posted (Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1_3 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16)

    Thanks for expanding on that. It's not that I was disputing what you were saying; I was curious as to your reasoning. I feel I understand it better now.
     

Share This Page