phonegap / build

This is the public repository for PhoneGap Build source and bug tracking
92 stars 33 forks source link

[iOS] Problem installing with QR code through the OTA process. #410

Open amirudin opened 9 years ago

amirudin commented 9 years ago

Received complaint from users regarding OTA install unsuccessful (do nothing) for iOS 8.1+

Unable to reproduce but numbers of effected users are growing.

Topic: https://getsatisfaction.com/nitobi/topics/ios-8-1-2-and-above-ota-wont-install

AbrahamLopez10 commented 9 years ago

Steps to reproduce:

  1. Create app for iOS in PhoneGap Build, using PhoneGap 3.6.3 (other versions could be affected as well).
  2. Use an ad-hoc provisioning profile for compiling the app, with the UDID of an iOS 8.1.2 device (issue could be affecting iOS 8.0 and 8.1 as well).
  3. Install the app in the aforementioned iOS 8.1.2 device either by: A) Scanning the QR code generated by PhoneGap Build; or B) Allowing public sharing (in the "Settings" tab of the app) and install by typing the "Install" URL in the Safari app.
  4. The app will being downloading but it will not be able to be installed.
wildabeast commented 9 years ago

I've just gone through these steps and everything worked successfully for me.

80% of the time i've seen this issue it's been an error in the provisioning profile -- so I'd suggest recreating that if you haven't already.

If possible, connect your device to a Mac and watch the device log (explained here). This should show an explicit error as to why the app can't be installed.

AbrahamLopez10 commented 9 years ago

Have already tried regenerating the provisioning profile but that didn't work either. Let me look into the device log as you suggest and get back to you with my findings.

clarklight commented 9 years ago

I just want to ask, but if there is an error in the provisioning profile,would it still install if i connect the device via cable thru itunes? Because i tried it via cable, and it installed with no problem, it just wont install with OTA.

AbrahamLopez10 commented 9 years ago

I concur with Clark, when the OTA method fails on iOS 8.1, installing via iTunes on the Mac works. So, there's clearly a problem with the OTA method on the aforementioned iOS version.

wildabeast commented 9 years ago

I could see iTunes fixing / updating the app provisioning when you install by that method. But you could be right.

What we really need here is for one of you that are able to reproduce the issue to check your device logs as the problem occurs -- it should give us the explicit reason.

AbrahamLopez10 commented 9 years ago

I've done some tests, and here's what I found from the device logs in an iPhone 5 with iOS 8.1.1:

1) When the app fails to install, a "LoadExternalDownloadManifestOperation" warning is shown in the device log and nothing more is displayed in the log. It just stops there. Here's the full warning I got for 2 different apps that I couldn't install via OTA:

Mar 13 14:16:27 iPhone itunesstored[82] : LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.tercercielo.happykids

Mar 13 14:18:30 iPhone itunesstored[82] : LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.aplimovil.revista

2) There are some apps that I can still install via OTA, in those cases, I get the following output in the device log:

Mar 13 14:19:45 iPhone itunesstored[82] : LaunchServices: installing placeholder for com.abc.4kids Mar 13 14:19:46 iPhone installd[440] : 0x581000 -[MIClientConnection _doBackgroundInstallationForPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-4017014723613593092.app" type Placeholder requested by itunesstored (pid 82) Mar 13 14:19:46 iPhone installd[440] : 0x581000 -[MIInstaller performInstallationWithError:]: Installing Mar 13 14:19:46 iPhone installd[440] : 0x581000 -[MIInstallableParallelPlaceholder performInstallationWithError:]: Installing parallel placeholder Mar 13 14:19:46 iPhone installd[440] : SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName]

AbrahamLopez10 commented 9 years ago

Also, we've just tested on the same iPhone after upgrading to iOS 8.2 and the problem is still present, and the device log output is the same.

AbrahamLopez10 commented 9 years ago

Hello, any news on this? Thanks.

wildabeast commented 9 years ago

Sorry missed your previous update. After a quick search of your error

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID

It seems like this is a caching issue on iOS as discussed here and here. Solution is apparently to use iExplorer to wipe your downloads cache.

AbrahamLopez10 commented 9 years ago

I used the iExplorer app to wipe the downloads cache as instructed, but now a new error appears, here's the extract from the log:


Apr 2 14:53:38 iPhone kbd[135] : -PFUbiquitySafeSaveFile waitForFileToDownload:: CoreData: Ubiquity: <PFUbiquityBaseline: 0x18b804e0>(0) permanentLocation: <PFUbiquityLocation: 0x18b64f10>: /var/mobile/Library/Mobile Documents/com~apple~TextInput/Dictionaries/.baseline/UserDictionary/SAlQVUhF7208e6_gvZx_zdKx1U1AzKGem3HO2pLKjgY=/baseline.zip safeLocation: <PFUbiquityLocation: 0x18b677e0>: /var/mobile/Library/Mobile Documents/com~apple~TextInput/Dictionaries/.baseline/UserDictionary/SAlQVUhF7208e6_gvZx_zdKx1U1AzKGem3HO2pLKjgY=/mobile~20061B70-125C-4EE9-AF88-67B75C88AFC4 currentLocation: <PFUbiquityLocation: 0x18b64f10>: /var/mobile/Library/Mobile Documents/com~apple~TextInput/Dictionaries/.baseline/UserDictionary/SAlQVUhF7208e6_gvZx_zdKx1U1AzKGem3HO2pLKjgY=/baseline.zip

    storeName: UserDictionary
    modelVersionHash: SAlQVUhF7208e6_gvZx_zdKx1U1AzKGem3HO2pLKjgY=
    baselineArchiveLocation: <PFUbiquityLocation: 0x18b64f10>: /var/mobile/Library/Mobile Documents/com~apple~TextInput/Dictionaries/.baseline/UserDictionary/SAlQVUhF7208e6_gvZx_zdKx1U1AzKGem3HO2pLKjgY=/baseline.zip

Download failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file download timed out." UserInfo=0x188a4e40 {NSLocalizedDescription=The file download timed out.}

AbrahamLopez10 commented 9 years ago

Hi, any news on this? Please see me reply above. Thanks.

wildabeast commented 9 years ago

@aplimovil what's your App ID?

AbrahamLopez10 commented 9 years ago

It's happening with all apps on iOS 8, but you can try with app ID 744843, which is the one we discovered this with.

wildabeast commented 9 years ago

More than one device?

AbrahamLopez10 commented 9 years ago

Yeah, it has happened on 3 devices (all iPhones): iOS 8.1, iOS 8.2 and iOS 8.3.

wildabeast commented 9 years ago

There doesn't appear to be any devices registered in your Ad-Hoc Provisioning Profile

AbrahamLopez10 commented 9 years ago

Sorry, the app was last built with the app store profile, I've rebuilt it with the ad-hoc one which has 20 devices registered. Please check again. Thanks.

wildabeast commented 9 years ago

Currently at a loss, especially since I can't reproduce. Still screams problem with the provisioning profile to me. But going to investigate / research some more.

wildabeast commented 9 years ago

Could add my device to your provisioning profile so I can try to reproduce -- if you want to do that send an email to build at phonegap.com and I'll respond with a device id.

AbrahamLopez10 commented 9 years ago

Done, just sent you an email. I don't think it's an app-specific issue, as we've encountered the exact same issue with at least 3 other apps in our PGB account, both our developers and our clients have reported the issue, and this exact issue was already been reported previously by other people.

wildabeast commented 9 years ago

Installed, reinstalled, uninstalled and reinstalled, etc without issue. Looking back, the error is actually just "The file download timed out.", so it might be a network issue between your devices and PGB?

AbrahamLopez10 commented 9 years ago

I don't think so, as I can install the app at the same time on an iOS 7 device without any problem.

One thing that may be a factor in this issue, is that the app was originally installed when the device had iOS 7, and then was upgraded to iOS 8, and the app was tried to be updated (by installing it from the OTA link from PGB), after which it failed with the error messages in the device log that I've already sent.

On Thursday, April 16, 2015, Ryan Willoughby notifications@github.com wrote:

Installed, reinstalled, uninstalled and reinstalled, etc without issue. Looking back, the error is actually just "The file download timed out.", so it might be a network issue between your devices and PGB?

— Reply to this email directly or view it on GitHub https://github.com/phonegap/build/issues/410#issuecomment-93650949.

Sent from my iPhone

Farufon commented 8 years ago

This is NOT just an QR of OTA installation issue.

Same problem. iOS builds only install on new devices. Older (not much) ipad mini, ipad 2, etc. won't install. I have an ipad air 2 - no problem installing a build.

YES - the certs are in place. YES - the provisions are correct. YES the UDID's are proper. Please no suggestions of the obvious.

This IS A MAJOR ISSUE with either PhoneGap Build or Apple or both in regards to compatibility. EVERYONE without a brandnew apple iOS device I've certified and provisioned has the same problem -

Recognizes the app, attempts to load, (either in iTunes or phonegap download) and hangs up near the end - just spinning, or a persistent "INSTALLING" message.

Udog8 commented 8 years ago

This is still an issue! It has not been resolved. I have the hang issue on iPhones with OS 5 and 6. I've tried 3 different provisioning files. PhoneGap: cli-5.2.0(3.3.0/3.3.0/3.3.0). The errors occur with both OTA and iTunes load. Here is the app, I've rebuilt many times and started the app over a bunch: https://build.phonegap.com/apps/1895696/builds

Farufon commented 8 years ago

Yeah, you're right. I totally gave up on using it. No official response or acknowledgement from Adobe or builders. Just a bunch of elementary suggestions. Now I just use my iTunes developer account and build to a distribution profile and distribute as an External Beta via iTunes.