Bypassing iOS application verification error
Sometimes, when you’d like to install a third-party iOS app outside of the App Store on your device you might come across with «Application Verification Failed» error.
It can be a rare case, because it’s really a concatenation of circumstances and means, that you received the app without your team’s provision profile. Anyways, we are able to solve this problem.
Plan
- Get own provisioning profile
- Resign the app
- Install the app
Precondition
First of all, to make our life better and easier, we should install ideviceinstaller and fastlane:
brew install ideviceinstaller
gem install fastlane
Provisioning profile
Then we need to get a provision profile. If you already have it, you can jump to the next step, if not, let’s go on.
As Apple said:
Xcode is the easiest way to create an iOS provisioning profile. Connect your device to your Mac and click Use for Development in Xcode’s Organizer window. Sign in with the Apple ID associated with your Apple Developer Program membership and Xcode will generate a provisioning profile containing your certificate and device identifier.
So, in this case it doesn’t matter of signing type, will it be personal team or organisation team.
Resign the app
Here we need three things:
- .ipa
- .mobileprovision
- iOS Developer Certificate
I hope you have got an .ipa, other ones we can get from Xcode:
So:
- drag and drop iOS Team Provisioning Profile from Xcode tooltip into the folder with .ipa
- copy iPhone Developer Certificate from the same tooltip
- then resign the app via fastlane like this:
fastlane sigh resign testapp.ipa --signing_identity "iPhone Developer: [email protected] (KJRTP5GJS9)" -p "test.mobileprovision"
Install the app
P.S.:
If you see this pop-up, you can go to Settings => General => Device Management on the device to trust the developer and allow the app to be run (see Apple documentation for more information):
Conclusion
To sum it up, I would say that «Application Verification Failed» is hardly a problem. Now we can install any .ipa on any devices (: