iOS SDK 5.0 (xcode 4.x) - ios

basic question regarding xcode 4.2 and iOS SDK5
I have an older MAC and really can't use anything higher- if I made an app for this target, will it be rejected?
Does the newer SDK 7.0 have to be the target? will the app run on newer versions (like it would in Android)
I looked around but seem to find mixed answers- just seeing what my options are.

You have to use at least Xcode 5 to be able to distribute your apps to the App Store. In a few months, the minimum requirement will likely become Xcode 6.

Related

App developed in Xcode for native iOS

We have our native iOS app developed in Xcode and now software developer is saying that we should upgrade our code to Xcode 9 as we may face issue with the new release on the App Store if we continue using Xcode for development. I would like to know if this is a fact, since I am not from iOS development and I don't know if this is a fact.
Any help in this regarding or a pointer to documentation would be appreciated.
Appstore won't reject your app because compiled with version 8 but as your developer says, It will be better approach to compile the project with latest version of Xcode.
In addition, with iPhone X release, Apple probably look into support for iPhone X so If you send a new version without iPhone X support, It may be rejected and for iPhone X support, you need to use Xcode version 9 or later.
Apple Xcode Support:
You should use the latest version of Xcode available on the Mac App Store to submit your apps, or when available, the latest GM seed release from the Downloads page. For more information, read the App Distribution Guide.
Note: If your source codes are written fully with Objective-C then compile won't be problem because with Xcode 9 nothing changed on Obj-C side. However, If you have a swift code It may needed to be updated to Swift 4.
To contrast the other posters here: I'd say it depends. Right now, iTunes Connect accepts updates/uploads for apps built using Xcode 6 (six). There is no hard technical requirement to use Xcode 9 today, and there isn't going to be one in the forseeable future. 2019/2020, maybe, but by then we'll likely also have Xcode 11 or 12.
That said, there are many reasons to actually switch to the most recent Xcode release rather sooner than later, not the least of which is being able to target the current iOS version, iOS 11 and make your app work correctly on the new iPhone X.
Yes, your developer is absolutely right.
General Suggestion: Your project/app source code should be compatible with latest technological upgrades.
Why should you move your app development on Xcode 9?
Here are several useful stack over flow discussions (questions and answers), explaining, new changes with Xcode 9.
Xcode 9 Release Notes
iPhone-X interface support - Safe Area of Xcode 9
Swift 4 - Code migration from Swift 2.x to Swift 4
Face-Id Authentication (If you have used biometric authentication)
Facebook integration IOS 11 & FBSDKShareDialog not working on IOS11
Navigation Controller and Navigation Bars
Apple releases a new version of Xcode every year, while it also removes the functionality in iTunes Connect to upload builds from older Xcode versions. So, to be brief, your developer is right!
Source: App Store - Submissions

Do I need to build my project with the latest available version of Xcode available on the Mac App Store for submission or can I use the older version

I was going through app review guidelines and one thing which I am unable to find the answers is
"Do I need to build my project with the latest available version of Xcode available on the Mac App Store or can I use the older version "
For example the current version of Xcode available on Mac App Store as of writing of these lines is Xcode 9.0, so do I need to build my project using Swift 4 and Xcode 9.0 or can I use older versions (say Swift 3.x and Xcode 8 or Xcode 7).
A similar question was asked in Feb 2012
Do I need the latest version of Xcode to submit apps to the app store?.
But it doesn't provide clear cut answer and the answer is more than 5 years old. And during that time the language for choice was objective -C whose versions were and are more stable than current lingua franca, Swift.
You can use older version of Xcodes (Xcode 8.x) to develop and upload
your project build on app store. There is no any such kind of
restriction by Apple, that you must use latest Xcode Tool to upload a
build on the store
I recommend and a as good advise,
You should use latest version of Xcode Tool to make your app, compatible with latest version of technology. You should see and implement, changes in technology. And one most important and major update in Xcode 9 is - support for iPhone-X device. To see your app interface is compatible with iPhone-X or not, you must use Xcode 9. There are so many other considerable updates in Xcode 9 (with iOS 11)
Here is list of updates with Xcode 9: Highlights of Xcode 9
It's not required to convert/change version of Swift programming language to provide a support of latest Tool.
Xcode 8.3 & Xcode 9, both supports Swift 3.2 version. So, if your current project is supporting, Swift 3.2 version, then you can easily work with Xcode 9.0
How to see current Swift version of your Xcode Project
Also, review this answer to see, how you can make your project compatible to Xcode 9 - Xcode 9 Swift Language Version (SWIFT_VERSION)
Here is nice answer from Apple:
Why You Should Use the Latest SDK
Building with the latest SDK gives your app all possible bug fixes and new behavior. For compatibility reasons, frameworks can't always expose improved behavior, unless apps are built with the latest SDK.
For example, when Retina enabled iPads were first introduced, only iPad apps built with the very latest iOS SDK could create Retina images by simply loading an image with an #2x suffix.
By building with the latest SDK, apps signal that they are ready for all API improvements and bug fixes.

