Getting "app integrity cannot be verified" error when in developer mode - ios

I currently have my iPhone (iOS 16.3) in developer mode, but when trying to install an apple device application file that I developed, I am getting the "Unable To Install [app]: This app cannot be installed because its integrity could not be verified". The only other way I know of to rectify this is to get a distribution provisioning profile and submit it on a test flight on the app store, but this is not an app I intend to distribute - it's for my own personal testing purposes. Is there a way to hard-bypass this restriction? I own the phone, I take full responsibility if I break it, especially if I break it with an application that I wrote myself.

Did you generate the IPA with a development profile, an ad-hoc, or a distribution profile? For development, you need a development profile that has your device's UUID enabled on it. You do not need to create a distribution profile.

Related

How come I can install app store profile signed application on my device?

As per my understanding, to create an IPA for distribution for testing or sharing with others, I need to sign my application with AdHoc profile. For uploading the IPA to App Store, I need to sign the application using App Store Distribution profile.
But I have an application for which even if I create an IPA with the App Store distribution profile, I can install it on my test device (no it is not jail broken and yes it has the AdHoc Profile installed on the device). This particular profile was created during iOS 6.
Now when I create a new App Store distribution profile and I try to install on the test device with the AdHoc profile being present I am unable to do so.
Any idea as to how is it possible? Technically as per my understand App Store Distribution profile signed IPA should never be possible to be installed on devices directly using iTunes. It has to be installed through App Store (after Apple's approval).
It is not possible to do so. Somehow the old certificate allowed me to install the app in one of the device, after renewing the certificate it no longer allows me to install the app signed with the appstore certificate in the device.
So the final answer is that, it is not possible. It can only be installed on jailbroken devices (which is a different question altogether).

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

iOS Developer Builds vs Distribution Builds

I've been under the impression for some time that for iOS, signing a build with a developer provisioning profile allows the app to run (and get debugged) on an authorized device (listed in the development provisioning profile) through an XCode build, whereas signing with a distribution profile allows the app to be run (but not debugged) on other iOS devices that have been specifically added to the distribution provisioning file for the purposes of QA/beta testing/etc (and installed via iTunes sync or OTA distribution), without the need for those QA/beta-testers to even know what an XCode is.
Seems to match several of Apple's own docs:
"When you’re ready to share your app for user testing [...], you need
to create an archive of the app using a distribution provisioning
profile and send it to app testers" (source)
and
Code Signing with a development profile allows your app to run on
device through Xcode, and signing with a distribution profile allows
you to create distribution builds.
The certificate named "iPhone Developer" allows you to run/debug your
app on iOS devices through Xcode, and the certificate named "iPhone
Distribution" allows testing your submission build with Ad Hoc
distribution (source)
This seems to imply that using a distribution profile is necessary to do app sharing outside of the App Store, and for years I've always assumed this to be true. Recently however, I've been shown a use case from another colleague where they've been able to share builds with many other people using only a development provisioning file. Another user has described a similar discovery here: Why not use development provisioning instead of ad hoc?
I'm worried I might be missing something here, I'm now suspicious that there are cases where as long as another user has access to a relevant developer provisioning profile that includes their device's UUID, and installs it on their device (drag into iTunes, config utility, etc), that they would be able to sync Developer builds through iTunes as well, without the need for making separate Distribution builds.
This has led me to question some of the assumptions I've had about the nature of the differences between developer and distribution builds in general. I'm starting to think that it's more about debug support and general ease of installation, rather than the nature of how it's installed (XCode vs iTunes/OTA explicitly).
In short, if a device has it's UUID included in a developer provisioning profile, do I really need to make separate distribution builds, or can I simply share a Release Development build and assume that will work with an iTunes sync as well? Does the "Use for Development" button in organizer have any real relevance to this?
More broadly: what are the fundamental differences between Developer and AdHoc builds in terms of how they can be shared among other people within an organization in the development/testing phase before being submitted to the App Store?
Check this SO Post for the differences listed out between developer and distribution builds. From a developer perspective, there is not much difference whether you want to distribute your app either by signing it with a developer profile or distribution profile, provided you are not testing push notifications.

Query about distribution certificate and development certificate in iOS app distribution

i want to know do we need both distribution certificate and development certificate, if i want to give my app to any one else or want to install on other mobile?
how can i setup my code signing with this certificates in xcode?
can anyone give me a screenshot for it?
The development and distribution is both necessary. They are both used in archiving which is a step you take when you want to upload your app to App Store. If you want to allow your friend to have the app you developed on their device, just connect the device in xcode and click on use for development. Then you can upload your app to their device for testing. You can register up to 99 devices to your development id. If you decide to publish your app on the App Store then you need to go through the steps of uploading your app and then you need your distribution profile. I hope this answer your question.
First you want to register with the Apple Developer Program (99$).
After that you want add your Device UDID.
Then you create the developer and distribution certificates.
Download these certificates and install them into your system.
Now In your Xcode Build Settings Set the Corresponding profile.
Connect your device and run it.

iOS: What are DISTRIBUTION provisioning profiles used for?

This might have been asked lots of times, but still I couldn't find info on why are they needed. I use DEVELOPER prov profiles to test apps on my device, that makes sense.
The Provisioning Portal explains prov profiles like this:
A Provisioning Profile is a collection of digital assets that uniquely ties
developers and devices to an authorized iOS Development Team and enables
a device to be used for testing.
By this logic they are only needed for testing, eg not for distribution. Do we need one to deploy the app on the AppStore?
Absolutely yes. The distribution profile is used for submission to the App Store. It does not have the 100 device limit that the development profiles have.
From the Tools Workflow Guide:
When you’re ready to share your app for user testing or for general distribution through the
App Store, you need to create an archive of the app using a distribution provisioning
profile and send it to app testers or submit it to iTunes Connect. This chapter shows
how to perform these tasks.
The distribution profile prevents the attackers from submitting a modified version of your app to the store - only you, who hold the private key of the distribution certificate, can submit and update your app.
Once your app is submitted, your embedded.mobileprovision and your binary will be checked and compared to make sure that you are the legitimate author. embedded.mobileprovision file is then discard and the app is signed again by Apple using their own certificate (which is by default accepted by all iDevices), so that all iDevices can run it.
When an iDevice downloads the app, the executable binary is then encrypted with an encryption key associated that device. At run time, only that device can decrypt the executable binary and run it.
There are two types of distibution profiles, the first one is to submit your app to the appstore and the other one (Ad-Hoc) is necessary if you can´t connect a device to your mac(developer profile). Then you can share your app wit the Ad-Hoc profile to someone else e.g. via mail.
Distribution Provisioning Profile
Distribution Provisioning Profile is used by Apple to publish an application to App Store. When Apple approve the application it is signed by Apple and became public.
Distribution Provisioning Profile contains:
Application ID - application which are going to run
Distribution certificate - who can debug the app
[Development Provisioning Profile]
[Certificate]

Resources