Having trouble deploying ad hoc testing version of iOS app - ios

I'm new to iOS development and I'm having a bit of an issue deploying something for my client to test. I am using XCode v4.3.2. I was given an xcode project, and asked to make some minor coding changes, mainly to get my feet wet. I made the changes, compiled the app, ran it in the emulator, it worked fine. I tethered my iPhone to the macbook and followed apple's instructions to set up my phone as the dev phone, ran it from the phone, no problems.
Now the part I need help with. The company has a development license with Apple. They sent me an invite through Apple, which I accepted, which generated an Apple dev license for me. The project I took over had a bunch of code signing keys associated with it, that were all expired, so I switched over the keys to the one that was generated for me. I archived the project, and then saved it for adhoc/enterprise, which generated a .ipa file. They tried to load the ipa onto an iPod Touch (which the project has previously worked on) and it generated an error saying that it didnt have entitlements.
I checked Stackoverflow and found an article that stated how to add entitlements, so I followed them, and now in Code Signing Entitlements (in the Build Settings) it says : [ProjectName].entitlements (where the [ProjectName] is the actual project name :) ). I reaarchived and sent to her, and she tried to load the new .ipa. Now on the sync, she gets "not installed on ipod because an unknown error occurred (0xE8003FFE)".
This is driving me nuts... what am I doing wrong? I have the device ID for her iPod, just in case, do I have to set up some specific "thing" for her as an adhoc tester? I figured it would just work.... Please help!

I would suggest you have a look at
https://testflightapp.com/
It is an easier way to distribute builds to your clients and testers.
I use it regularly and it saves a lot of headache...

We use hockeyapp.net with great success. We've been using this for quite some time and our clients love the simplicity of OTA beta distributions.

Another company worth investigating is www.appblade.com. If you want a solution that blends iOS with Android and other platforms it works well. Testflight has been migrated into iTunes Connect.

Related

iOS app 'The application could not be verified' only on one device

