I'm trying to do an ad hoc distribution of my iPhone app to some beta testers. I created the certs, device IDs, provisioning profiles, etc. and followed the instructions on Apple's site regarding how to incorporate them into the build/distribution. When I copy the provisioning profile and app to iTunes and try to sync, I get the following message:
The application "XYZ" was not installed on the iPhone "Eric's iPhone" because the entitlements are not valid.
It seems like everyone else that runs into this problem solves it by adding the Entitlements.plist file to the build configuration. The thing is, I've created (and edited) that file correctly. I see it and the provisioning profile in the built app.
Does anyone know what might be going on?
Regards,
Eric
Did you go into the build settings for the AdHoc configuration and make sure the Code Signing Entitlements setting is set to point to your Entitlements.plist file?
Related
I am a beginner in iOS development. I have got some understanding on provisioning profiles in IOS. Please help me confirm my understanding.
Here is my scenario. iOS application developed on MAC1 with developer certificate1 and built using developer provisioning profile1 which includes UDID1 is deployed on device D1 with UDID1 successfully.
I add a new device D2 with UDID2 to my developer provisioning profile1 and built the app in MAC1 and generated an .ipa file.
I have a new MAC machine M2 where i try to connect device D2 and try to deploy the app on device D2. I copied the latest developer provisioning profile to the device.
Questions
1. Will the provisioning profile get installed successfully ?
2. Will i be able to deploy the .ipa file on device only with the developer provisioning profile and without developer certificate from a new MAC machine on to the device D2(UDID of this device is already added to developer provisioning profile)?
3. If i had used adhoc provisioning profile and followed the same above steps will i be able to use instruments in Xcode ?
Thanks.
UPDATE 1
3. Answer - If i use adhoc distribution profile, i could not use instruments in xcode.
No that's not how things work
!) certificates must exist on every computer and on every device you want to test
2) On ad-hoc you must add the devices and then sent them some profiles for the phones.
3) then you archive and codesign app and send it wherever you want to.
OR you can use something like that https://testflightapp.com/
Answer1 - YES, provisioning profile will be installed successfully.
Reason - Provisioning profile if included with the UDID of a device, it can be installed. No other dependancies. But in the Keychain access, you will get a warning telling that, valid identities are missing.
Answer2 - YES, we will be able to deploy the .ipa file on the Device D2. .ipa file internally has .app and the provisioning profile. We cannot deploy the app on device without developer certificate.
Answer3 - No, Distribution profile is for submitting apps in app store. Those apps cannot be debugged.
Adding to these answers, .dysm file helps developers to get more details while profiling. This .dysm file can be generated only with developer provisioning profile.
If anyone thinks my understanding is wrong in any aspect please add a comment. Thanks.
I followed the stepped to create a ad hoc carefully:
Added the testers team devices to the devices list in iOs Provisioning profile page
Created a new distribution profile for ad-hoc
In xcode I chose the project and clicked on product->archive.
I sent both the archive (ipa file) and mobile provision to the testers team.
The application failed to install.
I saw an answer of a developer to set in build settings the provisioning file to Code Signing Identities to the distribution profile here
In the list I can see only iOS Team Provisioning Profile that was created by xcode.
This is probably not the distribution profile.
What is missing? How can I set the build settings to the distribution ones?
In the IOS Provisioning Portal, in the Provisioning page, click the 'Download' button by your new distribution profile and it should get added to XCode.
To check you have it, go to XCode Organizer, Devices, then Library / Provisioning Profiles on the left.
You may also use https://testflightapp.com.
This is a free service and works very reliably - you can manage your testers and test ipa's easily.
First I also tried testing my app without such a service - but I ended up using this, since it's also very easy for the testers.
Create Distribution certificate and Provisioning profile.
You should have the Distribution certificate in key-chain.
Download Distribution Provisioning profile and double click on that profile.
Confirm you are having the profile in XCode -> Organizer.
In case the Add-Hoc deployment won't install on a testing device, and you have the device added to the profile, and the app signed correctly ...
Ok, what I did is to add an Entitlements.plist file and set the Can be debugged option to NO and set it on the target as the Code Signing Entitlements, but actually I don't know if this was the fix because I won't try again and again, now that it worked.
Then, actually I didn't archive the app and save the .ipa file from Organizer - Archives, but instead I've sent the .app file from the build/Release-iphoneos as it is, together with the profile downloaded from dev account. It will install in iTunes and it just worked, after couple of hours of frustration.
I have an iPhone app that was handed to me. I deleted all of the existing certificates & provisioning profiles and created them from scratch. I believe I have set everything in the Provisioning Portal correctly:
Distribution Certificate created
Devices with correct UDID's added
Ad-Hoc Provisioning file created with associated devices
I was able to successfully build & Archive my application. When I save it as a *.ipa and drag that and the *.mobileprovision file into iTunes everything is good, until my phone is syncing.
At that point I get an iTunes Sync: Failed to Install error. Other testers get the error: The app was not installed because the signer is not valid
I am not sure how to resolve this?
I have received that error because I had created my .ipa file with the ad hoc provisioning profile BEFORE I added the devices. Are you sure that you are using the most recent provisioning profile when you create the ipa? You may need to check which scheme you are using and verify its right
Everything was correct, except for the final stage where I am given the save options. The profile matched my Distribution profile, but for the wrong app. It just defaulted to one of them. I had to manually change it to the Ad Hoc Distribution I was building for. Silly mistake.
This question was not resolved by the above suggestions, however we were able to fix it by removing the entitlements from the build.
This problem happened while working on an old app we were updating. No jailbreaking, just an ad hoc .ipa sent over email between team members. All provisions were correct.
We were able to figure out the issue was entitlements by trying to install using "iPhone Configuration Utility" instead of iTunes. That gave us the actual error message which was easy to fix.
Debugging this issue was easier than with iTunes. It also has better UI for installing ad hoc builds. I recommend you try it here:
http://www.macupdate.com/app/mac/27986/apple-iphone-configuration-utility
i already face this , finnaly i found,.
If Your Certificates, Provisoning Profiles then & the ipa is generated,,
so there is no problem in your ipa File,
But Problem in Specific Device in which you are try to insalled,,
If Your Device is JailBroken Then Easily iTunes cab Install ipa,,
But If Not Then You Have To Register/Add device to
https://developer.apple.com/devcenter/ios/index.action
->Procsoning Profile -> Devices
Then & Then Ipa File Is Installed
I am trying to test my iPhone app in XCode 4 and it is telling me that i don't have a valid provisioning profile even though i do. What is wrong?
There are a lot of factors that could cause this. More information is needed. The primary things I would suggest are:
Is your device authorized in the provisioning profile (using the Developer Portal or team provisioning profile)
Have you downloaded the latest profile from the developer portal? And made sure its not expired?
Have you specified the correct provisioning profile in the build settings for your project? If you have had to make changes to the profile or renew it you will have to re-download it AND install it in Xcode AND change your build settings to point to the new one even though it has the same name.
I am trying to distribute my application to a beta tester. I believe that I have followed the ad hoc distribution process to a T but I my tester is having issues when trying to install. The error being "Could not install, invalid entitlements" or something to that effect. I have generated a distribution certificate. I have generated a ad hoc provisioning certificate referencing my distribution certificate, my app id, it's marked as an ad hoc distribution and the devices are selected (I regenerated just to be sure). I downloaded the certificate and profile and installed in Xcode and the keychain as needed. My app id in the info.plist is the same as the one in the profile (with the exception of the 10 character Apple generated prefix).
I went to Xcode and created a dist.plist and unchecked the get task allowed value. I created an Ad hoc distribution configuration and set the code signing identity to the one I just down loaded. Build clean. Build and archive. Shared it using Organizer. Emailed the .IPA and the mobileprovision file to the beta tester. It is probably a forest for the trees type of thing.
And that's where my tragic story ends. I've read everything I can find and I appear to be following the steps. Obviously I am missing something.
is the 'Application requires iPhone environment' checked in your info.plist?
are you sure you are using correct provision profile?
Make sure all the steps you entered has performed correctly, as you already mentioned forest of trees.
One thing you are missing is to set the
Code signing entitlements in you project's settings
you have to set its value to your entitlements file name as in your case dist.plist
so set Code signing entitlements = dist.plist in your projects settings.
Wish you good luck!