What are all the methods to deploy an iPhone application? - iphone

Can anyone enlist the all deployment methods along with some description and requirements?
I know there are methods to use iTune and methods to avoid iTunes, you can use App Store or not, etc.

Four Options Plus the obvious webapp choice:
Developer Deploy: Deploy from XCode using the build and run function to a connected device. The provisioning profiles is only valid for a max of three months, and it's required to have the device connected to the computer to run. Really, only for debugging.
Ad-Hoc Deploy: Signed with a Ad-Hoc Distribution Certificate for up to 100 pre registered devices. Requires the UDID of all those devices perfor packaging. Can be deployed using either itunes on the device users computer of via a link that points to the right safari file. Check this blog for more info about ad-hoc install per Mobile Safari Parade of Raind
Appstore: Well, yeah. It's kinda, you know. Right.
Enterprise Appstore: Grab a Enterprise Certificate by apple, costs 300$, and you can do the same you can do with ad-hoc Deploys, but without preregistering the devices. However, you're only allowed to use this method for In-house (inside the company) deployments!

Try this:
[PDF] http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf
http://www.airplaysdk.com/docs.php?url=/main/programmertools/mkbfilesettings/deploymentoptions.html
Quick deployment of an app after build without running

Related

testing iphone apps built on a remote mac

I'm using macincloud service to try/play/learn about building iPhone apps. I have a dummy app, and I'll like to test it on my real device.
I've got the developer certificate, I've installed the profiles, but now I'll like to test my app on a real device. Because it is not possible to connect my iPhone to the macincloud servie and because I'm on a windows machine, how can I test my app on a real device(the one with UDID that was used in generating the certificates and provisioning profiles).
Is there any file that xCode is generating and it can be used to transfer on a real device from a Win7 machine?
You need to generate an archive in XCode, and then from the organizer click "Share" to generate an IPA file. This file along with the ad-hoc provisioning profile can install the app on a provisioned device via iTunes on a Mac or a Windows machine.
For info on provisioning your device for ad-hoc deployment, see here: http://mobiforge.com/developing/story/deploying-iphone-apps-real-devices or the apple developer docs.
Good Luck.
Correct answers have been given already. However, have a look at http://testflightapp.com . That might come handy when you go for more test devices especially when you want to distribute it to a beta testing community.
You want to do an Ad-Hoc build. You will have to read Apple's docs to see whats involved. Then you will have an app file you can install with any iTunes.

How to test an iPhone app on a device for the first time?

I am developing an app for iPhone. How can I test this app on my device?
What are the procedures to follow? Please give information regarding this problem.
Deploying iPhone Apps to Real Devices
http://mobiforge.com/developing/story/deploying-iphone-apps-real-devices
In brief:
Sign up for the iPhone Developer Program
Obtain an iPhone Development Certificate
Generate a Certificate Signing Request
Generate, download and install your provisioning profile
Download and install your Development Certificate
Deploy your iPhone application.
Things you will need are
your private key.
your provisioning profile (with the UUID of your device added).
go to project settings and change code signing entity to your
distribution profile.
then you can build and run after connecting your device.
1) Open Xcode,
2) Go to Active SDK, and select the OS version running on your test device (viewable by going to Settings->General->About on the device).
3) With your project open, click on "Build and Run" (or press Command-R) to run the project, which will prompt you to allow access to your keychain.
4) Once deployed, the app will run automatically.
Distribution
First of all, to run the app on your phisical device you must enroll to the apple developer program.
Second, generate a developer certificate and download it. Then, import the certificate into Xcode and here you go.
There are some steps you need to follow to test your app on your personal iPhone. Below you can find all the steps:
Creat MAC certificate at first step.
Second step is to upload that certificate to developer account.
Now you should open developer account at
http://www.developer.apple.com
You can now find an option for device id in your developer account on
left side.
Now you should register your iphone device.
It is time to create your unique identifier on developer account
Download your certificate and install it on xcode organize
Now open your project embed your unique identifier in your project.
These steps can be beneficial for all software testing gusy involved in mobile application testing.

MonoTouch deploy to iPhone

I have developed a number of apps using MonoTouch, and been using the emulator for the iPhone, now I need to deploy me application to my iPhone for further testing.
I have purchased the iPhone SDK from Apple, but I can't find how to deploy and activate the MonoTouch application to my iPhone.
Any pointers please?
As has been already stated you obviously need the paid version of MonoTouch and the iPhone SDK. Once you have those sorted you need to create a developer certificate in the iPhone developer portal, download it to your dev machine and add it into your keychain.
Once you have done that you must create a provisioning profile for your physical device, which again you do through the developer portal. Once you have the provisioning profile, download that to your machine, and add it to the iPhone via the Organiser app in XCode.
Then fire up MonoDevelop, and if it's all gone to plan then you should have the option of deploying the build to your iPhone. You can check that MonoDevelop has correctly detected your certs by opening up the Project Options window and under the Build section and under iPhone Bundle Signing, you should see your developer cert and provisioning profile.
Full details of the steps required on the Apple iPhone Dev Site
Here are the MonoTouch docs on building for distribution
http://monotouch.net/Documentation/Building_for_Distribution
It is my understanding that you have to have the Monotouch deployment license from Novell to deploy to a device.
According to your statement:
When I compile I get: "No Valid iPhone code signing keys found in
keychain.
This is actually a Xcode question more then a Monotouch one;
The message indicates that your keychain does not provide the signing keys used to generate the certificates and provisioning profiles.
If you follow apple's steps on generating certificate(request), followed by profiles they will also state you might want to export your private key (p13 file) and keep it somewhere safe.
If you move to another laptop for instance, you will need to import that key again to make the machine a valid one.
If something went wrong (ie: you accidentally removed your private key, ..) this message will be shown since there is no way for Xcode to verify that the profiles are being used on a valid machine.
Go to this instruction page (apple account credentials needed) to check if the steps have been followed and check in the Keychain access app on your mac if under My Certificates you see a developer certificate and - if you unfold it - you can see the private key as a child node.

