- Each App should have it's unique AppId (usualy it is reverse DNS such as com.apple.sampleapp).
- Each developer has it's own developer certificate, that identifies him.
- Each device has its own Unique Device ID (UDID)
Provisioning profile binds this 3 things together:
- it includes list of developers, who can use this profile
- it includes list of devices, where apps built with this profile can be installed(for distribution its different)
- it specifies application (or using '*' many applications) which could be built using this profile.
So, based on this, in order to use provisioning profile you need to have valid sertificate included in profile and installed on your machine, you need your device UDID to be included in profile, you need your app id adhere profile bundle id.