For any of you who run into the endless joy of archiving and exporting IPAs using Xcode 7.3.1 and occasionally run into Xcode displaying that it us using the wrong provisioning profile or you can't tell what provisioning profile it is using, I have some very useful information for you.
1. If you can't tell which provisioning profile Xcode is using because it clips the file name off, there is a hidden drag bar to the left and above of the provisioning profile name that you can use to drag to the left so you can see the whole file name of the provisioning profile that Xcode THINKS it is using. (Minimal user interfaces suck when you aren't shown elements like this.)
2. Xcode very often lies about the provisioning profile it is using to code sign your app.
Seriously.
I was exporting an app for submission many times last week for ad hoc distribution and for submission to the App Store and every time, Xcode said that it was using the wild card provisioning profile.
I switched to "use local signing assets" and one at a time, I removed the provisioning profile and exported and each time, Xcode still said that it was using the wild card provisioning profile.
Luckily, I didn't empty the trash.
What I did do was install the Provisioning Spotlight plugin that is able to look into the provisioning profile and tell you which one it is.
THIS PLUGIN IS INVALUABLE IF YOU HAVE ISSUES WITH PROVISIONING.
What I found out was that while Xcode tells you it is going to be using a certain provisioning profile to code sign your app, it's most likely lying to you.
Sometimes.
What I learned to do is click on the little arrow to show the provisioning profile it is using in the Finder and then use the above Spotlight plugin to show the internals of the provisioning profile to make sure it is the correct one.
I've got screenshots showing Xcode displaying that it's going to be using one provisioning profile, and then signing the IPA with another - one that did not work after we distributed the IPA to our team because it was the wrong provisioning profile.
This is a ROYAL pain if Xcode uses a wild card provisioning profile (instead of the one you told it to and it said it was applying) when testing push notification, because your team essentially ends up wasting 2 hours diagnosing why push doesn't work for your IPA.
It also is a royal pain when you make new distribution profiles and include new devices, you install the profile and Xcode says that it is using the profile and then it uses another one and your team can't install your IPA.
★ The big issue here is when archiving and exporting an IPA, DON'T TRUST THAT XCODE IS USING THE PROVISIONING PROFILE THAT IT SHOWS IT IS USING IN THE EXPORT SCREENS.
★ Click the arrow to display the provisioning profile file on disk, then use the Provisioning Spotlight plugin to make sure it is using the one you told it to.
We burned through way too much time and I had to pull a 44 hour stretch last week and because Xcode 7.3.1 was not telling us it was code signing with the correct provisioning profile and/or was applying the wrong profile. I've got screenshots that verify this.
I hope that this information - and the means to manage it - is of use to anyone else who may run in to massive time sucker.
And considering the amount of time I spent last week making up for this - and Saturday - there is no way I have the time or patience to spend more of my time entering this as a bug.
I am more than happy to share the screenshots if anyone wants.
Happy Sunday.
- Alex Zavatone