I've a simple question. What are requirements for new app upload to latest AppStore?I mean is it required to use latest Xcode 8 and also latest swift or is it possible to upload the new application running on swift 2.2 version using Xcode 8 or maybe with Xcode 7? I'm curios if apple states informations like that somewhere.
Apple recommends you to build and submit to App store with latest SDK. However, it doesn't mean that it forces you to do that. In other words, you can use older SDK to compile you source code. For example, you can compile you app with XCode8 with Swift 3, but if you do with XCode7 and Swift 2.2, it's also fine.
Have a look at this: https://developer.apple.com/library/content/qa/qa1806/_index.html
Related
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.
I would like to use the Xcode 9 beta for use in development but I can't seem to get the correct settings for using Swift 3.2 within Xcode 9. The editor is much quicker than Xcode 8.3.2
I can (and have) downloaded the Swift 4 toolchain from swift.org and can use it from within both Xcode 8.3 and the Xcode 9 beta. If I wanted to ship my app before Xcode 9 is officially released, could I write it in Swift 4 and then submit it to the App Store via Xcode 8.3 using the Swift 4 toolchain?
No, you cannot submit a binary that contains code built with the Swift 4 toolchain (or any development toolchain for that matter) to the Apple App Store using Xcode 8.3.2.
Jordan Rose, a Swift compiler engineer at Apple, tweeted:
Development toolchains are never used when submitting to the store, sorry! (We want to avoid XcodeGhost-like scenarios.)
Thus, this configuration is not supported and you will need to wait for Xcode 9 to ship projects using Swift 4. Your binary will be rejected.
I have developed a app using Xcode7.3.1 with swift 2.2.
Is it possible to launch my app to Appstore else i want to upgrade my Xcode and swift syntax to latest version?
Itunes connect says
Submit your builds using Xcode 6 or later, or Application Loader 3.0
or later.
So it is safe to say that you can definitely go with Xcode 7.x and Swift 2.2
You can submit your app developed on Xcode 7.x without upgrading xcode. Its not compulsory to use Swift 3.0 - You can submit app even if its developed with 2.x. At the end your ipa will have binary code after compilation.
But keep in mind few things:
There are few APIs which are deprecated. You will have to remove these in future version anyhow.
Your app must be compatible with 64 bit.
So Its not compulsory, but advisable to upgrade to latest xcode. But if you are in hurry, you can push current version on appstore and take time to make app working with latest Xcode.
I'm currently building a Swift 2.3 app that I plan to release on the App Store in Q2 2017.
I know Swift 3 is out now, and that technically-speaking it would be better for the project to switch to Swift 3.
But I have some very important librairies that I use in my app, an they will not be updated to Swift 3 until several months, at least.
So, as you understood I have a foot in each camp now.
What should I do ? And more importantly, until when will Swift 2.3 apps be accepted on the App Store ?
Will the retro-compatibility of Swift 3 with Swift 2.3 Librairies be implemented anytime soon?
Thanks,
Xcode 8.2 (which is in beta currently) will be the last version of Xcode to support Swift 2.3. I would encourage you to transition to Swift 3 as soon as you can.
Application binary interface (ABI) stability will most probably be in Swift 4 to be released in the later part of 2017. This means that from that point forward, the binaries will be compatible. Swift 2.3 binaries will never be compatible with Swift 3, and Swift 3 binaries are very unlikely to be compatible with Swift 4. However, Swift 4 libraries should be compatible with later versions.
Now Apple Not Accept Your Project on the App Store.
Update your version of Xcode to the latest release of Xcode 9 available on the Mac App Store, which includes the iOS 11 SDK, and build your apps. Starting July 2018, all new iOS apps and updates submitted to the App Store must be built with the iOS 11 SDK. All new iOS apps and updates for iPhone, including universal apps, must support the Super Retina display of iPhone X.
I have an application in review and it has been implemented with swift 1.2 and Xcode 6.x. In case Apple rejects my build I've to do the required fixes and submit it again. I've started working on the port to swift 2 but some of the libraries that I use have not been updated or they have dropped support for iOS 7 updating to swift 2.0... bad situation. That said, probably it takes some days (hopefully) to get back to a completely working project.
1) in the meanwhile can I still compile my current code with Xcode 6 swift/1.2 ? does Apple accept this kind of submission or they requires a build created with Xcode 7.
2) Can I avoid switching to swift 2.0 and use anyway XCode 7?
You can still use Xcode 6 and Swift 1.2. Apple will eventually require the newer tools but the now older one is still fine.
Of course you can't take advantage of any iOS 9 features this way but at least make sure your app works under iOS 9.