I'm using Xcode 5.1.1 on a MacBook Pro running OS 10.8.5. I've built an iPhone app (my first) using the iOS 7 SDK. Things are very stable, and the app is, I believe, ready for TestFlight.
Now I'm assailed by Xcode 6 and iOS 8. I want to go forward, but am kind of spooked that switching Xcode at this point may run the risk of breaking things. A lot of the reviews I read are negative, but I expect people who have problems are more likely to bellyache than those for whom things go smoothly. OTOH, I read that TestFlight is well-integrated into Xcode 6.
I recognize that answers to this question may be opinion-based, but I haven't found anything specific offering guidance for my particular circumstance.
Should I take the chance and upgrade Xcode and the app, or wait until I've launched, then upgrade and work iOS 8 support into an update?
Afterthought
I just checked and the upgrade to Xcode 6 requires an OSX upgrade to 10.9.3, which adds another layer of terror. :-O
Resolution
Ok, I steeled myself and went forward with the upgrade--Mavericks and Xcode 6. First thing I noticed is that my keyboard isn't appearing in my user input modals. But that's a subject for another post. Other than that, the OS and Xcode seem to be working ok.
Yes! There will be a few adjustments to make, but there always is. The only thing that's caused me extra time so far is Xcode 6 Auto-Layout for iOS 7 devices (e.g. layout margins). But it's not too bad.
Chances are many of your users are already on iPhone 6 and 6 Plus and/or iOS 8. Do you really want to ship to them without optimizing for their devices?
Related
I have developed a Universal App that works on both an iPad running iOS 9.3.5 & an iPhone running iOS 6.1.4, using two different Storyboards.
I realise that I need to upgrade in order to be able to distribute my App on the App Store.
Can I run Xcode 7 on OS X Lion? And, more importantly, will my Objective-C code still work in Xcode 7?
The code I am using is very basic. I am essentially using a UINavigationController to present data from an SQLite database.
I am not using any animation, location services or camera based classes.
At the moment, I have set my deployment target as 6.1.
I am using 2 third party frameworks: SSZipArchive & Reachability
Can anyone give me some reassurance, before I assign a month's worth of work to the scrap heap?
It is really hard to tell, since it means jumping 3 versions (!) ahead. Anyway, I wholeheartedly recommend you to set git in your project, to make sure you can always revert if something goes wrong. BTW- I would recommend updating to Xcode 8, the latest version of Xcode.
Following are the answers to your queries :
Which version of Xcode 7, you will be using? You will have to upgrade your OS too to run Xcode 7 as it runs on OS X 10.10.4
Your code will probably work on Xcode 7, but you might have to tweak a few things. But you will have a lot of online help to fix these issues.
From Xcode 7s Release notes:
Xcode 7 requires a Mac running OS X 10.10.4
In general, you can copy /Applications/Xcode.app to /Applications/Xcode_4_6_3.app and than update (or maybe better install) Xcode 8beside it, so you can always use your legacy version side-by-side.
Without knowing your code nobody can tell if it needs modifications to build under Xcode7. As the step from Xcode 4 to Xcode 7 is big, plus you want to build for the App Store and therefor have to target iOS 10, I assume you will have to tweak your code due to deprecations and such.
You need to build with Xcode8 to archive this btw.
If you were working with Storyboard, I would also expect issues as Storyboard has been developed a lot in between.
Will my MacBook Pro OSX Lion, handle the XCode 4.6.3 to Xcode 7
Absolutely not. Xcode 7 requires a much later system version than Lion.
In general what I have done in your situation is to install the required system and Xcode onto an external drive or a partition on the internal drive, and boot from that. This allows me to experiment and see whether the transition is going to work.
There is no need, therefore, to guess — which is what it appears you are trying to do.
I'm getting very interested in the new Swift programming language and I'd like to start coding some examples with it before XCode 6 becomes available to the public.. So I'm thinking to subscribe to the iPhone Developer Program and I have two questions:
1) If I install XCode 6 beta and I already have XCode 5, does it install over it or do I need to remove XCode 5 at first? When XCode 6 is released in the App Store, does it upgrade the XCode 6 beta or do I need to remove it before? I'm asking this to avoid messing up my OSX installation, which I use for work
2) If I install IOS 8 beta on my iPhone, do I loose my current settings/configuration/data? When IOS 8 is finally released to the public, will I risk to loose settings/configuration/data? I'm asking this because I do not have an IOS Device to use for the only purpose of developing software and I would install the IOS 8 beta on my primary phone.. I understand that it is beta and that I could have some problems, but at least I'd like to understand what may happen to my settings and data, to evaluate if it is better to buy an old iPhone 4s to develop software.
Thank you if you can help me with your own experience with the iPhone Developer Program or point out some links.
You can run Xcode 6 Beta along side Xcode 5. They will not interfere with each other. When Xcode 6 hits the app store, it will update your Xcode 5 install, and you will need to delete your Xcode 6 Beta manually.
You can install iOS 8 on your phone without losing data. Of course, make sure you back it up first though, because you may lose everything. It has happened. You shouldn't be installing betas on a primary phone, unless you're ok with not having a phone for some length of time if something breaks.
If you're looking for a test device, you're better off using an iPod touch 5th Gen, or an iPad mini. They're cheaper and don't need to be activated. Sometimes an old phone will lock itself until you activate it with a valid SIM card. Using an iPad mini as a test device lets you run iPhone and iPad apps so it's definitely more versatile.
From what I can find out, the IOS 5.1 simulator isn't available on Xcode 5/Mavericks. Am I wrong about that?
The issue is that I'm developing an iPad application, and I want it to run on an iPad 1. I'd love to target IOS 7 and be done with it, but unfortunately the iPad 1 doesn't support anything past IOS 5.1. Is there some way to target IOS 5.1 yet be able to debug/test on Xcode 5/Mavericks?
Surely most apps still support the iPad 1 - there are still a lot of iPad 1's out there. But since the simulator isn't available, it's like Apple isn't letting me upgrade to the latest Xcode and OSX. What do others do? I'm hoping there's some way to do this that is eluding me!
You are correct, the IOS 5.1 simulator isn't available on Xcode 5/Mavericks. However, you can still connect Xcode to a real iPad 1 and develop that way. I bought a used iPad 1 for about $100 specifically for this purpose and it's working fine.
I have project which was developed iOS 6 and when I install it on device with iOS7 it's looks good. But now I update xcode to 5th version and now it's look not so fine. I know about application migration. My question is will I have some problems if I will continue using xcode 4 and upload to Apple will be targeted to iOS 6?
Your iOS 6 app runs in a compatability mode when run on iOS 7. You can currently submit apps compiled with older versions of Xcode but they will stop accepting them at some point -- and probably quite soon.
To directly answer you question: no, you don't have to update now. But assuming you will want to maintain the app for more than another couple of months it's some work you'll have to schedule.
Update: Apple will require new and updated apps to be compiled with Xcode 5 from February 1 2014, around four months after iOS 7 came out.
You are fine with Xcode 4 -- for now. But I would advise to get familiar with the iOS 7 SDK and Xcode 5 as soon as possible.
You did not explain why "it's look not so fine". Just set the target OS to 6.0, and it should really behave exactly the same way, maybe with a couple of more warnings.
I have left a project on the App Store, compiled with iOS 5.
With my surprise (I did not know about that) I found out that the App, running on iOS 7 device looks perfectly fine, without all the problem of elements positioning, just as it was on an iOS 5/6 device. Even the keyboard is displayed old style.
On the contrary if I run with a simulator, everything is messed up. So I choose to leave as it is, and plan a layout upgrade in the nearest future.
Yes. You can use 4.
You want you can build against an older sdk with 5.
How to build against older iOS versions with the latest Xcode downloads?
I only have the Macbook, which I CANNOT upgrade to Lion. I'd like to get started developing IOS applications. I've got an iPod Touch 5.0.1, so I'm good there. My main question is this-
When I finish making my applications and I deploy them to Apple, will they work just fine on other devices, like iPhone 4S 5.1.1?
Also, if I pay the $100 to Apple to develop, will they support my Xcode 4.2 for the whole year?
Will I be able to deploy my applications using this scenario without fear of Apple cutting me off?
Thanks in advance.
Xcode 4.2 is the last officially supported Xcode version that runs on Snow Leopard, but if you do developing on it, anything that works for older iOS's will run on your iDevices running newer OS's. You might be able to get newer SDK's to run with Xcode 4.2 but myself, I wouldn't risk it.
I think the big issue you're going to run into is that if you install a new OS onto your iDevice for testing, you may end up not being able to use your device for testing (in the Xcode organizer). So you probably want to keep at least one device back on the last supported iOS version for Xcode 4.2.
And this should take care of you for the whole year.
And hopefully you'll make enough money from whatever app you're building to afford a Macintosh where you can run Mountain Lion (OS 10.8) and Xcode 4.4 or 5 or whatever will be out a year from now.
Yes.
Yes.
Yes.
It really doesn't matter which Xcode do you have. You can even have Xcode 3 ;)