Where does provisioning profiles live in my iPhone XS? - ios

Apple Developer Program Information says:
A Development Provisioning Profile must be installed on each device on
which you wish to run your application code.
Each Development
Provisioning Profile will contain a set of iPhone Development
Certificates, Unique Device Identifiers and an App ID.
So where are provisioning profiles in my iPhone XS?
Can I see them?
Can I download them?
Can I beam them to any other device via bluetooth? airdrop? email?

It is not recommended for security reasons offcourse, but if you see yourself in the position that you want to distribute your file ad-hoc onair via 3rd-party software (e.g. installonair.com): their download file does not include the provisioning profile and won't let you download the app.
In my case downloading the correct provisioning profile and sharing it via airdrop it installed the provisioning profile on the ipad. You cannot see it, but is there. With the provisioning profile installed manually, it is now possible to download the app via 3rd party software.

The development provisioning profile is contained in the application bundle that is installed on the iOS device (typically using Xcode, but you can also use ad-hoc distribution methods).
You can't see them. There is no settings screen that shows the development apps installed on your phone.
You can't download them (well, you can download the app bundle using Xcode, but if you have Xcode you could just recompile your app).
You can't send a provisioning profile to another device from the device. Even if you could, it wouldn't really serve any purpose because the provisioning profile includes a list of authorised device identifiers and some arbitrary device won't be on the list.

The provisioning profile is installed when you correctly and legally install the app. You cannot see it. It is there to enforce security. It is your warrant to run this particular app on this particular device.
Can I beam them to any other device
Obviously not; if you could do that you would break through the entire security system that Apple has devised.

Related

Airwatch ad-hoc distribution without generating new IPA

I maintain an internal iOS app for a client who has an Apple Developer Program account (not Enterprise). They routinely give new devices access to the app by adding the UDIDs to the Devices list in their Apple Developer account and updating their Distribution provisioning profile. Then they deploy the app to the new devices through Airwatch.
When they add new devices in this way, they don't want to have to rebuild the app in Xcode with the updated profile. Instead, they believe they should be able to export the updated profile from their developer account, upload the profile to Airwatch, and push the app to the new devices, without ever generating a new IPA.
Is it possible to do this without an Enterprise Apple Developer account?
As long as you can get the new provisioning profile on the devices through MDM, you don't need to publish a new build. You just need to make sure the profile is installed on the device before they try to install the app. iOS doesn't necessarily care if the valid provisioning profile is bundled with the app when it was packaged. It just cares if a valid provisioning profile is installed on the device when an app is installed / run on the device.
I have used a similar technique with some internal apps we have, since we use a wildcard bundle ID in our profile. If the profile bundled with app A expires, it doesn't matter as long as the user has installed app B, which has a newer, still valid profile.
In my opinion, the workflow should look like this:
new device(s) received
add devices to provisioning profile on developer site
download updated profile and distribute it to all devices, including new device(s) via MDM
have users of new device install app (which should work since they now have a valid profile on their device for the bundle ID in question)
This works for profiles, however, when the certificate expires, you will need to rebuild the app(s).

Development provisioning profile devices