I have two iphone devices( 4s and 5 ) connected to my computer and i am trying to install an application in both the devices. It installs pretty well in iphone 5 but it gives an error 'The application could not be verified.' when attempted to install in the iphone 4s device.
The UDIDs of both the devices have been added in the provisioning profile generated for the application.
Also, to add a note, I have just updated my iphone version to 8.1.3 in my 4s device. I am not sure though if the error has anything to do with it.
Any help on this would be much appreciated. I have been stuck on this for some time now.
EDIT:
I just connected this to another iPhone device and the issue seems to be there again. Basically this means that the app, for some reason, installs only in the phone which I have been using for some time now and not in any other phone. Once again, I am pretty sure that the provisioning profile contains the UDIDs of all these 3 devices.
I had something similar happen to me just recently. I updated my iPhone to 8.1.3, and started getting the 'application could not be verified' error message from Xcode on an app that installed just fine on the same iOS device from the same Mac just a few days ago.
I deleted the app from the device, restarted Xcode, and the app subsequently installed on the device just fine without any error message. Not sure if deleting the app was the fix, or the problem was due to "the phase of the moon".
As I notice The application could not be verified. raise up because in your device there is already an app installed with the same bundle identifier.
I got this issue because in my device there is my app that download from App store. and i test its update Version from Xcode. And i used same identifier that is live app and my development testing app. So i just remove app-store Live app from my device and this error going to be fix.
just delete the app and try again, it happens to me when i try to launch over a device that has the same app but generated by an ipa file.
You probably used the "Fix Issue" option in Xcode when plugging in a new device. Old question but I believe this is the actual answer to WHY this is happening. When you install an app on a device it is signed with a specific development provisioning profile. If, for instance, you plug in another device that is not registered on your developer account Xcode will ask you to "fix the issue". When you press that the device is added and another provisioning profile is created/modified. If you try to overwrite an existing app you'll receive that error. Deleting the app and reinstalling it works since the profile has been altered. I find this often happens when a Team is set and a member plugs in a new device then Xcode "Fixes" the problem.
Might have figured it out... Deleting the app from the device worked for me, as others mentioned before (thanks!).
I think the reason is that the app on the device was actually signed with a separate provisioning profile, specifically a distribution profile in my case.
I faced this issue a lot. I am not sure if this is the issue, but I think, when xCode saw that there is an app with the same bundle identifier as of the app, I am trying to install, it didn't allow me. So, I had to delete the older one and attempted to install and it worked. However sometimes for testing purpose, I needed multiple version of the same app and in that case, I would change the bundle identifier and try to install. It only works if, I am using an wildcard provisioning profile.
To others not using RubyMotion and don't think that deleting the app is acceptable (as in, you want to do upgrade testing). Check out the bottom of these docs from Apple:
https://developer.apple.com/library/ios/technotes/tn2319/_index.html
It looks like they changed something in 8.1.3 to check for this new rule.
The Fix
"[Add] the installed application’s application-identifier value, as logged in the second parentheses, to the previous-application-identifiers entitlement’s array value for the app being installed (by resigning it or re-building it) and requesting new special provisioning profiles as shown below."
<key>previous-application-identifiers</key>
<array>
<string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>
EDIT:
In order to do this, you need special provisioning profiles. You can request these from Apple:
"To enable signing with the previous-application-identifiers entitlement new special provisioning profiles are required that can be obtained by going to the Contact US page and requesting them." (from the docs linked above).
Had the same issue on my iPad running 8.1.3 Deleting the app and installing again fixed the issue. I use two different provisioning profiles on two different machines and that could have caused this issue.
Working & tested solution, which does not require to delete application:
It looks like AppStore Distribution Provisioning Profile or just iOS Distribution certificate have special permissions and "Could not be verified..." problem does not apply to them. They will always override previous certificate.
In other words: AppStore release will install successfully, even if already installed (testing, adhoc or enterprise) app has been signed by the certificate from different team.
If you are lucky and have previously uploaded app to the AppStore account owned by the same team as in certificate you have a problem with - then things are very simple: just download & install app from AppStore.
When it installs - app certificate will be the same as the one you want to test with and problem goes away.
If your app is not on the AppStore yet - iTunesConnect beta comes to the rescue:
Disclaimer: I did not tested this but since cert an prev are the same as AppStore release, I bet it works:
Archive your app with AppStore provisioning profile (iOS Distribution cert) and upload to iTunesConnect (to the account owned by the same developer team as included in the provisioning profile not you want to run).
Invite person with the device you want to run on (yourself?) to beta test.
Download & install the app from iTunes connect beta.
Now you are able to install your testing version.
The application could not be verified" , in your device there could be already an app installed with the same bundle identifier.
So Simple solution Just delete the App & try again..
....
TL;DR answer - There is no real solution besides "delete app and reinstall".
This answer is not satisfactory for many situations, when you have an existing database that needs to not get deleted within the app.
Lukasz and plivesey are the only ones with solutions that don't require delete, but neither worked for me.
I resolved this issue by changing the Build System to legacy in xcode.
I had the same problem but the mentioned solutions above didn't work for me. Even I had no previous app on device, I got this error when deploying on my device.
How to do:
Simply, go to menu File > Project Setting, inside Share Project Settings, change Build System from "New Build System (default)" to "Lagacy Build System".
I also encountered the same issue. Deleting the app didn't work, but when I tried deleting another app which was the current one's 'parent'(I copied the whole project from the previous app, modified some urls and images, then I clicked 'Run' and saw the unhappy 'could not be verified' dialog). Seems the issue is related to provisioning and code signing and/or some configurations of the project. Very tricky.
I had changed the team but I forgot to change it in my Tests target it so it caused that. Maybe this helps someone.
Just had the same problem and I found out that the issue is with expired certificate.
My app was distributed (AdHoc) through firebase and few days ago app was working just fine.
Today I've realized that I can't install it because 'The application could not be verified'.
Finally I realized that certificate that I was using for app signing has expired 2 days ago.
You need to upload it again and you'll be able to install it.
I had the same problem. But, I realised I was using a single plist with (debug) and (release) configuration, like this.
So, I changed few things..
Keeping a separate scheme for (release).
I added a new scheme for development purposes.
Edited the new scheme > run > Build Configuration > and set it to (release)
Generated a new archive using the new scheme and voila!!..
I'm able to install on all my devices.
My case:
jailbreak'ed iPhone
Final solution:
Install tweak AppSync Unified via Cydia
to bypass signing/certificate verification
Same issue occurred for me when I was installing through link. I tried to install using different link. Then I could install the app.

