My app gets rejected from Apple because it crashes on iPhone 5 - iphone

Apple has rejected my app due to the following reasons:
1) We found that your app crashed on iPhone 5 running iOS 6.0.1, which is not in compliance with the App Store Review Guidelines.
2) Your app crashed on launch on both Wi-Fi and cellular networks.
I'm running Xcode version 4.3.2, which isn't compatible with iPhone 5 i think, so i'm suggesting that my app rejected because i tested it in old Xcode version which doesn't support iPhone 5 architecture, right?
for the second reason Apple rejected my app i think because even my app doesn't use internet connection through the code i have to check the availability of internet connection on launch by taking advantage of Reachability library, right?
note that i tested my app on both simulator and actual devices all running iOS 5.1.1 and lower not iOS 6
any help? thanks on advance !

Simple:
Build, Debug, and Test using a more recent version of Xcode, using the Simulator and Devices (with iOS 6)
Remove the issues cited, and any other crashing issues
Re-Submit
Reachability is not necessary. Your app will need to to handle errors gracefully (not crash/explode/leak/fall into a weird state).

Related

Xcode 4.5 with iOs 6 issue in iOs 4.3

I was developing iPhone/iPad apps using XCode 4.2. With the recent update, I upgraded my XCode to 4.5 with iOs6. And I developed an iPhone app with this. But the issue when I run the app in iPhone 3GS with iOs 4.3, it crashes some times. I couldn't find any specific or common reason for this crashes. It happens randomly, not when doing a specific action. But it happens very rarely in iPhone with iOs 5 and iOs 6. I tried to track the issue using Instruments, but still I couldn't find any reason. Some memory leaks are there, but it wasn't the issue.
So, I have some guesses, may be it is happening due to the device is 3GS? Or because, some codes that come with iOs 6 not supporting in iPhone 3GS or iOs 4.3. In the Xcode it is not showing any warning.
So, I am not sure, is there any possibilities for my guess??
Also, I would like to know, now we have iOs 6, so when we develop new app, should we still support iOs < 5? Or can we specify it needs iOs 5 or above as requirement?
Please give me some suggestions.
Regarding your first question - "App crashing randomly". You have mentioned that your app crashes on all the iOS versions - rarely on 5 & 6 but frequently on 4.3. If this is the case, then as per my experience, this issue is mainly related to "Low Memory". To verify this, debug your app on device and check your Debugger giving you "Low Memory Warning". This is the way you will find your issue.
Now regarding your second question - "which iOS to support". Answer to this would be iOS 5.0 and above - YES. Not all the iPhone/ iPad users have updated their devices to iOS 6. Also some of the users can't because of device issues. So you must provide support for iOS 5.0 at least. As per the latest stats iOS device users are hardly using iOS 4.x but iOS 5.x users are plenty enough. A lot of apps in App Store don't provide support for below iOS 5.0. So go for iOS 5.0 and above. Rest it depends on your requirements like if the app is pretty simple enough then providing support for below iOS 5.0 is not a headache.

is Store Kit framework working on i OS 6 Simulator?

I implemented In App Purchase in my application. It is working fine on iPhone 5.1.
I know Store Kit is not working on iPhone Simulator 5.1.
But on i OS 6 simulator, i can connect to App store and i get alert for confirmation In App Purchase. But the transaction is failed with error on iOS 6 Simulator.
Any one please explain reason for this.
Simulator
For this release, iOS Simulator does not support testing In-App Purchase. Please use a device to test your apps that use this feature.
iOS 6.0 Release Notes
On Xcode 4.5.2 and iOS 5 and iOS 6 it works fine.
I try in simulators for iPhone 5 and 4, and on all iPads too.
There is only a little delay in the simulator, but the transaction is fully functionally
I see that is very important the configuration in iTunesConnect.
In my opinion is better to check the ItunesConnect config before change the code.
the docs say that IAP can be fully tested in the sim, except for hosted content:

ios app build for version 5.0.1uploaded to app store can be run on ios 5.1?

I did build app for ios 5.0.1 using xcode 4.2 and uploaded it on apple store. They rejected my app due to crash issue occurs when they install and run on ios 5.1.
Could you please let me know if we build an app for ios 5.0.1 will not be run on ios5.1 iphone device.
What will be the way so I can approved my app at apple store that is build for ios 5.0.1.
But two days ago they approved another app that is build for ios 5.0.1.
Should I query to apple store.
Please reply me thank a lot for time frame given to my ques.
The app can run in iOS 5.1, the thing is that you dont know how that app is going to work on 5.1, so probably you are using something that is allowed in 5.0.1, and in 5.1 is crashing.
Your only option now, is to download the 5.1 on your xCode and check what is going on.
Yes, Apple will approve apps that are built using the 5.0 SDK, though probably not anything earlier. They pretty much always test using the latest version of the OS so you should absolutely test with it before submitting. I'd venture that there's no reason not to develop with the latest too.
The changes between 5.0 and 5.1 are not huge so, chances are, you do have a bug. Apple normally send crash reports when they reject for these reasons.

After iOS 5.0.1 upgrade, Test iAds unavailable on iPad 2

Both versions of my first App "Puffer's Train challenge" are currently sitting in the Apple queue "In Review". Saturday night I upgraded my iPhone 4 from 5.0 to 5.0.1 and also installed 5.0.1 on a new iPad 2.
Built & installed Lite versions of my app with iAds onto both devices. 5.0.1 initially caused both to crash. I was able to resolve that quickly (bad order of framework calls on my part) However! I spent the REST of Sunday trying to chase down any reason that test iAds are being served up to my iPhone (using wireless connection only to compare apples-to-apples), but the same code and the same calls fail with the error message "No inventory available" on my connected "wireless only" iPad 2.
App is built using xcode 4.2 for iphoneos, not universal, so I verified that the iAd framework call: ADBannerContentSizeIdentifierPortrait is returning 320x50 as it should. I "think" this rules out any problem that would be caused by different sized iAd requests.
Has anyone else experienced this same issue with Apple's test Ads using an iPad 2 device upgraded to 5.0.1? If so, I'd love to know that so I can stop (or at least slow down) pulling my hair out!
ps. Google's AdMob ads with which I replace iAds when not available, work Just Fine!
Because you're doing a Build & Install you're not using the Live (read: App Store) version of your app. This is why you're seeing Test Ads instead of actual Live ads.
Any time I've ever install an app to a device with Xcode I'm greeted with Test Ads from Apple. I believe this is because Apple intelligently looks at your app (either the version numbers or the provisioning file baked into the app) and knows that it's a developer build.
Now, if you're seeing Test Ads from the version of your app you've downloaded from the App Store then that's an entirely different problem. I've seen this as well but it doesn't sound like your problem.

Testing for bugs on Apple devices that you do not own

I'm starting to send out a beta version of my app for users to test. One came back and told me that the app crashes on her iPod Touch (2nd Gen). How do I debug for this considering I don't own one. All I have is the iPhone 4, yet there 9 other devices (each generation of iPhone, iPod Touch and iPad) that I would like my app to run on. Any advice?
EDIT 1
There is no iPod Touch hardware option in the simulator. Should I just assume that it is treated as an iPhone?
Hoptoad App is great for this. You can sign up for free for up to 1 project, and the implementation is very easy.
http://hoptoadapp.com/pages/home
For starters get the crash logs from your users' devices and try to debug based on those. Not a big help in testing on devices you don't have, I know, but at least you'll be able to figure out what crashed on each device your beta testers have...
You could try Apple's IOS simulator.
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/125-Using_iOS_Simulator/ios_simulator_application.html
To set the iOS release used in the
simulation environment, choose
Hardware > Version, and choose the
version you want to test on.