After lots of research, I understand that an app signed with an iOS development provisioning profile can only be installed on devices which have their UDIDs listed within the provisioning profile (which is done on the dev portal). To further my understanding of how this all works, I've created a new development provisioning profile which has only 1 device listed, and that device isn't the one I'm using. For some reason, when I sign an app using this provisioning profile through both xcode and cordova, the app will be installed and deploy as if that device's UDID were listed within the provisioning profile (which it isn't).
I've been using the following to inspect the embedded.mobileprovision profile within the .ipa
security cms -D -i <provprofile>
And there's only 1 device listed, and the UDID of that device doesn't match the UDID of the device which I've managed to install the app on.
Am I missing something here? This issue linked below seems to indicate that this shouldn't work.
Development Provisioning Profile
The embedded provisioning profile with the app isn't the only profile at play here. The device will allow the app to run as long as there is a valid provisioning profile that includes the device and includes the app ID the app is using.
I suspect you had previously installed the app (or another app) that had a valid provisioning profile for that device. The profile either had the same app ID, or was using a wildcard app ID, and is likely still on the device. Because iOS can find a valid profile, it lets the app run.
To verify if this is the case, Plug the device into a Mac, open Xcode, and go to the Devices window. Select the device in question, right-click on it, and select the "Show provisioning profiles..." menu item. You may see other provisioning profiles that are still on the device from previous installs.

iOS Enterprise program: not able to install IPA file created using in-house provisioning profile on one of our device

We are using iOS enterprise account for distributing our iOS app. We are using the in-house distribution scheme of enterprise program.
As far as my knowledge, we don't need to install the in-house provisioning profile in the targeted device. Also, I believe that we don't need to add the device UDID in iOS portal since it's an enterprise account. Please correct my last two statements if my knowledge is wrong.
I am creating the IPA file using the in-house provisioning profile only. But while installing the same on one of our devices (iPhone 5s), I am getting below error.
"**A valid provisioning profile for this executable was not found.**"
I tried to install the same IPA file on another device (iPhone 4s). I have not installed the distribution provisioning profile in that device also. And it's working fine there. So only I concluded that We don't need to install any provisioning profile on the device in case of iOS enterprise program.
Below is my provisioning profile from enterprise account which I am using.
I am not sure why this is happening. Please help me and let me know if I am missing something.
You have to use a provisioning profile that is set for distribution. This profile needs to be using a certificate that is installed on the Mac you want to create the archive from. The profile gets installed along with the application.
You do not have to have the device added to the portal (only development devices need to be added).
One note - the profile will expire yearly. You will have to publish at least one update every year to include an updated and renewed provisioning profile.
Here's some screenshots:
Keychain Access:
Build Settings (Xcode):
Archive:

Can't install my app on IPAD (freeze at "installing")

I've created an AS3 app with Adobe Flash CC. I'm using AIR 3.9.
It works great on android devices but when I've created an .ipa file and transfer it to my Ipad (with IO7), my app is visible but freeze on "installing" (nothing's happening.)
Do you know what could be the problem ?
Thank you very much for your answers,
EDIT : I'm using the ALPACA Source engine (Infos Here)
This happens when an improper certificate and/or mobile provisioning file was used to compile the app (and is a known bug on iOS 7. It never gives an error message and just tries to keep installing the app).
You need to make sure the following are true:
The app was compiled with either a development or distribution certificate made using Apple's developer portal. It must come from that portal. I have never seen a working way to do it without a certificate generated there and I do not believe it is possible.
The mobile provisioning file used matches the certificate. A developer certificate is used for a development provisioning profile and a distribution certificate is used for an ad hoc or app store provisioning file.
Again, make sure the provisioning profile comes from Apple's developer portal. This one is a little more flexible and I believe it can be faked by other sources, but why bother?
The provisioning profile must include your device's UDID. This is the only way an app can be installed on your device without it coming from the app store
You must use either a development (if your device is set up for development) or ad hoc provisioning profile. An App Store provisioning profile will fail to install.
It only worked for me when i created ad-hoc provisioning profile and used in the intellij project settings

app showing Installing for long time

For one of company we have created iPhone app as in-house. This app is not on app store. We provide them updated provision file everytime.
When client tries to installing app on one of iPhone, it keep on saying Installing... But installation never occurs.
Any idea why this is happening?
I have iOS 7 on client iPhone.
This could be for many reasons but the most common are:
Did not sign with the right provisioning profile.
The users device is not set up in an ad hoc distribution profile.
Is it signed using a proper enterprise provisioning profile?
The information in the plist if downloading from a site does not match the file being downloaded.
Poor internet connection.
I would go down the list and doubly check everything. Make sure that if you're building an adhoc profile from an app store account that it is actually being refreshed and not duplicated in Xcode when building with the provisioning profile that contains the proper UDID for the device they want to install it on.

Resources