3
votes

I'm having a problem with the Apple review process. They rejected my app newest version because it had an issue when running on iPad Air 2 with iOS 8.1.2:

"We found that your app exhibited one or more bugs, when reviewed on iPad Air 2 running iOS 8.1.2, on both Wi-Fi and cellular networks, which is not in compliance with the App Store Review Guidelines." Specifically, tapping Renew Subscription does not start the (In App) purchase process, it dismisses the dialogue box."

The problem is that I can't find any iPad Air 2 devices in my Xcode simulator. Searched for a solution for a lot of time but I couldn't find anything. I've tried to uninstall Xcode and then reinstall it again. Nothing helped. I'm running Xcode 6.1.1 on Mac Book Air with Yosemite. Please help. Thanks Eyal.

2
Have you tried just using the iPad Air Simulator? Or a real device?mginn
On the iPad Air simulator everything works fine.Eyal S.
What about a real iPad Air 2?mginn
Maybe it has something to do with being on a real device...do you have an iPad at all to test it on?mginn
I have an iPad Air (1) and iPad Mini Retina. I'll test that issue on them and let you know if the problem could be reproduced.Eyal S.

2 Answers

2
votes

Go to Xcode Option -

1) Windows-> Devices-> then a window will open. At left bottom corner of this window you will get +(plus) button. Click at there and add Ipad_Air2 Simulator.

or 2) Xcode -> preference -> download -> now download simulators.

1
votes

Apple is going to test using the latest hardware and software. Their statement that they used an iPad Air 2 backs this up. However if you test it on an iPad Air with the latest software it should be the same.

The simulator mostly simulates screen resolution and general device type differences. Like how an iPad and iPhone have slightly different ways that they handle certain UI types. There is no iPad Air 2 specifically in the Simulator because in those ways it is exactly the same as an iPad Air 1. So it only has an iPad Air category. The simulator does not simulate the differences in processor speeds or even the differences between an A7 and A8. For the simulator your code is compiled for the mac processor.

Also, you can not test In App Purchases in the simulator, only on devices. So it wouldn't help you even if there was one there.

If your handling of IAP's works differently between on your testing on a physical iPad Air (1) and their testing of it on a physical iPad Air 2, most likely your testing will have the same results even if you went out and purchased a new iPad Air 2. So that's not a solution either.

I would try testing your app by compiling it for Release instead of for Debug. These are different and I've seen bugs only happen on the released version. I try to remember to always do this once before submitting an app. To change this go to the top left where is shows your app name > iOS Device and right click there and hit Edit Scheme.

Edit Scheme

Change the Build Configuration from Debug to Release for Run. Just remember to set it back after this test. Because for most of testing you want it set to Debug.

The only other thing you have to check is that you're still hitting the Sandbox instead of the real apple IAP server. For me this is temporarily changing the following:

#ifndef NDEBUG
#define kReceiptValidationURL @"https://sandbox.itunes.apple.com/verifyReceipt"
#else
#define kReceiptValidationURL @"https://sandbox.itunes.apple.com/verifyReceipt"
//#define kReceiptValidationURL @"https://buy.itunes.apple.com/verifyReceipt"
#endif

Again you REALLY want to make sure you set this back before submission.

When you test like this my guess is that that it will behave the same as the Apple Review team is saying. It will dismiss the box like it's doing for them. And then you can start to work on figuring out why.

Also as a side note I can tell you that I'm having this same problem under iOS8.1.x. But my app was approved under 8.0 and my IAP worked fine then. But now under iOS8.1 IAP's no longer work. Once I find a solution I'll post it here. Please do the same if you find it. Thanks!