iPhone iAds Not working on iPhone 4 - iphone

I have an iPhone app in the app store, but I am having a problem with iAds. iAds are showing up as they should on iPhone 3G and iPhone 3GS phones that have downloaded the app, but the iAds are not showing up on any iPhone 4 phones. They are all running the latest software version (iOS 4.2.1). Also, both iPhone 4 and iPhone 3GS phones were both correctly displaying test iAds during my testing phase. Does anyone know what might be causing this issue? Thanks in advance.

The iAds service currently has a really low fill rate (ie, you won't receive an advert every time you request one and, particularly outside the US, are often quite a bit more likely not to receive one). Quite probably either what you're seeing is a coincidence or the particular ads that Apple happens to be running at the minute in your territory aren't being supplied for the iPhone 4 with your app's combination of other ad-relevant metadata (and exactly what Apple use is undisclosed, just assume all the information you supply about your app may be relevant when picking which adverts to serve).
If your app showed the test iAds correctly then it'll show proper iAds correctly. Since Apple require that you properly implement showing/hiding of the iAd bar based on whether you receive an advert, it's safe to assume that they test this feature of your app.

Related

How can I publish an iPad app from an existing iPhone codebase?

I have a rock solid iPhone app and wanted to know how I could get an iPad app out through iTunes Connect.
What steps are required in Xcode (or AppCode) to compile the app iPad friendly?
What features (like gps) should I pull from the iPhone code base to prevent strange crashing on the iPad?
How do I link and publish the iPad app in iTunes Connect so users who search see my app with a + sign in the App Store (assuming this means it's iPhone and iPad friendly)?
And finally, what else should I look out for doing this from a single obj-c codebase?
There are two types of porting possible one is universal app (in which a plus sign is shown with your app in itunes) and the other is two device-specific application (in which two targets are created one for iphone and one for ipad and both get released as complete independent apps). Now it depends on you which modal you choose. Yet I ported my apps using the second option as I want user to buy each time for each of his device :). Anyways, solely depends on you, here's a good tutorial for this http://www.raywenderlich.com/1111/how-to-port-an-iphone-application-to-the-ipad. I haven't came across any such thing which can crash a similar app on the ipad but might there'd be some. Though there are somethings which I came across that the ipad (ipod too) doesn't have any vibrator available, as my iphone app was using vibration to give some indication, so if you're using it you might need to circumvent it with some alternatives plus your app should support the PortraitUpsideDown orientation. It's weird that APPLE rejected my third ipad app due to this after releasing my first two apps with the similar limitation :).

What kind of iPhone / iPod Touch do I need to test my app?

I've written a fairly basic app for the iPhone, which I would like to test on at least one device and then get it onto the market place.
I don't need a data plan, so I'm considering buying an iPod touch, but I understand it doesn't have a camera, video, compass. While I don't need those for my current app, I might for a future one, nothing for sure there.
My concern about purchasing an iPhone, used or new, is that I believe I won't be able to use it without a sim card unless I jailbreak it. I'd prefer not to get involved with jailbreaking, as I'm unclear how it would my efforts to test the app on the device and/or get the app onto the app store.
If I get a new iPhone, I would have to cancel the contract immediately, and my same concern about the lack of a sim card would apply.
I'd be interested in people's experience with this issue, e.g. starting out with iPhone apps and not having an iPhone, is with this issue.
The newest iPod Touch does have a camera: http://www.apple.com/ipodtouch/
You should be able to test nearly everything you'd need to test on an iPod Touch.
Also, if you want to support older devices, it might be a good idea to also pick up a used, older, iPod Touch on eBay or somewhere, so you can test on a non-Retina display.
I have development going on without an iPhone but is preferred to develop with a device cause you could test your codes once in awhile. iPod Touch 4 does have camera. Anyway i think iPhone would still be able to function properly without a sim card just that you can't call. Otherwise getting an iPad is not that bad, since you can run both iPad and iPhone apps in iPad.
You may want to get the oldest slowest model of device running the oldest version of iOS on which you want you apps to be compatible. This may also be a low cost way to get into testing on devices. If your apps are commercially successful, you will be able to afford acquiring more newer test devices, but the old one may be the most valuable one for app testing purposes.
I have been using my old iPhone 3G for developement, mostly because it allows me to see how my code runs on one of the slowest devices out there.
The phone is not currently signed up with AT&T and it still works fine for development. For data access the wifi works fine without a carrier account. It also has the camera and (basic) GPS/mapping.
I could probably pick up a used iPhone 3G off one of the auction site relatively cheaply.

Presenting both iAds and AdMobAds on the iPad

