Testing an app developed with SDK6 on iOS7 device - iphone

I have an app I want to update of other reasons than change of of iOS, and the work to redesign it for iOS7 is rather big and also not looking good with iOS7.
If I build it with SDK6 using Xcode 4, how do I test it on a device running iOS7. Or do I have to see how it behaves when it is coming up at App Store.
I have also Xcode 5 but with this I can not build it with SDK6, can I?
I can see the result in the iOS6 simulator after a SDK7 build but since the app does not look good with that I do not want to update it that way.
The look is ok on a iOS7 device I know, but how to test it ??
And my devices running iOS7 are not compatible with Xcode 4.

The best way for you is to install Xcode 5 keeping Xcode 4 on your Mac.
For that, copy past your current Xcode 4 in a folder named Xcode4 on your application folder and renamed Xcode.app to Xcode4.app.
After that, update your Xcode to Xcode 5 and create a symbolic link to have the iOS 6 SDK on Xcode 5.
Have a look here, where I explain how to make this symbolic link.

Related

Different UI behaviour for iOS 7

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)

How to deploy project with iOS base SDK 6.1 to device with iOS 7

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.

Testing on iOS 3.1 simulator

iOS project. Base SDK 4.2, deployment target 3.0. A customer is complaining about an issue on iOS 3.1 (he has an old device).
I tried installing Xcode 3.2.3 - the oldest there is for download. It does not offer iOS 3.1 as a test target. Does anyone know how can I enable older versions of iOS on the simulator?
The box also has Xcode 4 (in a different folder). Could it be the case that they're sharing the iOS simulator, and the backwards-incompatible one from Xcode 4 is getting in the way?
There is no substitute for testing on a real device.
I've had a problem with my iPod touch (3rd gen, ios 5.0) crashing in one app. Every day. The dev won't buy, beg, borrow or steal a real iPod touch to test it on so he can fix it. As a user this is extremely frustrating.
EDIT:
The final versions of Xcode with the iPhone SDK, as it was called then, are not available from Apple's download page, but the direct links still work.
The direct links can be found at:
http://chris-fletcher.com/2010/08/28/howto-install-iphone-sdk-2-0-3-1-for-xcode-3-2/
If you use the latest Xcode, you can install device debugging support via the Downloads->Components section, a la: http://cl.ly/3U1V1G3W2p2E1G29342e
http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html
Some of the links are dead though. Apple is removing those old files little by little. Get them while supplies last.

Xcode debugger not stop i ipod with IOS 5 Beta

I have 2 devices,iphone with 4.3.1 and ipod with 5.0.
The problem is that in my iphone the debugger stop in break points, and in ipod the debugger won't stop on break points.
Any ideas on why that happens?
Have you installed the iOS 5 SDK in your Mac? I think that is what you require.
Also you need to understand that some of the functionalities might still be missing in some of the cases as it is still a BETA version. It might not be a fully functional version yet.
So either you can try using the iOS 5 SDK in your mac or if you have already tried it then I think you should wait for the final iOS 5 full version to work properly.
Also in the below link, they have discussed that some of the functionalities of iOS 5 still doesn't work on iPod. So may be Apple is working on it before the final launch.
http://www.ifans.com/forums/showthread.php?t=344401
You can also try referring to this link:
iPhone Dev: Xcode debugger does not stop on breakpoints
I think its the same problem like with iTunes. If you use a beta SDK you also need beta iTunes to sync with your device and a beta Xcode. Do you have the beta Xcode? Thats because the official Xcode release don't have an iOS 5 debugger. Open your Organizer and look if your iPod is listed as a supported debugging device.
Do you have iOS5 SDK installed as well? Are you testing with that? If not, the app won't stop at breakpoints. Your XCode version does not have the iOS5 debugger.
Not the solution to your problem, but I faced the same problem and solved it using UIAlertViews & NSLogs. I should also mention that I even installed xcode with iOS 5 SDK beta, even after which the breakpoints won't hit.
It was some issue with the symbols. You can create & display a temporary alert view where you want to put the break-point with its message/title being the value that you want to see, or you can log the value.
To debug a device running iOS 5 you will need to install the beta version of XCode, which contains the iOS 5 SDK. Once you register as an apple developer you can download it from developer.apple.com.

How do I use the iPhone Simulator in 3.2 (not iPad Simulator)

I'm fixing my app to be a universal binary. Testing on the simulator seems to default to the iPad. For small corrections like checking orientations and small UI updates, the only way I can find to get the iPhone version is to plug in my iPhone and build and run on device.
Loading the debugger takes valuable time, when running on simulator is so much faster for this kind of work. Can I set the simulator to default to iPhone for this? Setting it to 3.1.3 doesn't work because of the 3.2 code I have in the binary for the iPad.
EDIT:
The Hardware -> Device, and ->Version menu choices in the simulator quits my app. When I relaunch, it goes back to the iPad. The app is not installed in the simulator
If you don't have the latest xcode, get it.
Set the project info to build for 3.2, but in the build drop down pick iPhone Simulator 4.0 and it will open in the iPhone simulator instead of the iPad simulator.
That is the dilemma: if you want to use OS 4 on the iPhone, you have to use iPhone SDK 4, which comes with XCode 3.2.3.
Previously I used iphone_sdk_3.1.3_with_xcode_3.2.1__snow_leopard__10m2003a, where the simulator was fine, but now after I update the iPhone to OS 4 (which is by iTunes), I cannot use the SDK 3.1.3 any more, and the simulator 3.2 which comes with SDK 4 actually does not work for iPhone at all!
Even when you specify the "iPhone OS Deployment Target" to "OS 3.1.3", and an iPhone-frame shows up in the iPad simulator, many functions are not responding at all.
Does Apple have an official answer to this dilemma?
I finally solved this problem myself.
First, install new version of xCode, which is xCode 4.
Then set project scheme to iphone simulator and run app in xCode several times.
And re-install xCode 3 and the problem will be gone away!