I know this has been asked before.
However, I have ensured that the profile is in BOTH the project and target.
Actually should I set that up in the project or in target?
Update: I can actually install the app on device but if and only if I change the code signing identity to iPhone Developer for debug.
However, I obviously want to launch the application with my distribution profile instead of my developer profile.
I finally got this thing solved.
Basically I deleted all certificate and provisioning profile from itunes connect or apple developer website.
Then I waited 5 minutes. Add 2 distribution provisioning profile. Then do it again.
It works.
Oh ya, I need to ensure that the code signing identity points to the right provisioning profile. That's it.