How to install iPA to specific devices using Distribution Profile - ios

I have got a strange requirement from my client. I need to install iPA with distribution Profile to selected devices. Previously I have done the same with developer profile and Adhoc-Distribution profile. If I create iPA with distribution profile, however, I don't get any option to check UDID of the devices before installing. Third party MDMs are not permitted by the client.
I need a solution for checking the UDID of the devices by using distribution profile before installing. MDMs are not permitted and I have already tried developer profile and Adhoc-Distribution profile.

I need to install iPA with distribution Profile to selected devices.
You are describing an Ad Hoc distribution. When you create the Ad Hoc distribution profile at the Member Center web site, you get to specify the devices. That is exactly what an Ad Hoc distribution is: an app associated with a list of specific devices that it can run on.
But if i create iPA with distribution profile, i didn't get any option to check UDID of the devices before installing
With an Ad Hoc distribution profile, you specify the devices (by UDID) at the Member Center. You don't need any further "option". If you export for Ad Hoc distribution using this profile, the app will not run except on the listed devices, which precisely meets your requirements.

Related

What is difference between Xcode Ad Hoc and IOS Team Provisionig Profile

I am not sure what is the difference between these two XC Ad Hoc and iOS Team Provisionig Profile. These two are generated by Xcode.
Are these two same?
OR
If different what's difference between them and when to use which one?
As far as I understand and searched the forum what I got is this
Development profile allows you to test your apps on your physical devices
App Store Distribution profile allows you to sign your apps for App Store distribution
Ad Hoc Distribution profile allows you to sign your apps for Ad Hoc distribution
Mainly AdHoc distribution allows you to install the generated IPA on
100 devices which you can distribute for testing.This 100 devices
should be added in your developer account.
AdHoc distribution is used for testing production push notifications
in the app. Before releasing the app to appstore, if you want test
your production push notifications you need to generate ipa and test
the notifications.
Ad Hoc Distribution Profile: Using this profile you can allow 100 devices to install your app for testing purpose. App signed using this profile can be install using itunes. App must have same identifier as mentioned in Ad Hoc provision profile. ie. com.yourName.appName
iOS Development Provision Profile: You can install your app directly from XCode to test on device. It is not compulsory to have matching identifier for app and provision profile if provision profile is signed with wild card. ie. com.yourName.*

How to send an Ad Hoc to a device I do not own

Creating an app for a customer and am not certain how to distribute the app Ad Hoc.
I added an Ad Hoc distribution provisioning profile on the apple developer portal.
I then exported an archive using that distribution provisioning profile through xcode.
Uploaded that archive to Diawi.
User receives install error.
Is this due to the fact that I do not have his particular device in my provisioning profile device options to select from?
How would I go about doing this?
I.E. in the listening when I add a new distribution profile for Ad Hoc I get to the page that says "Select the devices you wish to include in this provisioning profile. To install an app signed with this profile on a device, the device must be included."
And I do not own their device so I cannot add it to my list.
You need to get their Unique Device Identifier (UDID) and add it to your list of devices. You do not have to "own" the device but do need their UDID.
Here is a site showing how to get the UDID from iTunes:
http://whatsmyudid.com
You can also get it from Xcode:
http://www.raywenderlich.com/2915/ios-code-signing-under-the-hood/organizerudid

How come I can install an app store distribution build directly on my device?

