App developed in Xcode for native iOS - 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

Related

can Xcode & iOS version affected on old project(which is created on Xcode 7.2 iOS 9.0 objective c)?

i dont know about Xcode 8,9 can it support objective c old functions and project?
my project is almost complete but some kind of function not supporting like UIDocumentBrowserViewControllerand etc in iOS 9.0 should i upgrade only iOS version or Xcode also Please anyone help me understand that iOS stuff.
thank in advance
If you intend to ship the app to the App Store, always keep your Xcode updated. You cannot test iOS 11 using Xcode 8.x.
Also, according to Apple's docs UIDocumentBrowserViewController is in iOS 11.
From Apple official site, for app store submission:
Starting April 2018, all new iOS apps submitted to the App Store must be built with the iOS 11 SDK, included in Xcode 9 or later. All new apps for iPhone, including universal apps, must support the Super Retina display of iPhone X.
Updated guideline of App store submission
Your app should be compatible with 64-bit support.

Xcode 8: Compile with iOS 9.3 base SDK?

I upgraded my iOS app to Swift 3.0 in Xcode 8.0 beta (8S128d). I thought it was all ready to go and uploaded it to iTunes Connect. When I clicked "Submit for Review", it gave me a list of 26 errors, one for each embedded framework, such as:
Invalid sdk value. The value provided for the sdk portion of LC_VERSION_MIN_IPHONEOS in MyApp.app/Frameworks/libswiftFoundation.dylib is 10.0 which is greater than the maximum allowed value of 9.3.2.
And one final error:
New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, OS X, and iOS SDK. Don't submit apps built with beta software including beta OS X builds.
Okay, that would have been helpful to know before I upgraded my app! How would I go about submitting this app?
I noticed about changing the project Base SDK from iOS 10.0 to iOS 9.3 by copying the base SDK from Xcode 7.3.1 to Xcode 8:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk
And then changing the Base SDK setting in Xcode 8's Build Settings. However, it didn't recognize the new SDK (see this question), even when I entered it manually, and compiled it with iOS 10.0 anyway. Is there any way to compile with the older SDK? Or must I roll back my code to Swift 2?
Here's the quick solution:
Don't use Xcode beta versions to submit apps for release — it's beta for a reason and shouldn't be used with production code.
Submitting Apps
Apps that are created using beta versions of Xcode or that are built
for beta versions of operating systems will not be accepted on the App
Store and Mac App Store. Apps that you submit should be developed
using the latest version of Xcode from the Mac App Store and should be
built for publicly available versions of iOS, OS X, and watchOS —
except when GM seeds are available. When a GM Seed of Xcode becomes
available, use it to develop your app for submission. When GM seeds of
iOS, OS X, or watchOS become available, build your app for these
versions.
↳ https://developer.apple.com/support/pre-release-software/
Re: Okay, that would have been helpful to know before I upgraded my app!
How would I go about submitting this app?
Use the current or GM release of Xcode to build and submit your app.
Unfortunately, it doesn't look like there's a way to change the SDK version in Xcode Beta; it could be either a bug or just the fact that Apple wants you using the beta SDK alongside the beta software. Like #l'L'l said, one must open the app in stable Xcode in order for the App Store to accept the submission.
However, I did find that downgrading the project to Swift 2 wasn't exorbitantly difficult. It only took me an hour to "downgrade" the entire project by manually fixing all of the errors in Xcode 7.3. In case it will help anyone, the main patterns I noticed during the process were:
Changing function declarations to not have an _ before the first argument, because the first argument is not anonymous in Swift 3
Removing the first argument label from all function calls, which sometimes involves renaming the function (including in delegates, which sometimes don't report an error)
Changing a couple built-in properties, like label.isOn to label.on
Adding NS before several object names, like NSData and NSTimer, which became Data and Timer in Swift 3, respectively
"Downgrading" the Storyboard by re-saving it
Compile using Xcode-stable but upload with Xcode-beta; Xcode-stable had issues with my provisioning profiles, but it turns out it doesn't matter which version you use the upload the binary from Organizer

iOS App's on Device with xCode6.4 and xCode7 beta

i want add a Comment to these Answer,Test iOS app on device without apple developer program or jailbreak but i don't have 50 comments :(
I want to know if is possible that I install xCode7 beta, than go back to xCode6.4 and start from xCode6.4 my App on my device? I have problems with the convert from my projects from xCode6.4 in xCode7. I hope someone can help me. I can start the Apps from xCode7 on my device without problems :) but i need the code from xCode6.4...
Please Help me...
Greetz
Xcode is only an IDE you use. In general, an IDE could switch freely.
BUT with IOS development you always work against a Base SDK that defines the abilities of the apple frameworks.
Now Xcode 7 comes with IOS SDK 9
Xcode 6 comes with IOS SDK 8
So Switching between Versions of Xcode also switches the base sdk (unless otherwise configured)
--> your app may behave differently with different base sdks. If that is acceptable though OR you don't see any change THEN switching is no issue
I switch all the time :)
EDIT: just saw the swift 2 tag. That is not supported in Xcode 6 so you can't switch

