I'm developing an ios app (only for iphone) and trying to have other people test it. I have no problem installing the app on my own device through Ad hoc distribution. When I tried installing on another person's device, it always failed with the message "xxxxx could not be installed at this time". I'm using xcode 5.
Here are the steps that I followed:
Add the device's UDID to the existing Ad hoc provisioning profile in the developer portal
Download that provisioning profile and drag that to the xcode organizer
Under code signing->provisioning profile->release, choose the Ad hoc provisioning profile. Under code signing identity->release, choose the distribution certificate from the Ad hoc profile. I set the provisioning profile (debug) to none and set the code signing identity(debug) to 'don't code sign'.
Build the app and create an archive.
Click the Distribute button in Organizer. Choose "Save for Enterprise or Ad Hoc deployment" and then select the Ad hoc provisioning profile.
Click export and check "save for enterprise distribution". Fill in the application url and title.
Upload the ipa and plist file to a server. Create an index page which contains a link to the plist file. The link looks like this:
Install Application
Send the url of the index page to the tester.
Did I miss anything? I tried deleting all the provisioning profiles on my phone and then had no problem installing the app by clicking the "Install Application" link. One weird thing that I noticed was that the status of the ad hoc provisioning profile installed on the other person's iphone was "Valid signing identity not found", as well as the team shown as "unknown". I saw somebody mentioned "Code signing entitlements". Does that matter if I leave that empty?
Couple of things to try out:
Check that the UDID you added to the portal is ticked for use under the AdHoc provision. When adding a new UDID it's possible to forget to manually update the provision profile with the new UDID.
Don't create the link yourself and don't use a plist. Just drag the ipa you created to a site like http://www.diawi.com/ and share that link with your tester.
Good Luck
You might want to check that the app bundle identifier in Xcode project is identical to that on Apple Developer portal. App bundle ids are case-sensitive.
Here's a question and more answers about a similar installation issue.
Related
I read online we need a separate distribution provisioning profile if we want to distribute an app to the app store. I know there are answers already on StackOverflow for this error but I think mine pertains to my Distribution provisioning profile.
So right now I have two provision profiles, one for developer, and another for distribution. The app will build and run successfully on the same device when Code Signing Identity under "Build Settings" is set to iOS Developer. But when I switch Code Signing Identity to iOS Distribution and run on the same device, I get the error "None of the valid provisioning profiles include the devices". When I try the option to let Xcode "fix the issue", it says that
"Xcode failed to resolve the issue. Check your code signing settings; ensure you have a matching signing certificate and provisioning profile installed; and try again."
The provisioning profile for distribution is active on the Apple Developer site. When I try to reset in Preferences I still get the error
You can not run on a device with the Distribution profile. That's just for doing a build/archive and then submitting that to the store. If you want to run the production build on your device, submit to iTunes Connect and use TestFlight to install that build on your device.
I developed an iPad application to a client. My client has Apple Enterprise license. But they dont allow me to sign the app with their certificate. They just ask me to provide .xarchive file so that they can sign the app and create the ipa file.
This is how I have done that
1. Create a appid with com.mycompany.myapp.abc
2. Create a adhoc profile using above appid with my developer portal
3. set the bundle ID of my app com.mycompany.myapp.abc
4. Set the code signing identity to above profile in my app's target
5. archive the file using xcode 4.6.1
6. export the xarchive file and send to the client
7. Ask client to create a inhouse Dis profile with com.mycompany.myapp.* appid
8. Ask client to open the xarchive file using xcode and sign the app with inhouse profile and create the ipa file
They have followed above instructions in 7,8 and have created the ipa file. But when we try to install the ipa file using xcode to a device it gives following error.
Does above procedure has any problem. Can some one explain the issue.
EDIT:
for testing purpose I created adhoc profile with com.mycompany.* and created an ipa file by signing above xarchive file, it gives the same error message. But If I sign the xarchive file with profile crated with com.mycompany.myapp.abc bundle id works fine.
TL;DR:
Find out what the client's (provisioning profile's) entitlements are and make sure you match them.
The error is trying to say that the entitlements in your provisioning profile and their provisioning profiles differ. The difference could be a keychain group, push notification environment or something else.
The reason why Xcode asks you to choose a provisioning profile twice (once when archiving, once when distributing) is that all the provisioning profile entitlements are picked up in archive stage and mostly ignored in the distribution stage.
This makes it all too easy to distribute with the wrong entitlements, especially if your archive stage accidentally picked up a wildcard profile. Not your case, but that's why you should burn wildcard profiles with fire.
There are clever re-signing scripts (a.k.a. "Distribute..." button replacements) that will try to make the entitlements right by mashing what they find in the end user provisioning profile into your binary but I think the best solution is to make sure your provisioning profile's entitlements and any extra entitlements you add to your app matches their provisioning profile's.
I find Xcode's provisioning profile/entitlement system to be error prone. On hand you have entitlements that are basically part of your app's identity and may as well be set in stone (TODO: make your CI server check them). And on the other hand you have Xcode's build phase gleefully changing your app's entitlements based on its automatic/random provisioning profile selection. Silly.
You should follow the below step to make adhoc distribution .ipa for client
set bundle identifier in target info.plist
select the ad hoc distribution profile in target as well as in project
select iOS device then product-> archieve
organizer will pop up then select the archive and select "distribute" -> Adhoc Enterprise distribution
select the correct ad hoc distribution profile then save this .ipa file.
then send it to the client and let him know that before archiving or building the app we need correct adhoc provisioning profile . so there is no need to repeat the process at your end to set the provisioning or other stuff just distribute it .
How to distribute your iOS app over the air:
Just need to place the .ipa file and plist on a server and set the path in the above link example.
I'm trying to distribute my Phonegap app on the iTunes. I have done this before successfully before but I have since changed to a new Mac. I'm using Xcode 5.0.2.
I have created development and distribution certificates. I then created an App ID, entering the Bundle ID under "Explicit App ID".
I then created a development provisioning profile for the app, choosing the correct App I.D., the iOS Development certificate, my device, giving the profile a name and clicking "generate". I download it and double click to add to xcode. The xcode organiser opens and I see it added under my device provisioning profiles. I can then successfully run the app on my physical device.
Now I want to distribute it. I created a new provisioning profle, selecting "App Store" under Distribution, selecting the correct App I.D., the iOS Distribution certificate, and clicking "generate". When I double click the downloaded file, the organiser in xcode opens, but the distribution provisioning profile doesn't under the device provisioning profiles. When I click the + button to add the profile, I cannot select the Distribution provisioning profile, but I can select the Development provisioning profile:
I have no idea why this is. I tried closing down and opening xcode, to no avail. I tried waiting a few hours. Again, it didnt work.
I then try to distribute my app by creating an archive. First I go to build settings > code signing and choose iPhone Distribution:
I then select my physical device and choose Product > Archive. I get the error:
No matching provisioning profiles found
None of the valid provisioning profiles include the device Belgian Iphone (identifier: xxxxxxxxxxxxxxxxxxxxxxx).
Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.
I click "Fix Issue" and end up with the error:
There was an error generating the team provisioning profile for AppID 'FT49U8Q9JE'.
The AppID given here is different to the prefix in App ID's in the developer portal. I don't know if it should be the same. Any suggestion? I have spent 3 days on this problem and as stated above, I had no issues on my previous mac (which I no longer have)!
Something that got me recently was having to actually set the provisioning profile in the build settings
I was recently developing an iPhone application using Xcode. Now I want to install this app on my iPhone in order to test it.How can I do this? could you tell me please a step by step answer because I am new to this.
I have already created an account on the
iPhone Dev Center
now what is the next step?
As per Apple guidelines:
To test your app on a variety of devices and iOS versions, create a special distribution provisioning profile, called an ad hoc provisioning profile, and send it, along with the app, to testers. An ad hoc provisioning profile doesn’t require that testers be enrolled in an Apple Developer Program, be added to your team, create signing certificates, or use Xcode to run your app. Instead, app testers simply install the app and the ad hoc provisioning profile on their device to launch the app. You can then collect and analyse crash reports or logs from these testers to resolve problems before you ship your app.
Can I do what is mentioned here? and if yes how ?
go to memeber login area and login with your credential..
go to certificate , Identifiers & Profile tab
go to keychain access and create a .csr file and save it, it'll
required for creating certificates
create a certificate from certificate tab
create App Ids from identifier tab
Register your device UDID from Devices tab
Create distribution profile from Provisioning Profile tab and download & save it.
Install the Provisioning profile to your device and build your project using that profile.
Archive your project and create .ipa file
Final step: Install that .ipa file to your device.
Hope it'll help you. Happy Coding.....
With the free account you can not test/run apps on a device.
I'm trying to package my app up and distribute an ad hoc version via Test Flight. I've already packaged and submitted the app to the app store so I'm trying to figure out which settings I need to change to make it work for ad hoc.
When I try to upload my .ipa in Test Flight I get "Invalid IPA: missing embedded provisioning profile"
I tried following the instructions from Test Flight here: http://support.testflightapp.com/kb/tutorials/how-to-create-an-ipa-xcode-4 But there isn't even in option of "Code Signing" for me in Xcode (v4.2).
I've created an ad hoc provisioning profile and downloaded it into Xcode.
I've changed the code signing identity in build settings (for both target and project) and after archive I've attached the ad hoc provisioning profile when sharing the .ipa.
I'm still getting the error. Any thoughts on what else I might need to do?
Thanks.
The entitlements pane is now in project properties -> summary.
I would try cleaning your app, and re-archive. Make sure that Xcode recognizes your AdHoc profile. It can be quite the pain in the ass to get Xcode to pick up your profile due to conflicts in your keychain. Open Organizer, select Provisioning Profiles, and make sure your AdHoc profile doesn't have any issues. If it does, you will probably need to clear out your keychain and profiles and start nice and clean. I have a post on SO that might help you. Use Device Instead of Simulator
If you aren't having any issues with your profiles, try and just attach it after you upload your ipa file to TestFlight.
For anyone who is still experiencing this error:
I was experiencing this issue with XCODE 4.3.
1 . Make sure you have a Ad-Hoc Cert :
YouTube Tutorial
After Archiving and Selecting the Distribute via Ad-Hoc option, Make sure that you Update your list of keys. The option is at the bottom of the list. And select the Ad-Hoc cert if you just had to create one.
i.e. Product > Archive > Distribute > "Save for Enterprise or Ad-Hoc Deployment" >
Next > Code Signing Identity ** Refresh Code Signing identity **
If you are planning on distributing your application via TestFlight you will need an Ad-Hoc provisioning profile generated through your Apple Developer account.
Every application I build has at least 2, often 3, different provisioning profiles assigned to them.
Development
Ad-Hoc for outside testing
Distribution