Recently I ran into some problems with iOS provisioning profiles while using Visual Studio for Xamarin. Some profiles wouldn’t show up and in the end I got super confused and started to wonder:
- I’m inside Visual Studio here on a Windows machine and it shows me a list of profiles. Where do they come from?
There is Xamarin Studio on the Mac (the build host) and it also has a list of profiles. In addition it allows me to log in to my Apple developer account.
- And we have Xcode. Guess what: provisioning profiles there, too and also a login dialog.
In the good old days, everything related to profiles was managed in the Xcode Organizer. Then Apple decided to strip Organizer down to the bare minimum and include everything into Xcode’s preferences.
Post has been updated because of changes in Xamarin Studio
Surely there must be documentation how these
three two instances collaborate. But there wasn’t, so support was kind enough to help me out and I would like to share this with you:
- Currently, the only documentation there is regarding Provisioning Profiles is the guide to publishing to the App Store and the guide to IPA support
- However, there is no specified guide to how these are managed.
In the current version of Xamarin Studio, the provisioning profiles are loaded from the following directory on your Mac workstation:
This allows you to manually install your own provisioning profiles (and/or manage your Provisioning Profiles using Xcode) instead of using the Developer Accounts feature available in Xamarin Studio.
As of version 4.2 of Xamarin Studio, there is no provisioning profile management dialog any longer. Instead, Xcode has to be used again. Simplified by removing features. 🙂
However, you should still be able to see the Signing Identities and Provisioning Profiles associated with your Apple Developer account via Xamarin Studio by navigating to Xamarin Studio -> Preferences -> Developer Account once you have signed in. If they appear missing after signing in, there is now a refresh button so that the View Details dialog can be updated with any new information that is connected to your Apple Developer Account.
Then, when you are using Visual Studio with the Xamarin.iOS plugins, the provisioning profiles and identities are read from that directory on the Mac Build Host (~/Library/MobileDevice/Provisioning Profiles/). This is one of the reasons why the connection between the Mac Build Host and Windows workstation is important, since the profiles are not read from the Windows side. Usually when the provisioning profiles are missing from Visual Studio, there is either a connection error from the Mac Build Host or there is an issue with them from the Mac Build Host side.
Thanks, Xamarin Support, for these details!