Can I develop in Xcode beta, then submit from the most recent Xcode GM? - ios

I have found a lot of questions similar to the one I am asking only ask if you can develop and submit through the beta. This is not what I am looking for an answer to.
I am curious to know if I can develop my application using the Xcode 9 beta, but submit it through Xcode 8?
All programming would be done in the Xcode 9 beta, but when it is time to release the app, I would open the project in Xcode 8 to archive and submit it.
Is this something that would work? If not, why wouldn't it?
Note: I would be using Swift 3.2, not 4.

Submitting with Xcode 8 would be submitting using Swift 3.1 instead of Swift 3.2.
So you can write conditional code like that:
#if swift(>=3.2)
// code builds for Xcode 9 beta
#else
// code builds for Xcode 8
#endif
So in practice it gives compatibility to two versions of Xcode, but it's not the same code that compiles.
That's useful for pods and frameworks.
An example where code is required to be different between swift 3.1 and swift 3.2 is when using function swap(); example of use case:
extension Array {
mutating func unstableShuffle() {
for i in stride(from: count - 1, to: 0, by: -1) {
#if swift(>=3.2)
swapAt(i, Int(arc4random_uniform(UInt32(i))))
#else
swap(&self[i], &self[Int(arc4random_uniform(UInt32(i)))])
#endif
}
}
}

Xcode 9 GM Seed is available now. You can download Xcode 9 without Paid (Premium) Apple Developer Account from below links.
Now you can submit your project developed using Xcode 9 beta to app store using Xcode 9 GM Seed.
Xcode 9 - GM Seed
- (Command Line Tool - Xcode 9 - GM Seed for macOS 10.12)
- (Command Line Tool - Xcode 9 - GM Seed for macOS 10.13)

Related

Apple requiring all app updates to built with iOS 12 SDK by March 2019 Question

I'm currently using Xcode 9 but I have downloaded and "installed" the iOS device support files for 12.
Am I good to go for the March iOS 12 deadline?
Is satisfying the requirement as simple as submitting a new build when needed with my current setup or is more work required?
You need to migrate to Xcode 10 to get the iOS 12 SDK support files. Your app must be build with this iOS 12 sdk support. This is not the same as pulling iOS 12 device support into Xcode 9 from Xcode 10.x versions. Currently, going directly to 10.1 is the best move. Fortunately, Swift 3 and 4 are currently supported in Xcode 10.1. So if you are still on Swift 3 you will not have to also migrate your swift version.
Xcode 10.2 (currently in beta) will add support for swift 5. Migrating from Xcode 10.1 to 10.2 will require you to be on Swift 4.2 as a minimum version, with Swift 5 being recommended.
After the deadline, any app submissions will need to be built with Xcode 10 or better, or else they will be rejected.

Can I submit code written in Swift 4 to the App Store with Xcode 8.3.2?

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.

Building framework with prior version of swift 1.2

I am developing a swift framework (in xcode 6 - swift 1.2) and recently updated to xcode 7
Xcode 7 introduce swift 2.0 and when trying to use my framework on apps being developed on xcode 7 i get errors on using prior version of xcode
I need to maintain the framework also for the use of developers using xcode 6
Is there a way to build a framework on xcode 7 as if it is build in xcode 6?
No, there is no way to build framework on Xcode 7 as if it was Xcode 6. Either continue your development using Xcode 6, or upgrade to 7 and release a new version of your framework that requires 7.

Upgrading a Swift 1.1/1.2 project from Xcode 6 to Swift 2 project on Xcode 7

I have a project that I've been working on with my friend on Swift 1.1/1.2.
Unfortunately, when I upgraded my Xcode to the latest version, I noticed that the app will no longer compile and there are lots of errors.
Is there a way for Xcode 7 to compile for Swift 1.2?
If not, how do I get the old version of Xcode which does not use Swift 2?
Is Swift 2 app backward compatible with Swift 1 apps?
Can Swift 1.2 app run on iOS 9?
Are most developers using the Swift 2 now or not?
In Xcode start with Edit->Convert->To Latest Swift Syntax...
You may still have errors that you will have to resolve manually. Read the Xcode Release Notes to see what changed in Swift 2.

Xcode 6 throws error when trying to open a project previously opened in Xcode 7 Beta

Developed an incomplete iPhone + Watch app in Xcode 7 Beta. Tested on iOS 9 + Watch 2.0. Now need to open this project in Xcode 6 to release.
Getting the following errors:
Target specifies product type 'com.apple.product-type.watchkit2-extension', but there's no such product type for the 'macosx' platform
Error: There is no SDK with the name or path '/Users/a1/Desktop/GangstaDoc/watchos'
Anybody else have this issue? Any fixes?
The Xcode 6.4 stable release version maybe don't has support to 'Watch 2.0.'. Try open its current project in Xcode 7 beta and disable use of the Watch 2, so then open again on Xcode 6.
Other option is copying the source code manually and put in its new project on Xcode 6.
Observation:
When the version of Xcode 7 will be released for public, then the feature of 'Watch 2.0' will be compatible.
Xcode 6 doesn't support building watchOS 2 apps, so you won't be able to build with Xcode 6. It also doesn't support building iOS 9 apps.
You will only be able to build this project with Xcode 7.

Resources