I was under the impression that it was impossible to install an app store distribution build directly on a test device (without going through the actual App Store). I found multiple references to the following note by Apple (though I could not find the note itself in the current version of the iOS App Distribution Guide):
"App Store provisioning profiles do not allow for a distribution built application to be installed on an Apple device. To install your distribution ready application on a device, you must create an Ad Hoc provisioning profile."
Now consider the following: I have an Ad Hoc Distribution provisioning profile and an App Store Distribution provisioning profile. The ad hoc profile contains a list of provisioned devices, the app store profile doesn't. My (no jailbrake) device is included in the provisioned devices in the ad hoc profile. My build was signed with the app store profile. The resulting .ipa file was submitted to the App Store (and approved - but it is not publicly available yet). When I view the package contents of the .ipa file, I see that the embedded.mobileprovision is indeed the app store profile (without the provisioned devices list). When I drag this profile to my Xcode Organizer, I get an error that the profile cannot be installed because the device is not included in the profile (as expected). However, when I drag the .ipa file to my Xcode Organizer, the app installs on the device (and can be opened on the device afterwards). I tried this after making sure there were no other copies of the same app installed on the device. The same thing does not work when I use a different device that is not included in the provisioned devices of the ad hoc profile (even though the .ipa contains the app store profile without provisioned devices list).
Does anyone have a possible explanation for this? It seems that somehow a build signed with an app store profile can still be installed on a device included in the corresponding (same app identifier? same team identifier?) ad hoc profile. But if this would be the case, what is the point of making separate ad hoc builds?
I noticed this too and always meant to find out why it worked.
It used to be true that you couldn’t install an App Store build but that appears to have changed, I’m guessing either in iOS6 or 5.
I found that I could only install App Store provisioning profile builds when a compatible Ad Hoc profile was already installed. Developer profiles did not work. I did not try wildcard profiles. So it looks like the Ad Hoc rules changed.
I can’t find the rules for installing an Ad Hoc build, but on the topic of launching the “Ad Hoc Provisioning Profiles in Depth” section of Apple’s App Distribution Guide says that
The app successfully launches if the app’s bundle ID matches the App ID, the signature matches the distribution certificate, and the device is in the device list of the ad hoc provisioning profile.
So I guess technically an AppStore builds meet these Ad Hoc requirements because it too is signed with the same distribution certificate. The use of “the” is misleading here because it makes it sound like iOS consults your embedded.mobileprovision, which is untrue. It should read “an” ad hoc profile.
NB: The install only worked when the Ad Hoc profile was already installed on the device, so that’s one reason to make separate ad hoc builds.
NB: This is all conjecture, another explanation could be that Xcode handles the installation of the embedded.mobileprovision and now continues when the AppStore profile installation fails.
This raises another question for me: why does iOS DWIM for App Store builds yet refuses to launch Ad Hoc builds with expired provisioning profiles when a perfectly valid replacement is installed?

App store provisioning profile

I created one distribution profile for app store submission. Can i test my application in device with the same profile.
Or otherwise i need to create some other profile with ad hoc distribution?
You can not use an app store provisioning profile to test on a device. You can use an ad hoc profile, or a development profile.
Both ad hoc and development profiles require you to specify your device id.
The difference between an ad hoc and a development profile, is that a development profile can be used to debug. That is, you can use Xcode to build and install the app right on your device, and then step through code as the app is running to see values variables hold etc.
An ad hoc profile allows you to build an .IPA file and share that with beta testers (assuming of course you included their device id in the profile, or you have an Enterprise account/profile). They can install the .IPA file via iTunes (so they don't have to be a developer, or on Mac for that matter).
Yes, you have need to create ad hoc distribution profile for test. You cann't test with distribution profile(app store submission). read this About Store Provisioning Profiles and Creating Store Provisioning Profiles
Sorry!! you can't.
App Store > create a distribution provisioning profile to submit to the App Store
Ad Hoc > create a distribution provisioning profile to install a limited number of registered devices.
So you need to create a new Ad Hoc type distribution profile to install your device.
The answer to your question is 'NO'. You can not use 'store distribution provisioning profile' for testing your app on a device. It is intended to be used only for submitting your app to App Store.
To test your app before you submit it to App Store, you need to create separate 'ad-hoc distribution provisioning profile'. This will help you to beta test your app before submission as refered here..
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html#//apple_ref/doc/uid/TP40012582-CH8-SW1

How to add device to the Adhoc Distribution profile

I am attempting to install a App via Test Flight
When I click on the URL provided by Test Flight I get a "This build is not available for this device"
I suspect that this is because on my iOS Provisioning portal - Under the Distribution Profile the Device I am attempting to install is not listed
Is this assumption correct - If correct how does one add a device to the Distribution Provision Profile.
You need to add the device to your developer portal
Then you will need to create/modify the profile, making sure your device is included in the list
Creating a Distribution Provisioning Profile

Resources