Similar problem & fix:
Installed the 3.0 SDK and XCode, and updated devices to 3.0.
When trying to deploy debug version to device, get error:
Can't run "x" on the iPod "y". The iPod "y" doesn't have the provisioning profile with which the application was signed. Please add the provisioning profile via the Organizer or check the "Code Signing Identity" build setting.
Checked device has profile (both on the device under Settings->General and via the Organizer). Double checked using the right signing identity. Tried cleaning everything, emptying the XCode cache, rebooting both the Mac and the device.
Even deleted all certificates, etc and created brand new ones via the developer portal, and still getting the same error. Checked the certificates work fine in keychain, have the right default, have a private key, etc. Also checked the profiles have all the right app id's, certificates, devices.
Created a brand new "Hello World" project, set it up and -- it worked! So that means it is something wrong inside the old project (i.e. all the certificates and profiles are working).
Needed some manual editing of the project file. First of all make a backup (copy) of the xcodeproj file. This is actually a package, so Control-click and select "Show Package Contents". Then Control-click on project.pbxproj and open with TextEdit.
In the XCBuildConfiguration section had several lines with PROVISIONING_PROFILE that were not in the test application, as well as several CODE
SIGNIDENTITY and one CODE
SIGNENTITLEMENTS.
Remove all entries of these three types, save and close the files. Open the project in XCode and check that running in the simulator still works. (The device won't work because we deleted all the signing).
Select the Project root and click Info, then set the Code Signing Identity to the value you want, or you can select the Target and set the signing identity there. Anyway, after removing all the bad entries from the project file manually, deploying to the device is working once again!