I just spent a half hour on the phone with one of our VC partners sorting out how to get our iPhone application on his phone. Turns out the problem was that he was using Outlook Web, and the provisioning profile e-mailed to him was being corrupted by the web.
It’s one of the things I love about the App Store: all of the moving parts of shipping someone an application is reduced to two: the App Store server and iTunes. It eliminates the potential problems of file corruption and validation by replacing all of the potential problems of file transport and installation steps to “push this button, sync that device.”
Lesson 1: Always zip the provisioning profile. If there is a file corruption issue, the unzip process will detect this.
Lesson 2: If I ever get the chance to architect a simplified installation process via the Internet (such as, for example, using Java Web Start), use that instead of some ad-hoc mechanism for installing my application. Because saying “click on this link and click the OK button” is a hell of a lot easier than “here’s two files; drag this there, drag that there, clear this cache, reset that thing, plug in and hit ‘sync'”.