iOS App Submitting failed - ios

I developed a apple application and actively running for almost a year. As per our design and rules, users can only download and use our app trough iphone (mobile).
Now, Im uploading another binary because of some update and it was declined. For the reason which is "The design has a lower quality from ipad".
Wait, the app is for iphone only, why are they reviewing it for ipad? nobody can install or seethe app using ipad except the developers. Can anyone explain me why?

Related

Debugging an edge use case with IPv6 network on IOS for app store submission

A app submitted recently to app store failed in review, one problem was an odd bug which I would describe as an edge use case scenario.
The specific bug was described as
"We discovered one or more bugs in your app when reviewed on iPad running iOS 10.3.3 on Wi-Fi connected to an IPv6 network."
The screen shot provided saying they could not find a file called data.js
This file is part of the app and supplied within the IPA. If it was not all other devices would fail testing aswell. Also the app does not make any external api call's at all unless someone is making an IAP.
How can I simulate this environment with xcode, the simulator doesn't give me an option to define network type?
How is the best way to respond to this with apple? Im cautions of just resubmitting the IPA as they say my developer account can be terminated for failure to fix things previously highlighted review.
I feel like this is a very small use case of users, I would prefer just not to support iPad but unfortunately cocoon.io doesn't support setting a device target when building the app.

How to unsupport iPad properly in iTunes

We have an app on AppStore for almost 3 years, and we've set Deployment Device Info of this app as "iPhone" (not "Universal").
Earlier it seems iPad users could download our app and used it by enlarging the screen.
Now our uses reported they cannot download our app. (The guy who reported uses iPad Air + iOS7.1.1)
So, my first question is..
Is this new AppStore regulation that does't allow iPad users to download apps with "iPhone" set as deployment device target ?
We are fine if it's the regulation, but more confusing is when seeing the app in AppStore with Mac, we still see our app is compatible with iPads.
So my second question is..
From what info AppStore shows this compatibility information ?
Our aim is not to confuse users, so we want to go either way - tell users we are completely unsupporting iPads, or tell them you can download the app anyway.
That device list suggests that you require cellular access. Does the user in question have a wifi only iPad? The dialogue would be shown if the app required capabilities that the device did not have.
There is no change to the App Store policy - iPad users can still download iPhone apps, and it's pretty clear in the store that you're not getting an iPad-native version.
To answer your second question, the information shown in the App Store comes from what is set in your info plist- the minimum targeted version of iOS, and then device capabilities. Device capabilities are explained here.

Submit IPhone app on the app store, then decide to submit an IPad app?

I have never submitted an app to the appstore, but I will in the near future.
So far I am becoming quite comfortable with designing for the IPhone but not the IPad.
I understand that by putting a universal PAID app on the appstore that the customer would only have to pay once to have access to both the iPhone and Ipad versions.
What if you submit an IPhone app for $0.99. then later decide you also want an IPad App version for $0.99.
Would the consumer have to purchase both?
Or is there a way to tell Apple that "this is the IPad app" of this IPhone version, and so the consumer would only have to pay a one time fee (if he has already purchased the Iphone app = free download for Ipad App).
Thankyou
If you want just one app at one price, you can submit the app again (in a subsequent version) as a Universal app that runs natively both on iPhone and iPad. This kind of thing happens quite often, as developers expand their horizons...
If you submit an iPhone only app and an iPad only app they will be two separate apps with two different names and two separate prices. People do that - the New York Times app works that way, I believe - but it isn't as common. For one thing, it's confusing, because the iPhone version will run on the iPad, but as an iPhone app, so the user may not realize this is the wrong app (and it will probably look kind of crappy).
GoodReader is another well-known example where the iPhone version and the iPad version are two separate apps: see http://www.goodiware.com/goodreader.html

Do I need an iOS device to test PhoneGap Built apps?

I'm a complete noob and figuring out all this as I go along so bear with me.
I've built an app using jQuery Mobile, used PhoneGap Build and it works totally fine on Android and I'll deploy it soon. I'm now trying to figure out the more complex steps towards getting it ready for the iOS market. I've got my developer account set up and have tested my app as built with Xcode 4.2 and Cordova.
What I'm having confusion over (well one of the things) is whether or not I need an actual iOS device in order to get the proper provisioning and certificates. Can I get those, run the package through PG Build and then test it with the Xcode iOS simulator? Must I bother my friends to give me one of their iPhones to test on?
If I'm being vague or asking this the wrong way I apologize.
I'm currently building an app for iOS using Phonegap and even though I have done some testing with a physical device I have seen that the simulator works really well. I mean it would definitely be a good idea to at least run one test of your final version on a physical device before you decide to submit, Apple and pretty much everyone else very strongly suggest that you do, but you aren't required to test on a physical device. All the provisioning and certificate stuff can be done through the Apple Developer site.
The only real reason I could see your app not getting approved relating to this topic is if there is some weird glitch that is only present on a physical device and looks fine on the simulator.
And keep in mind, though it probably won't get you disapproved I've noticed that Phonegap apps that use jQuery Mobile tend to be more glitchy on the transitions compared to when they are run on the simulator.
No you don't need an iOS device to get certificates. You can get them using OpenSSL. I created a GUI to help do just this for Windows users.
However Apple is one of the strictest in approval. It takes 8 days for them to approve an app. And they have been know to not approve apps simply because of there appearance.
Now I myself prefer to have iDevices to test apps.
http://community.phonegap.com/nitobi/topics/detailed_guide_for_setting_up_building_ios_apps_without_a_mac
http://community.phonegap.com/nitobi/topics/ios_app_rejected_advice_on_how_to_fix_it
To help with some App Rejection issues you may get when submitting the app.
https://github.com/AndiDog/phonegap-ios-tabbar-plugin
https://github.com/LinuxPhreak/iOS-Win-Signer
You will need an Apple computer to submit apps to the App Store. Apple no longer has a web based App Submission