Why not use development provisioning instead of ad hoc?

I was under the impression that when you use a development provisioning profile for a build of an app, only the specified developers can deploy that build to a phone.
But I just deployed a build that uses a development profile to a phone using Xcode Organizer, even though I'm not one of the valid developers for that profile. One of my colleagues, who doesn't even have Xcode installed, did the same with his phone using iTunes.
In that case, why not use a development provisioning profile for distributing your app to e.g. your QA team, instead of ad hoc distribution?
EDIT: Please read the part in bold carefully before answering. I'm not asking a basic "how does this work" question. I've made a lot of development, ad hoc, and app store builds, and now I find that I seem to have made some wrong assumptions.
There's one situation in which you need an Ad Hoc profile, and that's when you want to test Push Notifications.
If you test Push Notifications on a Development Provisioning Profile, your push notifications need to be sent using the Development Push Notification Certificate for your SSL connections to Apple's sandbox APNS server.
If you want to test Push Notifications using your Production Push Notification Certificate and the live APNS servers, you'll have to deploy your app to a device using a Distribution Certificate and Ad Hoc Provisioning Profile (which includes doing the Entitlement.plist steps, which you can ordinarily skip if you were only using Developer Provisioning Profiles).
Also note that when you deploy using an Ad Hoc profile, your device token will be different from the one you use when you're using the development profile. This the recommended way to test APN because there's no back end changes that need to be made between the Ad Hoc build and the final live deployment on the AppStore.
Ad-Hoc is not for developers, but for testers. Who do not have iPhone SDK / XCode, iTunes only.
(The answer is: you can install ad-hoc app without developer certificate, and can't do it with development app)
Method 1: Install from XCode
The Development Provisioning Profile requires you to run the app (initially) from within XCode.
This has the side-effect of marking the device as being used for development, but also requires you to connect the iPhone/iPod Touch to the machine running XCode. Once you run the app from XCode, the app is installed on the device and you no longer need to be connected to the machine to run it. (Until you want to update the app.)
Method 2: Install from iTunes
An Ad-Hoc provisioning profile allows you to give the app to anyone and let them install it themselves using iTunes. You send them:
the app, and
the Ad-Hoc Provisioning Profile
They select these two and drag them onto iTunes. Then sync.
Later, you can give them an updated version of the app only (without the Ad-Hoc Provisioning Profile, since they've already installed that on their device) and they can drag the new app onto the iTunes icon to install the new version.
One limitation to Ad-Hoc distribution, is that it requires you to enter each Device ID into the iPhone Development Portal. And there is a limit to 100 device IDs per year (you cannot erase any IDs, until your next year begins -- only add them). The 100-ID limit will not be a hindrance for most developers, just keep in mind that you need to get the device ID ahead of time, before you create the Ad-Hoc Provisioning Profile to send to the person you want to install your app.

Is iPhone enterprise deployment appropriate for distribution to members of an association?

I've had a query about developing an app for members of an association and I can't determine from the Enterprise Deployment guide if this is an appropriate method for deploying the app.
Members own their own devices, so can an enterprise app be deployed while allowing the users to continue to use their own Appstore logins?
At any point, do the devices have to be physically connected to a machine running iTunes that is owned by the association or can a provisioning profile be distributed via the web or email? I see that profiles found in certain directories (e.g., ~/Library/MobileDevice/Provisioning Profiles/) will be automatically installed, so can the profiles and the app simply be emailed to members?
The Enterprise Deployment guide contains a lot of instructions on locking down the device. Can this be ignored?
I've had a query about developing an app for members of an association and
I can't determine from the Enterprise
Deployment guide if this is an
appropriate method for deploying the
app.
Sounds right for the type of deployment you're talking about. Just be aware if you're have the enterprise developer account you won't be able to do App store deployment with the same account.
Members own their own devices, so can
an enterprise app be deployed while
allowing the users to continue to use
their own Appstore logins?
Yes, Appstore apps and enterprise apps can coexist on the same device.
At any point, do the devices have to
be physically connected to a machine
running iTunes that is owned by the
association or can a provisioning
profile be distributed via the web or
email? I see that profiles found in
certain directories (e.g.,
~/Library/MobileDevice/Provisioning
Profiles/) will be automatically
installed, so can the profiles and the
app simply be emailed to members?
You can get the app binary and profile to the members anyway you like. Snailmail a CD... stick a USB drive on a pigeon... As long as they have access to the iTunes they sync their devices with, they'll be able to install your app.
The Enterprise Deployment guide
contains a lot of instructions on
locking down the device. Can this be
ignored?
Not sure which guide you're referring to. Please include link.
You need the devices UDID which is included in the provisioning profile for the app, that allows that device to run the app