I'm currently using the AdWhirl SDK for the iPhone so I can switch Ad Networks depending on Ad-Availability.
Now there is no AdWhirl SDK for the iPad, so I just show AdMob ads.
But in iOS 4.2 we can now show iAds on the iPad too, and it would be nice to combine the two.
Is there a tutorial on how to exactly combine them?
I mean I did some manual switching between the too, in the usual delegate methods that get called when one of the two fails to load etc.
But it's really hard to test if this is working properly and stable, since on the actual Devices the fillrates for iAd will be ~10% and AdMob ~60%.
Now testing this the iAd-Test Advertisement shows up all the time, so I can't really test whether AdMob would show up, would iAd refuse to present an Ad.
I know this question is old, but I wrote an iAd/AdMob wrapper that's available on github. As little as one line of code will get both ads running and it's currently what I use with my app that's on the app store. It supports both iPhone and iPad in all orientations if you properly implement the callbacks.
If you don't want to roll your own, Mobclix offers something similar to AdWhirl for iPads

apple has rejected my iPhone app saying it must run on iPad as well

I've just submitted my app to review (for the App-Store), and apple has rejected my app, saying the following:
"On iPad, the application displays a
black screen and no content loads.
This review was conducted on iPad
running iOS 3.2.2 as well as iPhone 4
running iOS 4.1. A screenshot has been
attached for your reference. "
am i obligated to create an iPad version of my app? or maybe i've set some property "on" and made apple think i would like the app to work on iPad?
to be more clear,
i want my app to run on iPhone only.
is it possible? and if do, what need to be set (project properties? info.plist?) to mention that the app should run on iPhone only? so that apple will not test it on iPad...
appriciate your help.
Dror.
Note - this historic QA is 5+ years old.
All issues mentioned in the QA are no longer relevant in iOS development! Enjoy
The problem is almost certainly that you (accidentally) made the app universal.
IF you made it universal, you MUST have both an iPad and iPhone version in there.
If you make the app normal, iPhone only, you do NOT have to (indeed, you can't) have an iPad version in there.
To be clear, Apple are talking about the "ACTUAL" iPad version. Of course, your iPhone app will run using the "blow up mode" on an iPad. Apple are not referring to the "blow up mode."
It is rather silly that in that particular form letter, they do not say something like: ,"You have almost certainly accidentally made your app universal instead of iPhone only" since that is the situation 100% of the time when that happens.
Good luck on waiting another 2 weeks :-/
You do not have to create a specific version of your app for the iPad, however all iPhone apps must also be able to run on the iPad. You might want to try searching google for resources on how to make your app iPad compatible.

Prevent iPhone app to run on iPad

I'm shipping two binaries; one for iPhone/iTouch and the other for iPad. It's the same application.
Will Apple ensure that the user will never receive an iPhone version of the app on the iPad? If YES, then I don't have anything to worry about, but if not then I do have a problem.
The reason I ask is the iPhone application will simply not work correctly on the iPad because the server knows it's an iPad and will deliver the iPad HD content to it and the iPhone cannot handle that. I would rather not hack my application to send the server a fake device type if running the iPhone app on the iPad in order to receive the correct resources.
Suggestions?
I've been looking for this for a while because I couldn't prevent the iPhone app to load on the iPad. Searched a bit to understand why this was happening, followed #hotpaw2 instructions and found this on the official apple store rules:
UPDATE:
2.4.1 To ensure people get the most out of your app, iPhone apps should run on iPad whenever possible. We encourage you to consider
building universal apps so customers can use them on all of their
devices. Learn more about Universal apps.
https://developer.apple.com/app-store/review/guidelines/
The SDK and/or App store rules prohibit you from preventing an iPhone app from running on an iPad in 1X or 2X zoom mode, unless there are other requirements listed in the app plist. Apple's app review is known to test iPhone-only app submissions (unless there are other requirements) on an iPad, and reject the app if it doesn't run properly.
Other requirements (as listed under UIRequiredDeviceCapabilities in the app's plist) might include your app requiring telephone capabilities (or healthkit, etc.), which might help you temporarily, but still won't prevent the app from running on some hypothetical future iPad product that includes telephony capabilities (and/or healthkit, etc.).
Actually you can.
Add telephony to UIRequiredDeviceCapabilities in your plist file.
But i really not recommend it and maybe you could get rejected because of gratuitously using this property.
I think you should handle that there are iPad versions and iPhone versions on iPads, use the second one as an iPhone.
Also don't forget that retina iPads will use upscaled applications at retina resolution while none retina ones use the standard resolution. And this behavior can tweaked using jailbreak tweaks like RetinaPad and FullForce.
In the plist settings, add Application requires iPhone environment and set the boolean to YES