run xcode 5 and iOS7 changes in older version - ios

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.

Related

When do we need to upgrade to new version Xcode (.i.e Xcode 11)?

When do we need to upgrade XCode to newer version? Is it ok if we use older version (.i.e build IPA for iOS 13.1 with XCode 10 or even XCode 9)
(to debug with newer iPhone, iPad is one reason :D)
While you can develop/build/release your app to be compatible with iOS 13 on older Xcode, you cannot add new features that are present in XCode 11 such as dark mode, Sign in with Apple, new simulators (yes, there is a way to add iOS 13 simulators into older XCode but I wouldn't recommend doing it), new code signing, Swift UI and many more.
Also - Sign in with Apple is going to be required for a lot of apps soon so that's a huge push into the new XCode.
You will be able to work with older iOS versions, but at some point you won't be able to run an application for the latest iOS releases (for example iOS13) and also you won't be able to use SwiftUI framework for developing.
Of course you won't have access to new features of Xcode.
If you developing on older version of Xcode then you can not use dark/light mode feature on your app, also in future it's compulsory to build/upload app using latest Xcode version for latest iOS support.

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

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

What determines if an iOS app gets the new look in iOS 7

What exactly does iOS 7 use to determine whether the application should be displayed with the traditional iOS 6 style UI (aka iOS6 compatibility mode), or the newer iOS 7 UI?
If I build our app in Xcode 5, with base SDK set to 7 I get the iOS 7 UI as expected
If I build our app in Xcode 5, with base SDK set to 6 I still get the iOS 7 UI (unexpected, happens on real device and simulator)
If I build in Xcode 4.x, I get the older UI as expected
In all cases, the deployment target is set to 5.
Since our app has fairly custom UI we're not ready to move to the new look of iOS 7 yet. However we do need to make some backend changes to support iOS 7 which we need to release now. Can we still submit apps built with Xcode 4.x and expect them to be accepted?
For the time being, you are able to. Apple will make an announcement when they stop accepting apps built with Xcode 4.x. My company is currently submitting apps with Xcode 4.6 since we do not have a new enough operating system for 5. I suspect it will be at least a few months until they stop.
Running against 6.1 Base SDK should do it.
However, as I discovered yesterday. Anything less than 7.0 Base SDK isn't supported by Xcode 5 (officially) and so it is undefined behaviour.
My app suddenly switched from iOS6 UI to iOS7 UI with no code changes.
In the end I restarted my mac and phone, deleted the app, deleted derived data and reinstalled cocoapods and it was working on iOS6 UI again.
Make sure that you set the Base SDK to iOS 6 in both the Project build settings & the target build settings - that should do the trick. Even though the target settings are supposed to override the project, I found that when just the target was set to 6 - it compiled with 7.
Regarding XCode 5, it's true that it doesn't officially ship with the iOS 6 SDK. However, you can extract it from XCode 4.6 and use it in 5.
You'll find the SDK in the XCode app under:
Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Simply copy it from an existing installation of XCode 4.6 or from its .dmg (which can still be downloaded from Apple's website) to the corresponding folder in XCode 5, restart and you should now be able to select it as the Base SDK. Note that you'll have to do this after every update of XCode so you might find it easier to use a symbolic link rather than copying.
We've successfully submitted apps built this way to the App Store although as has been said before me, it would be a good idea to transition to iOS 7 ASAP before Apple makes it compulsory.

Use an iPad 1 for development and debugging in the latest Xcode (4.5), how?

I still have an iPad 1. I use the latest version of XCode for app development which will only debug apps on devices that run iOS 6.
Unfortunately, iTunes will not allow you to upgrade an iPad 1 past iOS 5. Can XCode be configured to debug apps on iOS versions older than version 6?
Another approach would be to upgrade the device to iOS 6 via jailbreaking. I have read that jailbreaking an iPad 1 will give you a path to upgrade it to iOS 6, but I haven't found anything specific to development.
EDIT
It turns out that this problem only occurs when I create a new app using XCode. However if I open sample code from some existing apps (for example SpeakHere), my iPad 1 suddenly appears on the XCode "run list" and I can test on the iPad 1! I suspect that there is something about these apps that is "old" that causes them to work. Can I simulate that somehow on new apps I build using XCode?
No, you cannot use a first generation iPad for iOS 6 specific development.
You can, on the other hand, use the latest Xcode and iOS 6 SDK, and still use your iPad 1 for debugging purposes. You naturally can't use iOS 6 features, because the iPad is maxed at iOS 5.
To enable this, you can download 'Device Debugging Support' packages, to allow you to do this. Go to Xcode->Preferences->Downloads->Components, and see if it's available.
It sounds like you're just accepting the default deployment target of 6.0 for new projects. This means you won't be able to run the application on older versions of iOS, much less debug them. You need to set the deployment target for your project or target to 4.x.

Resources