As if there aren’t enough other details to worry about, developing for iPhone has been doubly difficult for me because my provisioning certificate kept getting lost by Xcode. Exasperated, I’d delete/revoke/regenerate/reinstall, and it would work. Problem solved.
For a while. Then it would break again.
Even this Apple Developer Q&A article doesn’t mention it, but my friend Todd did: your login keychain must be the default in the Keychain Access utility’s list of keychains. And just now, when my provisioning failed yet again, I checked Keychain Access to discover that 1Password’s keychain is the default.
This is evidently a known issue, even to the application developers. The linked article mentions a new keychain format that solves the problem.
Also, it looks like new users won’t have the same trouble now as they’ll be using the new Agile Keychain format, in a file stored at ~/Library/Application Support/1Password/1Password.agilekeychain. Existing users–especially iPhone developers–should switch to this format; see the “Keychain” tab of 1Password’s preferences window.
For a lot of applications, this kind of crap would earn a one-way ticket to the Trash. But I really like 1Password, and have probably recommended it to people more than any other. I’m glad I’ve found a way for 1Password to peacefully co-exist with Xcode and iPhone provisioning.