More flexible handling for Distribution Profiles

I’m updating my question from the forum (http://developer.anscamobile.com/forum/2010/07/13/coding-client) here as a feature request.

At the moment if you are building an iphone/ipad app for someone else who doesn’t have a Corona Account there is really no good way to give them a final build.

Running my corona account on their computer is less than ideal, but asking them to give me their private keys is even worse. Corona has been extraordinarily helpful to me, but this is a pretty big problem.

So, some method (i’m not picky about how, though an xcode proj would be nice) of transferring a completed project to a non-corona owner (they’re hiring me because they’re not developers) would be in my eyes an essential feature to add.

I’m not expecting you to magically pull it out of a hat if you haven’t already started on it, and if you have a suggestion for a work-around I’d be delighted to hear it. For instance, is it possible to manually embed a different profile in the finished app bundle after it’s been built?

Appreciate all the good work, and would love to hear back even if it’s just “sorry don’t have a solution at the moment”.

cheers

Eric [import]uid: 6693 topic_id: 1453 reply_id: 301453[/import]

In theory it might be possible to “resign” the app bundle on the clients machine from the command line after it’s built. This is the first request I’ve heard for doing this, so we haven’t really thought about it as far as I know.

How important do you think this is going forward? how often do you see this happening for you? (when ever I’ve needed to do this I’ve just asked for their certs…) [import]uid: 3 topic_id: 1453 reply_id: 4083[/import]

Unless I missed something, I would think it would come up fairly frequently when doing client work.

It’s definitely possible I’m missing something, the whole certification process is still a bit confusing to me. Wouldn’t it be less than ideal for clients to give out their cert to contractors because it would enable someone they’ve only worked with once to sign apps with their identity?

The method you suggest should work fine in my current situation, but I would still prefer a more flexible way of transferring finished projects in the future. [import]uid: 6693 topic_id: 1453 reply_id: 4096[/import]

I do not see why asking them for their profile would be so bad… as you can not send something into the wilderness as long as you do not have their developer accounts password and even then they would ear the money :slight_smile:

It is also possible to have multiple developers working at stuff and all of them get to sign apps. [import]uid: 6928 topic_id: 1453 reply_id: 4119[/import]

To be clear, it shouldn’t be necessary to get clients’ certificates to send them app builds for their devices. The way Apple intends this to work is that you add any target test devices (by their UDID) to the provisioning profile you’re building with.

So the first step is to get those UDIDs from the clients, which they can do using iTunes. Then, log into the iPhone developer portal, add those new devices, then add them to the provisioning profile you’re using, then download and reinstall that profile on your Mac. After that, anything you build with that profile will work on your clients’ devices. They can install your app using iTunes, if they don’t have developer tools (and they probably don’t).

The catch is that Apple only lets you provision 100 devices per year on each developer account. If you have LOTS of clients, you may need multiple Apple developer accounts. This is a common complaint among iPhone developers, but at least the Apple accounts are relatively inexpensive. [import]uid: 3007 topic_id: 1453 reply_id: 4130[/import]

If you are sending your app to another developer I don’t think you have to add their UDID to your profile. You can sign the app as if you were going to run it on your device and then send the binary to the other developer. The other developer can re-sign the binary with his/her own developer certificate using the codesign utility and use Xcode to install it on the device.

I don’t think this would work if the other developer wants to submit the app to the App store. [import]uid: 7559 topic_id: 1453 reply_id: 4131[/import]

Right – everything I said above applies to clients, not other developers. Developers should be able to re-sign on their own.

My experience with clients is that the “find your device UDID in iTunes” part already takes a lot of explaining, and is about the maximum complexity they will deal with :slight_smile:

And actually, here’s an app that clients can use to email you their UDID. I haven’t tried it, but I’ve been in situations where this would have helped.

http://itunes.apple.com/us/app/udid-sender/id306603975?mt=8
Meanwhile, for Android, you can just put the compiled .APK file on a website and have them download it to their phone. [import]uid: 3007 topic_id: 1453 reply_id: 4134[/import]

Thanks for all the feedback!

Oderwat makes some good points about the Cert issue, which make me feel a little better about it.

Just to let you know, I’m not complaining about the process for testing development builds. I like your system for compiling/installing test builds, it’s very slick.

My request is just in regards to the final, app store ready build at the end of the project. Short of spitting out an xcode project that anyone, regardless of Corona subscription, could do a new build of, maybe you could add some of the results of this discussion to your build documentation?

That way it would at least be clearer what the suggested method is for new users. This is my first project with Corona, and to be honest how the final transfer would work didn’t occur to me before I started. So, now that I’m on the homestretch for the project it caught me a little off guard, which is never fun at the end of a project.

I’m sure the cert transfer method will work just fine, but it would have saved me some stress if a solution for this scenario was included in the documentation.

cheers! [import]uid: 6693 topic_id: 1453 reply_id: 4138[/import]

A third confusing detail is that a literal app store submission build (made with a “distribution” profile) won’t run on ANY device!

But I assume you’re talking about “the final build before the client approves it for submission”, for which all of the above advice applies. [import]uid: 3007 topic_id: 1453 reply_id: 4140[/import]

I actually did mean the literal app store submission build (with distribution profile), though that is an interesting detail I didn’t realize that those builds won’t run on devices. [import]uid: 6693 topic_id: 1453 reply_id: 4144[/import]