run xcode 5 and iOS7 changes in older version

We are working as a team and my partner had made changes to support iOS 7 and Xcode 5.
Now the problem is I have installed Xcode 4.6 in my system. His code is not supported in my Xcode. So I am not able to run this project in my system. I don't want to move to Xcode 5.
Is there any other way that I can still run this project in Xcode 4.6 ?
Let me know if you need to know anything else.
Tell your friend using Xcode 5.x to change the Interface builder document -> Opens in to Xcode 4.6 of your storyboard, to any storyboard file on the project.
This will enable you to open the project in Xcode 4.6. However i wont recommend you to use Xcocde 4.6.x since apple want you to use Xcode 5.x, actually starting Feb 1 2014 Apple would reject apps that won't be submitted with Xcode 5.x and optimised for iOS 7. Here is a link to that announcement.
Another thing important to mention is that you won't be able to test the project on iPhone 5s or compile to arm64 (for better performance on supported devices).
According to Apple
Starting February 1, new apps and app updates submitted to the App
Store must be built with the latest version of Xcode 5 and must be
optimized for iOS 7. Learn more about preparing your apps by reviewing
the iOS Human Interface Guidelines.
Apple Announcement
So anyhow you have to change your development to Xcode5. Better start now to change you development environment to Xcode5.
Apple suggests developers to develop with the latest environment. Tats why apple announces the Betas to test our app early when a new OS comes.
I too faced a similar kind of issue. You need to create a new storyboard file with Xcode 4.6 and use that storyboard for further changes. There's no other way to resolve your issue.

Taking new iOS version into account when submitting an update to the App Store

We are just about to submit an update to the App Store for some minor bug fixes and enhancements. The curve ball at this point is iOS 7.
My question is, what do I have worry about in regards to iOS 7? I'm not phased in utilizing any of the new features of iOS 7, we just want to make sure it works with it fine.
Just wondering if anyone could give advice on what I should be taking into account for this update.
This is actually a pretty complex question. I recommend the following strategy:
1) Submit your app update as it is for iOS 6, or whatever versions you are currently supporting.
2) Begin building and testing your app against the iOS 7 Beta using XCode 5 and get a feel for the major things that you are going to have to fix for iOS 7.
3) Read up on some of the big changes in iOS 7, in particular you should be familiar with the iOS 7 transition guide, available here:
https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/Scoping.html
4) Watch the following developer videos to get a good overview of the new changes:
Platforms State of the Union
Building Interfaces for iOS 7
I would take a look at the following documents:
iOS 7 Release Notes
iOS 7 APIs Diffs
What's new in iOS
The most obvious changes are to the UI, so unless you're making a game, I'd perhaps also spend time reading iOS 7 UI Transition Guide.
You're going to have to submit the app using Xcode 4.6.2. Past betas of Xcode have not allowed you to submit versions to the app store.
If Xcode 4.6.2 doesn't give you any error messages, you should be able to submit your app without a problem.
You shouldn't worry about iOS 7 now, as it's a beta. However, I recommend start adopting your app to iOS 7 on a branch or something like that. This way, when iOS 7 is finally released, your app will be ready.

Resources