I've tried to find an answer by googling around but I haven't found it. On 18 September 2013, Apple will release iOS 7 for compatible devices. After this date to publish an app update or a new app, must I build it using Xcode 5 or can I use Xcode 4.6.2? If I want to use Xcode 4.6.2 to build my application can I use it?
Thanks!
You can install both Xcode 4x and Xcode 5 on the same machine side by side. It would be better if you test your app on Xcode 5 as soon as possible, because overnight millions of users will shift to iOS 7 and your app might not work at all or work improperly in iOS 7.
Last week when I tried to publish my app from Xcode 4, there was no issue but later I received a email saying 120x120 image is missing which is recommended for iOS 7 users. Hence better if you upgrade to Xcode5 as soon as possible but for now Xcode 4 will definitely work.
After all previous updates, developers were able to use previous versions of XCode and SDK. I think this time will be the same. So don't be worried.
Related
We are about to release a new version of an existing App to the AppStore this week. I would like to know whether Apple will reject my App because it is not built using Xcode 6.
I have experienced some issues when building the App using Xcode 6 but App works perfectly in all OS's with Xcode 5. To be honest I thought I could submit the App to the store even before the release of iOS 8 and Xcode 6.
We do not have much time now and need to submit the App to store this week itself at any cost.
Please help.
(Sep 2014) I just submitted an iOS app tonight, and iTunes Connect stated that Xcode 5.1.1 or newer may be used for submission.
Edit: a comment submitted 28 May 2015 states that Xcode 6 is now the minimum version.
Of course you can build and upload to App Store with xcode 5
Right now there is not any specific instruction or guideline available which indicates minimum requirement for upload any app build to app store with xcode 6
Right now (September 2014) you can submit your apps with both Xcode 5.1.1 and Xcode 6.0. In a few weeks/months Apple will stop accepting submissions with Xcode 5.1.1, so until then you have the best of both worlds.
Going by previous versions, there will most likely be an announcement as to when exactly Apple will request Xcode 6 for submissions over at https://developer.apple.com/news/ - watch that newsfeed.
Recently, I uploaded my application to Apple store from XCode 4.x with OS 10.7. After that I upgraded my machine with Xcode 5.0 to start with iOS 7. Now I downloaded my application from the Apple' store to iPhone 4S with iOS 7 installed. I see application's UI on device is totally different from the iOS 7 simulator. On device navigation and Tab bar are old fashioned like iOS 6 while I am expecting like iOS 7.
I think the reason behind this that the application has been uploaded from XCode 4.x and when I will upload it from Xcode 5 it will show the latest UI of iOS7.
Do anyone facing the same problem? Do you think Apple should do it itself?
You understand it right. Applications must build and updated on xCode 5 for showing the new iOS design.
You must check your app on xCode 5 before uploading it as "iOS7 ready", Note that your app might work fine with the old design on iOS 6 but no one can check that for you as they might be UI problems and even crashes depending on your old UI and code.
If you are using 100% iOS native interface you should not have to much work.
You are app is built on iOS 6 SDK, To use iOS 7 UI features, build your app using iOS 7 SDK. iOS 7SDK will be available with xCode 5. SO upgrade to xCode 5 and build app against base SDK 7.
Xcode 7 doesn't exists ;)
Your problem is that you compiled your app with Xcode 4. Only Xcode 5 is embedding iOS 7 SDK. If you want to solve your problem you have to submit your app again but compiled with Xcode 5.
(don't forget to set your correct deployment target)
I've been wasting my whole day on this issue, and could not find a solution:
I've been developing an application with iOS 6.1 SDK, and the whole design relies on the iOS 6.1 UI. Yesterday, I've updated my phone to iOS 7, and after the update finished, the previously deployed app, which came back from the backup looked and worked the same as before (on iOS 6.1); everything was fine. However, I had to update my Xcode to version 5, so I can continue deploying successive debug versions to my iOS 7 device during development. Before updating to Xcode 5, I've backed up the iPhoneOS6.1.sdk package from Xcode's internal folder; then updated to Xcode 5, and then placed the iPhoneOS6.1.sdk package back in its folder, next to the iOS 7 SDK, which came with the Xcode 5 installation. I've switched my project's base SDK to iOS 6.1, which did came up in the base SDK selector list, and made sure in the interface builder that all my storyboards/XIB's are set to build as iOS 6.1.
However, when I deploy the application to my phone, it looks like crap, as it's shown with iOS 7 UI elements. If I use a device with iOS 6.1 installed, everything looks fine; it looks like XCode doesn't give damn about my choice of base SDK, and links the application against iOS 7, if I choose to debug on an iOS 7 device.
How can I force Xcode, to deploy the same 6.1-linked stuff to all devices, regardless of it's installed iOS version?
Find and download old SDK. Older SDKs are found here,
https://developer.apple.com/downloads/index.action?name=Xcode
I have copied the xcode.app directory as Xcode_4.6.3.app.
Now you can test and debug in both xcode versions. You have to run them from the corresponding folders or create shortcuts in your desktop. When I build from command line i give the parameter as iPhoneOS6.1 instead of iPhoneOS7.0
This worked great for me in Xcode5 and iOS.
Go to into Xcode5's SDK dir. Add a symbolic link to the old SDK like this:
ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk
In Xcode 5 toolbar, for your target you will see your device listed twice (you also mentioned this in your question ). For some weird reason one is building with iOS 6.x appearance and the other with iOS7 appearance. Trying building/running on one of the device from this list. If you still see the iOS7 appearance, click the stop in the toolbar, select the other device and build again.
I am not seeing any crashes in Xcode 5, so you may want to reinstall if it is crashing a lot for you.
Firstly, you will need to copy and paste the iOS 6.1 SDK from a previous version of XCode. I believe other people have given instructions on how to do this.
Then, assuming you intend to continue development for iOS 6 (for example, without breaking the iOS 6 UI, and you don't intend to use new APIs), do this:
XCode should recognize 2 devices every time you plug in an iOS 7 device to your computer
Run the application on both of them (they are the same device actually, but one of them will be running the application iOS 6-style, and the other one will try to update it to iOS 7-style)
Remember the one running the app iOS 6-style (for me it's the topmost), and do Product > Archive on that device
This should keep on allowing you to build your applications with the iOS 6 style UI, at the same time allowing you to use Xcode 5. I would recommend starting a new development branch exclusively for UI changes to get your app's UI iOS 7 compatible.
Our iPhone Apps run beautifully up through iOS 6, but certain features do not work on the iOS 7 beta. My fear is that we won't be able to complete our iOS 7 compatibility before iOS 7 is released and our customers will upgrade to iOS 7 and the App will be unusable....resulting in negative reviews, etc...
Does anyone have any suggestions on how to best handle this? Is there a way to set a Maximum SDK that the App supports?
I think if you do this you will get bad reviews anyway, but it may be your only option if you can't revise in time.
You need to take a look at this SO answer and use a condition with a macro like
if(SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(#"6.1.3")) {
// work normally
} else {
// fail gracefully
}
to disable any part of your app that is broken post that version number.
I don't think there is a way to restrict users with later versions installing and trying to use your app as there is with users with versions earlier than you require. The reason is probably that while it's OK to use new features and lock out older devices it generally isn't OK to not support new devices indefinitely.
If you run a binary built against the iOS N SDK on iOS N+1, the device substitutes the behaviour of iOS N. Assuming you have an iOS 7 device set up for testing, try downloading anything from the App Store — you should see gradients and wide UISwitches and view controllers acting properly when wantsFullScreen is set to NO and everything else.
So you don't need to handle anything. It's dealt with automatically on the device.
There is not maximum iOS version setting anywhere but it shouldn't necessary.
If you build the app with Xcode 4.6 / iOS 6 SDK, then run it on device w/iOS 7 installed, does it work OK? If so, that's what you should release first (or leave in the app store). If not, you need to fix just those problems that show up and release an update made with Xcode 4.6. Just fix those issue, don't try to restyle and redo everything for iOS7 yet. Most apps built with Xcode 4.6 won't need fixes to run on iOS 7.
When you build with Xcode 5 / iOS 7 SDK, then you'll want to fully use and support iOS 7. But you can't release that build until we get a gm Xcode/SDK anyway. You don't have to go down this path right away if you aren't ready.
Try systemVersion of UIDevice.
Format is 6.1.3 or 7.0.1
Split them with '.' to get major version
https://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/systemVersion
I would like to install the iOS Beta 3 on my iPhone 4 but I also have a couple of updates I'm working on that I want to submit in the coming weeks. So I was wondering can I still submit these app updates if I've tested them using iOS 5 Beta 3 on my device?
No, you need to download the beta of Xcode that works with iOS 5 in order to test them on your device, and this version of Xcode is not enabled for submitting apps to the App Store.
Well first of all you should never install a beta on a device that isn't dedicated to testing as it will be insanely buggy.
Other than that you should be fine providing you...
1) Install the iOS 5 SDK in a separate directory because the beta SDK can't submit apps to the App Store.
2) Don't use any iOS 5 specific APIs in your app because this will cause issues on any other OS version.