"This code is for an app that is not compatible with this device."

We have an app in the Apple App Store that we can't seem to get installed on a Verizon iPhone (from the App Store, not Xcode). This may have nothing to do with the fact that it's a Verizon device, but that is the main difference I see between it and the devices I can get to run it.
We are attempting to install the app using a promotional code, but we receive an error when hitting Redeem, as seen in this picture: (promo code blocked out)
ERROR: This code is for an app that is not compatible with this device. You can redeem it on your desktop computer or a compatible device.
The error device is an iPhone 4 (Verizon) running iOS 4.2.8. This error was received when the app was built for 3.x and the assumption was that Verizon devices would not accept apps not built with at least SDK 4.
However, the app was recently updated (yesterday) to use the 4.3 SDK. The app has its deployment target set to iOS 3.1 and has been successfully installed and tested on a device (iPhone 3G AT&T) running this version. This latest version has also been successfully retrieved and tested on an iPhone 4 (AT&T) running 4.3. We were under the impression that every version in-between (3.1 - 4.3) would then be compatible, perhaps this is not the case?
Unfortunately, the Verizon device is not available for Xcode deployment nor ad hoc distribution.
Now for the actual development question:
Is there a build setting that can explain this behavior? Failing that, I would like to determine if the error is limited to the specific device or all devices either running 4.2.8 or Verizon specific hardware.
I would be willing to share a promotional code or two to people running 4.2.8 (or later) on a Verizon device (This is not a bribe. You are welcome to keep the app of course, but I am offering this only for installation testing purposes, not for promotional reasons). If you think you can help, please indicate your interest in the comments. I have not mentioned the app here, because I don't want to unnecessarily spam my product if the answer can be determined without it, but I have no problem sharing that information if required.
Update:
I followed lxt's suggestion and waited to see if it was a caching issue with the App Store servers. Unfortunately, 40 hours after I was informed the update was ready for sale, we are still receiving the same error.
I have found the following threads in the Apple Developer forums confirming this problem is not limited to our app: (A login may be required)
Promo-code redeemer getting "this code is for an app that is not c...
Promo codes broken on Verizon iPhones ?
I have submitted a bug report to Apple (ID 9905790) concerning the issue. At this time, I am unsure if this issue is related to Verizon devices or iOS 4.2.8. Once I receive a definitive answer I will post it. For now, a workaround that appears to be working for others which we have not yet tried, is to redeem and install through iTunes.
Since this appears to only affect Promo Code redemption and NOT store purchases, the issue has lost much of its urgency. However, if anyone is able to provide more information or a solution, it is still very much appreciated.
Update:
I can confirm that redeeming the codes through iTunes and then installing to a Verizon device works fine. This means the problem is not with the app or the build settings, but with the Verizon device App Store redemption.
I have received one reply from Apple in response to my bug report asking me to verify if this occurs on 5.0b5. Unfortunately, as previously mentioned, we do not have developer access to the Verizon device (which is the entire reason for using a promotional code in this instance). I have asked them to confirm if this is a Verizon/iOS specific issue and will update this issue when I have more information.
According to the Apple documentation, it's just a matter of setting the deployment target:
You have indicated that your binary requires iOS 4.3 or later. Apps that require iOS 4.3 or later will not be available to Verizon iPhone users. If your app could be compatible with earlier iOS versions, you may want to reject your binary and upload a new one that indicates the earliest compatible iOS.
That's the message that's normally appended to App Store emails when you have an app waiting for review.
So in theory it should 'just work'.
However, what would be interesting to know would be:
Did you produce the promotional code before updating the app?
If so, do you get the same results with a promo code generated after updating the app (you never know with the App Store / iTunes Connect...)
After 24 hours are you still seeing the same issue? (24 hours being the normal App Store 'refresh period')
Sorry, I could not provide you with more concrete answers. At times it does feel like the App Store is held together with string, so it wouldn't be completely surprising if it was some value being kept around that should have been knocked back when you updated the app.
That said, it's a little strange that your app wouldn't work on the Verizon phone when you built it for 3.x. Why is the Verizon device not available for Xcode deployment? Is it because you don't have one to hand (understandable), or is it something else? There's no reason why it shouldn't be able to have ad-hocs thrown on it.
This is pure speculation:
Since there's a different build of iOS for the Verizon phone, maybe under the hood all apps on the appstore are available twice - one time signed for use on the AT&T version of iOS and one time signed for the Verizon version. The Appstore would deliver the appropriate version depending on your device.
If this would be the case and since redemption codes existed before the Verizon line of phones, it may be that redemption codes point to one version of the app only, leading the appstore to believe it is incompatible when redeemed on the "wrong" phone.
End of speculation.
I'd suggest instructing your friend to buy the app (if it's not too costly) and paying him the money back. If this works, then cleary what we're dealing with is a bug in Apples gift code system and you should be filing a bug report about this.
Btw: you're not alone with this problem. Although they didn't resolve it, the guys on this forum mention the exact same situation.

Resources