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

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 :).

Related

Developing iPad / iPhone application in same project or in 2 separate (Monotouch)?

We know that in monotouch we have 2 solution for developing a project for both iPhone and iPads.
First is using Montouch iPad Application projects for iPad, and Monotouch iPhone Application projects for iPhone and create two separate project for each of them.
Another solution is using one Universal Projects for both o them.
The question is: what solution is better and with witch one the result has more quality?
Pros and cons of Universal app.
Pros:
One place to fix bugs in app's business logic;
Convenient to users (after install on one device it could be automatically installed on other device);
Marketing costs could be half as much;
Cons:
It could be too many if -blocks, which are checks for UIDevice.CurrentDevice.UserInterfaceIdiom;
Bigger app size;
Some of the features (mostly in games) do not fit well on iPhone's display.
If you used XIB-based interfaces, you must make separated XIB for iPad OR update XIB content layout in UIViewController's ViewWillAppear event (in which iOS updates View frame according to display size);
If your app is not free, you couldn't release "HD version" with bigger price.
Basically, universal app is better for users, but harder for developers and designers.
I think, you are asking about iPhone and iPad. Because, universal app includes iPhone and iPad (not iPhone and iPod).
So considering this:
You should go with Universal app because of below reason:
1) There will be one source file of the app which will work in both iPhone and iPad.
2) If user has both devices (iPhone and iPad), then they get a single copy of the app and can install in both devices.
3) Your app supports both devices, so users will be highly attract and download your app quickly.
4) If your app will more downloaded (because of Universal app) then there are chances that, your app comes into "New and WhatWorthy" section and even "Feature" section of the apple.
There can be main reason why we should go for Universal app instead of separate app for iPhone and iPad.
Hope, you got an idea.
Cheers!

Force universal app to run iPhone version on iPad

I've had an iPhone product on iTunes for a while and have superseded it with a universal app which has been met with approval except from one customer who wants to run the iPhone version on his iPad as he preferred the larger inputs and working of the iPhone.
Is there any way to configure the app to run either as native iPad app or iPhone app on iPad at runtime? Seems an odd request but customer is quite insistant.
Thanks
/Fitto.
No way to do that, except making separates versions for iPhone and iPad.
Theoretically, you could have some setting that would load the iPhone storyboard on the iPad, but it would still display full screen, and not in compatibility mode, which is probably the way this particular user wants it
Assuming you are running some sort of source control, you could change the project to be "iPhone Only" and then test on the iPad, then later revert the changes made to make it a Universal app again

Confusing about create an app which has version for both iphone and iPad

I am creating an app which has version for both iPhone and iPad, iPad version has different GUI and some more functionality. Currently, I separate them in 2 projects.
After reading this article: Jump from iphone to ipad development...
And see:
"All iPad users who have already downloaded your free or paid App to their iPhone or iPod Touch will be able to download your iPhone App – only if you have updated your binary submission to the App store to make your iPhone App compatible with iPad. If you do not update and create the separate binaries, then you are potentially losing out. Using the new SDK you will be able to create a single binary which will install one version of your app when used on the iPhone or iPod Touch and a different binary when installed on an iPad"
I don't know if my current way is correct when separate them in 2 different apps! and how to create single binary which will install one version of your app when used on the iPhone or iPod Touch and a different binary when installed on an iPad?
Does anyone know about this please help me!
There are two ways to have an app on both iPhone and iPad. One is to build two separate apps that do the same thing. This is what you are doing, but not what you described. It creates two applications, one for iPhone and one for iPad, that do the same thing. As such, purchasing one will not give the user access to the other.
If you want the user to be able to use a single app on both the iPhone and iPad with different interfaces, you need to build a universal app. It will contain code and resources for both the iPhone and iPad. See iOS Application Programming Guide: Build-Time Configuration Details. About two thirds of the way down is a section on universal applications.
Edit: I found another document specifically about universal applications: http://devimages.apple.com/iphone/resources/introductiontouniversalapps.pdf
Whether to have two separate SKUs on the App Store or not is usually more of a business question than a technical one. Separate apps lets you segment your users and charge more for the iPad version. On the other hand a universal app is usually better received by users and can make the most sense if what you have is a premium, 'expensive' niche app.
If you want to go the universal route:
If you have an iPhone application that
you want to upgrade to run on iPad
devices you need to upgrade the target
that builds your iPhone application
into a target that can build both an
iPhone and an iPad application, or add
a target to your project for building
the iPad application.
To upgrade an iPhone target for iPad
development, select the target in the
Groups & Files list and choose Project / Upgrade Current Target for iPad.

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