Flash CC publish direct to iPad and get Installation Error: ApplicationVerificationFailed

I'm in Flash CC... I've created a certificate and provisioning profile for app development, but when I try to publish to the device via the AIR 3.8 for iOS, it processes for about 1min30, and then throws up this error. I'm not sure how to fix it or what could be causing it. I've chosen an app id com.mycompany.myappname for the provisioning profile... does my flash file need to incorporate that structure anywhere?
Any help appreciated.
Thanks.
You need to do a few things (some of which you may have already done, just outlining them all):
Create a development certificate, convert it to a .p12 as instructed by Adobe
Create an app in the portal.
Add your device's UDID to the portal. You must use iTunes or Xcode to get this. As of iOS 7, the API used to grab the UDID on the device is removed so any app that claims to do it is returning a false UDID (false UDIDs will start with a bunch of "F"'s, I believe)
Create your provisioning profile. Make sure it is a development profile and that it includes your device's UDID and the appropriate App
I am unsure if you still have to do this, but you used to have to enable developer mode on device. This may have been done away with in iOS 7, however, as I cannot find the setting on my iPad
When compiling, your app must use the exact id that the App you created in step 2 did
Extra Tips:
Avoid doing WiFi debugging. It works, but not well. Stick to USB debug
If you have a previous version of the app on your device, try deleting it (long press the icon, hit the X)
Make sure your version number is valid (should be x.y.z, where x, y, and z are all a number between 0 and 999)
Some of that is obvious, but make sure you follow it all.
i had the same issue and the points given above didn't solved it... after banging my head for two days i deleted the Entitlement tag from the project xml file..and that solved it digging deeper i found that the issue was i had a key in it beta-reports-active and that only works for Store Submission

iOS App Failed to Install

