Is it possible to test an app on a device (ipad/iphone) without having the device connected? - iphone

This is NOT a question about avoiding to pay apple, my boss has no problem paying the $99 enrolling fee to do the signing certificate stuff. Jailbreaking is not an option.
I have a customer that I am developing an app for, and they want to test/preview the app on their device, before traveling to the office to have a meeting about what to do with the app next.
Q 1. After doing research and finding guides on how to test on a device (http://mobiforge.com/developing/story/deploying-iphone-apps-real-devices) they all seem to say that the device has to be connected in order to be tested on is this the only way?
Q 2. Also, if I do get them to come into the office and set the device up to be tested on, will i be able to test it in the future without it being connect? Will I be able to somehow send them it?
Q 3. How exactly does distributing work, do you make a private app or something so only the customer that is having the app developed can use it, and not have it on the app store?
Thanks in advance for any help/advice you can give or a link to point me in the right direction.

Here's the short of it.
You get their UDID for their device and get a certificate from Apple (after paying the subscription).
Then you build the app with the certificate for the device (not simulator) target.
The user then installs the certificate. (they can just drag-drop on itunes).
I believe the app should be zipped (like during submission to the store) but it's pretty much the same process as the certificate.
If you need links, I can provide them, but this is how it works.
In the future, if you build with that certificate, the user only has to re-install the application. If the user is not connected to a Computer, you won't get Debug information, but they can run it to their hearts content.
Certificates expire after a while, so you'll have to get a new one every once and a while. But it's not that much of an issue.

Related

Is it possible to deploy the App to the client permanently?

I have developed an App for my client and now I need to deploy it to him within his company, I have learned that, we need to make mobile provisions on Apple's developer portal,include the devices in it, so the App can be run on that particular device.
Also, if the period of our developer account expires we have to renew it.. in order to let the App work normally on the device.
But i want to know if there is any way the App can be deployed to the client permanently.. ? i.e once we handover the App to the client, he need not to come to us again.. and use it for as much time as he wants .. ?
Also, please note that the device that the client is using in NOT jailbroken ..!
You can create Distribution provisioning profile which currently have validity of one year, that means your application will run on clients device for one year without your effort.
After one year, you need to reattach by creating new profile. This can be done very easily from console.
Visit this question.
App that users download from App Store will continue working even if the developer of that app doesn't renew his subscription.
See this So the solution for you is. Upload the app on app store. Let your client download it. Once he download it even if your apple certificate expired he can continue to use the app.
However, once your apple distribution profile is over then your client won't be able to download the app from app store.
The only way to do this is using Apples Business-to-Business App Store. This allows you to specify which clients can download the app. The app is otherwise handled just like a normal app store app and does not expire.
The ad-hoc distribution you referred to is not suitable for distributing apps to clients. Anytime a device changes or is added you'll have to re-provision it and re-issue it.
One other alternative is to have your clients get an Enterprise developer license. The app would still have to be renewed every year but they could install it on any device and better yet, you would not have to have it reviewed by Apple.

Test iPhone App on customers devices

i have created an app for iphone, I also have a apple developer program certificate to compile my app.
Now I wont to send it to my customer to review. How can I do this? Did he need any certificate?
Thank yoU!
Yes, you will need to go to the apple member center, and go to the provisioning portal.
You'll need to register every device there that wants to use the app.
For that you'll need the UDID (found in itunes, or with the app UDID sender).
Once you've done that you have to create your app-IDs (I usually take com.company.* so all apps with com.company are valid for that app-ID)
When you have done that you can create your provisioning certificate. That's what you'll need to install it on a device.
You can also have a look at test flight app which I use to send my demos to some clients.
Follow the instructions given by apple here.
At first they may seem a lot, but if you do it step-by-step you'll see it's easy.
At least this is what i did!

What's the point of the provisioning process Apple makes you complete in order to test your apps on an iOS device?

Today I walked to through the process of getting my iOS device connected to my computer and running my app. To do that, I had to...
Obtain a developer certificate
Assign the device to my team
Obtain my app ID
and create a provisioning profile
While I understand the process and was able to successfully get my device connected, I don't at all understand the point of all this. Can anyone explain the point of each step in that process and why Apple has us do this?
Thanks so much in advance for your help! It's important to me to understand this stuff at least at a high level.
Apple just wants to torture the developers :)
Joking aside, I don't know why. There's no official explanation why you need those steps, here's my speculation.
Apple wants to make sure that
only the developer registered to Apple can freely install
onto his or her i-Devices
applications of his or her own applications .
This is presumably to forbid the distribution of apps outside of Apple's own App Store. If any of these three steps is not required,
it's easy to imagine how you can "abuse" the developer status to install lots of apps without going through App Store.
This explains why you need to do 1, 2 and 3. In order for XCode and the i-Device itself to check it, you need a provisioning profile. This explains the point 4.
As a rough explanation.. the device only runs signed apps. Your developer certificate (along with your private key) signs your app so it can run on your device. (or other development devices of your nomination)
If you beta test, your Ad Hoc certificate + provisioning profile will allow all devices with their UDID in the profile to run that app. The beta testers don't need your developer certificate, just their device UDID embedded in the profile.
When you distribute to the app store, you use a Distribution profile (along with the team agent key), and that needs additional signing (co-signing?) from Apple before that code can run on the device. Because Apple signed it, the device doesn't care what UDIDs are allowed.
Apple has made a business decision to maintain tight control over developers and apps both during and after their app development. This means that at any given point in time, they have a tight connection between a developer, app, devices, and the app's users, be it through the adhoc distribution mechanism, or through purchases that users make in iTunes Store. We may only speculate what they internally thought that the goals and benefits here are, but as the market has shown, the outcome is beneficial to all parties, as they have shot from oblivion to one of the most popular smartphone platforms in a few years.
One quite straightforward goal is that they intend to maintain control of the distribution channel and make sure the app cannot be officially distributed through any side channels and they have control over all the money that moves, hence the 100-deviceIDs-per-developeraccount limit (so you couldn't distribute your app outside Apple's channel, yet the 100 devices should be sufficient for closed testing).

Can I put my own app on just my iphone?

I want to create an iphone app for personal use.
Can I just put it on my phone and use it or do I have to go through the iphone store process to get it on my phone?
Thanks.
As long as you have a valid developer certificate to sign the app and you have a development provisioning profile and your device is registered as a test device. For that you need to be registered as an iPhone Developer Program member.
In other words, you have to pay Apple $99 to be able to put your own app on your own phone.
Yes, you can run your own apps on your phone. You need a paid iPhone developer account though.
Purchase a developer account for $99 from Apple. Create a developer provisioning file and build to your device. The annoyance will be the provisioning file is good for a limited time, requiring you to update it periodically and rebuild.
To run an app on an un-jailbroken iDevice, it needs to be signed. Registered developers get personal signing keys (and also have to register the device) which lets them test their apps. They also can do ad-hoc distribution, meaning compiling and signing an app so that other people can use it without being registered. This is limited in the number of users who can use it though.
Enterprise developers can sign apps for internal distribution, sorta like unlimited ad-hoc, but that program is expensive and unnecessary for what most people do.
As pointed out by others here, you can sign up as a developer to temporarily install apps on your device for testing purposes, but you would constantly need to renew your phone's installed provisioning profile to keep using it over time.
The only way to permanently put your own application on an un-jailbroken phone is to publish it to the app-store and download it through iTunes. Of course, Apple would need to accept the app so you would need to face the same regulations as other apps sold via iTunes, and your app would be public to everyone.

iPhone Ad Hoc distribution without expiration

The background story:
I work for a company that develops and manufactures a commercial product which can have up to 100+ dedicated PC's in a farm.
We only get a handful of new customers per year.
We developed an iPod/iPhone app that lets us send commands to the farm and pull data. Our parent company has major concerns about putting this app on the AppStore. (I really dont know the details of the paranoia, but I know its probably not a winnable battle).
We planned to distribute the App via Ad Hoc using ONE or TWO new iPods each time we sell a "farm". I have just learned that the Ad Hoc distribution expires after 90 days.
The Question:
Are there any alternatives for permanently loading our app onto an iPod Touch or iPhone without going through the App Store?
Our app has absolutely no use to anyone without our other product. We only plan to load this app on a handful of iPods a year. I doubt this matters, but maybe somebody has another solution?
Apple has an an enterprise distribution program, which might allow what you're trying to do. There's also jailbreaking the iPods. That would let you run unsigned code, so you could build your apps without ad-hoc certs.
I know this post has been marked as answered but i am in the same situation so i though i should share what i have experienced.
There is NO legal solution for this. You can't have an app distributed with out the annoying expiry dates.
I have been onto the ADC support and you can't get an extension on the certificates, you can renew for more than 1 year at a time and they have no interest in helping you.
I have clients who will not let the content of their apps hit the app store. There for they are stuck with sending all the devices back to renew certificates (i know you don't need to xcode etc.. to install the certs but try getting end users to do it...).
I am in the luck situation that i can try send the shell of an app to the appstore and then once verified (i.e. once off login - ssl to our server with the device id and a guid password) the app will download all the sensitive content to the phone.
I don't know if this will work for all apps - i.e. loading classes or libraries dynamically but for me it is only the content that is sensitive.
if anyone would like more info i am happy to talk it over, but i haven't tried getting the app through the store yet. I will try soon, so i can keep you posted if you are interested.
cheers
kle
As of September 2010, Apple has removed the 500-employee requirement. Go nuts!
See my post about setting up an Enterprise Program account (which moderators keep trying to close!):
https://stackoverflow.com/questions/1876333/how-long-does-it-take-to-get-an-iphone-app-into-the-app-store-closed
Issues with getting an Enterprise Program account:
-You need 500 employees.
-You can only provide the app to employees.
Make sure you check the detailed terms and conditions of using Ad Hoc distributions to be sure you are allowed to distribute them as you are doing. On the face of it you are probably okay (Apple link here), but worth checking the fine print. I know the Enterprise Program had a lot of fussy fine print, e.g. needing procedures to recover apps from employees when they leave the company, etc.
If you jailbreak the iTouch/iPhone then you can easily disable Apple's code signing checks. You can then build your app and load it onto the device as normal without worrying about expiry or anything else.
The only problem is that jailbreaking on newer batches of the 3GS is not particularly end-user friendly. For something to give to a client I think you would need to stick with the iTouch.