Developing for IOS on 10.6.4

Ill start developing for IOS but the hardware I got only suport up to 10.6.4
I know that Xcode 4.2 seems to work on Snowleopard...
but the last version requires 10.7.4, in there anyway to make the last version work on the 10.6? If not, if I just use the 4.2, can I still develop with no problems? what Im going to be missing out?
Thanks
Edit: Thanks guys, Ill be building myself a hackintosh...
Older versions of Xcode are still available:
If you can't install the latest version of Xcode on your MAC, you can get older versions at connect.apple.com.
Notes:
However, they won't come with the latest SDKs.
And you can't develop for the latest iOS devices with an old version
of Xcode.
In short, you will probably need to upgrade your hardware in order to develop using the laters version of Xcode.
Apple are very sneaky - they want to sell hardware - so by dropping support for various OS versions in Xcode and not supporting older hardware with newer OSes they are effectively forcing developers to buy the latest hardware to keep up to date with software development.
You can still develop older iOS apps (i.e. using older SDKs and targeting older iOS versions) using an older version of Xcode (Apple do at least make the older versions of Xcode available through the developer portal). However, you'll need to carefully figure out what iOS versions you can target because Apple are also increasing the minimum app specifications in order to submit new apps and updates to the App-Store. So soon enough it won't be possible to submit apps developed using Xcode 4.2 to the store and you will need to update the Apple hardware you develop on if you want to make apps that will be submitted to the store.
The most annoying thing about this is that you can't even use an older Apple computer as a build server. I have a Mac mini which is less than 5 years old and I can't use it for development any more - it would be perfect as a build server!

Any issue continuing iOS5 development with the iOS6 SDK installed?

I'd like to download and install the iOS6 SDK, but I'm concerned that I'll step through a door that I can't step back through. I need to continue production-ready iOS5 development while playing with iOS6. Is there any issue about having both SDKs installed? (I do understand about the OS installed on particular devices; I'll have both iOS5 and iOS6 devices.)
I downloaded and installed the new beta. Since Xcode 4.3, Xcode is mostly self contained and 4.5 exists happily alongside 4.3
You cannot send apps that were generated by beta software to the app store, it will get rejected even if you build the app just for iOS 5. I would suggest that you install Lion/Mountain Lion on an external drive to play around with iOS 6.
Don't do it. I downloaded 4.5 with iOS 6 SDK and now the "Base SDK" is set to iOS 6 and I cannot change to anything less than 6 and half the libraries we use complain about armv7s slice.

Test iOS app with device of iOS 5.0.1 beta version

Now, I use Xcode 4.2 supporting iOS 5.0. Apple has just released iOS 5.0.1 beta 2. I can install it on my iPhone.
I want to test with this beta version, i.e build code from Xcode.
How do I build code from Xcode 4.2 for device of iOS 5.0.1 beta?
Please help
In exactly the same way that you would do so for iOS 5.0. We can't talk about beta versions of the software, but we can talk about what happens when newer versions of iOS are released. When you connect a device with a newer version of iOS installed, the Xcode Organizer will give you a message like:
Xcode does not have debugging information for the version of iOS on the device named “Dev iPhone”. Xcode can collect debugging data from the device to enable development with this version of iOS. This process only needs to be done once per iOS version, and will take several minutes.
You simply click OK or similar, and Xcode downloads the necessary debugging data. You can then build to the device from Xcode and use all the debugging tools as usual. This process works for point releases. It is highly unlikely this would work for major updates (e.g. if iOS 6 was released) and it may or may not work for iOS 5.1, depending on the changes included. But when Apple have not released a new version of Xcode to developers, you can be sure it is because one is not required.
It is important to understand the distinction between an updated version of iOS (for the device) and the iOS SDK (for Xcode). A point release of iOS does not necessarily require any change to the iOS SDK, and therefore with Xcode's ability now to download the debugging information on demand (a feature that has been around for a while), you don't necessarily need an updated version of Xcode. Likewise, with Xcode 4.2 you still set the iOS 5.0 as your base SDK even if you are setting an earlier version (e.g. iOS 4.2) as your deployment target. You don't need the iOS SDK v4.2 to target iOS 4.2 for deployment. (Just make sure you add back "armv6" to targeted architectures in your build settings, if you still want to support the iPhone 3G and equivalent iPods, as in Xcode 4.2 this is not included by default.)

Resources