I've been browsing the internet for a solution to this issue and have found plenty of threads about the same problem, but there was either no solution found or the ones proposed didn't work.
I followed along with the tutorial linked in the iOS text file in the Air project template for FlashDeveop. Since I do not currently have an iOS device, I've been sending the IPA to a coworker to have him test it. When he attempts to load the application onto the iTouch, he gets an "app failed to install" with no further information on why it failed. Does anyone know what could cause this?
Here's what I've already done/checked:
made sure the app ID in the apple portal matched the ID in the application.xml
sent my co-worker the provision profiled used to create the IPA
tried the test targets (fast test, fast debug, etc) as well as an "ad-hoc" build
recreating the certificates
Its also worth noting that the app runs fine on my Android device, so I'm fairly certain that I've missed something in the certification process for iOS.
Yeah sounds like a provisioning problem. Make sure the UDID of all devices you are targeting are in each listed provisioning profile (Note: You will need to add any additional UDID's added to the developer portal again to any provisioning profile).
Although I strongly recommend using Testflight for your circumstance, makes sending an .ipa extremely easy. https://testflightapp.com/

Error in PushWoosh integration

I've been trying to integrate PushWoosh in my project, actually I did integrate it successfully and released apps on the appStore. Now I am planning to release very similar app but with different content. I've done the same lately and the PW was working quite fine with each new duplicated target. But recently the duplicated target causing problem. Gives this Error alert at app startup:
Title: PushWoosh Error
Description: Your provisioning profile does not have any APS entry. Please make your profile push compatible.
I made the profiles Push compatible via the Pushwoosh's auto feature and downloaded then modified profiles and used them for archiving. I'd be very thankful if you guys can point out anything that I need to look at.
[Update]
One thing worths mention that I switched computers while making replica builds. So, in the start all builds are giving the error then at the end after being frustrated I generated whole new distribution certificates for this new computer. Now, with the new certificate and stuff I got my first target pushWoosh ready but then on the the second target gave the same error as above and surprisingly the third target works well with PW. Now I am in a fix that where's what going wrong causing such random errors. Any ideas?
Thanks
Do you have the "aps-environment" string in your mobile provisioning profile? If you don't you have to recreate it in the Apple Development Portal and then make sure there is such a string in a new profile, and its' value matches the gateway you're using in PW, that is "development" for Sandbox and "production" for Production.
I just came up with a different solution to this problem that I hope will help:
My problem was that the name of my app in Xcode wasn't the same as the App ID I had manually created on the Apple Developer Portal. I have 'Automatically manage signing' turned on in Xcode, so Xcode created an App ID automatically in the Apple Developer Portal called XC com paye...
I followed the process of creating the certificates from scratch, added them to the app ID that Xcode created, and voila! It works.
Hope this helps! :-)

Ad Hoc distribution for beta testing xcode 4.3

After following the great tutorials from http://www.raywenderlich.com/ on how to submit your app to the app store from square one I started planning my beta test program.
I'm not going to get into details of everything that wen well but of what I'm dealing with right now.
I've read many many posts on how to create provisioning profiles for ad hoc distribution of my app to beta testers. I've focused on those helping user get the app over the air (OTA) after a forum recommendation.
I also know now that TESTFLIGHT is out there but I can't use it this time.
Everything works well except the part where the application actually gets installed on my device. I keep getting the error "Unable to Download Application" after a few seconds of pressing "Install".
There are several possibilities and combinations of certificates, profiles, signatures, and here is where I think I'm doing something wrong. I'd like to show you what I have and what I've done and maybe your experienced eyes can spot my missing step or misconfiguration.
On the iOS Provisional Portal:
1) Ad Hoc distribution profile with a couple of devices:
2) After I download and install my certificates (I've create a couple of each for testing purposes):
3) On my xCode's project configuration:
4) When I generate the archive:
5) I upload everything to my server and then try to get the .ipa to install on my iPhone (which is one of the two devices included on the profile)
And finally I get this:
What could be wrong?
The only difference I can see is in the CodeSigning, ensure both lines under Adhoc point to your certificate.
Second thing to verify: You did not mention the plist that is created during the "Save for Enterprice". Did you upload that to your server, too? And does your link point to this plist? Check out this answer for the plist stuff: How to send the build to already provisioned remote person's iPhone
I've had this exact problem even where, like you (as far as I can tell), everything is done right.
What I discovered is that if you've EVER had the url to the plist file or the app file incorrect then your iPhone will always fail to install. There's some kind of cacheing going on where the phone fails to download the updated plist file if it's previously downloaded an incorrect one.
The fix I've used is to try a different phone (that hasn't cached a previous version), or to make a new version at a different URL. Sounds crazy, but it worked for me!
We have also faced with this problem couple of times and possible reasons might be;
Due to the screen shots, did you upload your files to exact location "http://www.becomingapps.com/en/ota/" location? When you give this URL during enterprise export.
Second possible reason we have seen is mismatched App Id's.
In case you haven't solved your problem, I think you can't use a wild card in your ad hoc profile. It should have the full ...com.becomingapps.dilemma signature.
You also have to upload both the icons, but I'm assuming you did that since your screenshot shows a custom icon.
It's worth the effort to get this working, my customers love it.

Resources