Search code examples
iphonexcodebuildxcode4provisioning

What's the difference between "Any iOS SDK" and "Debug" in Xcode 4 Code Signing?


In Xcode 4's Build Settings, there are 2 places to enter a provisioning profile for each build type. The first is "Ad Hoc", "Debug" and "Release". Each of these has another place to put in a provisioning profile called "Any iOS SDK". Do I need fill in both? What's the difference between these?

enter image description here


Solution

  • The XCode build tools use the most specific relevant setting, so if you've set the "Any IOS SDK" value under Debug, you don't need to set the Debug setting, and so on.

    That interface is (or was) there, I believe, to make it evident that there are ways to customize your provisioning profile for specific SDKs. If the only option was "Any IOS SDK", it would be redundant to the line above.

    On the other hand, having a non-generic default would also likely confuse users, who would be posting on Stack Exchange, asking "Why are there lines for both Ad Hoc and IOS 4.2 SDK?"