iOS 10 can't install in house apps OTA

After updating a few devices to iOS 10 to test our distribution, we found that we can't install any of our internal applications OTA.


All of our devices are managed. Some are supervised and some are unsupervised. We support from iOS 6 (4th gen iPods) to iOS 10.


The restriction that seems to be cause the problem is for restricting access to the Apple App Store. Previously this meant that the App Store would not show up and you couldn't install apps from the Apple App Store, but could still install our internal applications through either our web portal or an MDM solution. In iOS 10, that restriction is stopping installation OTA through our web portal. Removing the restriction allows OTA installation to work but then the devices have access to the Apple App Store, which is very undesirable for us.


Our OTA installation works using the itms-services:// protocol pointed to a manifest plist. With the restriction in place, it seems to reject this protocol. All previous versions of iOS worked fine. Changing between HTTP and HTTPS for the IPA and manifest plist files, makes no difference.

Replies

Hmm, wonder if that is a bug or on purpose. I'd recommend filing a bug with Apple. Hopefully they they will respond with "works as expected" (which doesn't help, but at least you'd know) or they'll revert to the old behavior in the next release.

We seem to have run into the same issue. When device is restricted for App Store by MDM policy, OTA installation is not working :Cannot Open Page Safari cannot opne the page because the address is invalid". Same download works on iOS 9 with same MDM policy.

If you find any solution, please post here.

thanks

We have the same issue. Has anyone identified if this was an intentional move by Apple ?

We have this problem as well: devices are not under MDM and the app is signed with an enterprise license. The enterprise app installls OK with iOS9.3.5 and earlier but fails on iOS10 devices with the following errors in the device log:


iOS10-iPad installd(MobileSystemServices)[47] <Notice>: 0x16e037000 _IsValidZipArchiveAccordingToBom: File starts with 0x3c737479; expected 0x504b0304
iOS10-iPad installd(MobileSystemServices)[47] <Notice>: 0x16e037000 -[MIInstaller _setupPackageStateWithError:]: Archive at /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.40daLT/-5816624545934190949 doesn't appear to be a zip archive
iOS10-iPad installd(MobileSystemServices)[47] <Notice>: 0x16e037000 bom_fatal_error_handler: BOMCopier signaled fatal error: Couldn't read PKZip signature
iOS10-iPad installd(MobileSystemServices)[47] <Notice>: 0x16e037000 +[MIBOMWrapper extractZipArchiveAtURL:toURL:withError:]: 145: Could not extract archive (NSPOSIXErrorDomain:0 (null))
iOS10-iPad installd(MobileSystemServices)[47] <Notice>: 0x16e037000 -[MIInstaller _extractPackageWithError:]: Failed to extract archive: Error Domain=MIInstallerErrorDomain Code=5 "Could not extract archive" UserInfo={NSUnderlyingError=0x125f1ac20 {Error Domain=NSPOSIXErrorDomain Code=0 "Undefined error: 0"}, LegacyErrorString=PackageExtractionFailed, FunctionName=+[MIBOMWrapper extractZipArchiveAtURL:toURL:withError:], SourceFileLine=145, NSLocalizedDescription=Could not extract archive}
iOS10-iPad SpringBoard[54] <Info>: Updated: <private>
iOS10-iPad appstored(MobileInstallation)[122] <Notice>: <private>:InstallApplication:2:Fail:<private>

I've just logged a bug with apple. Hopefully we will find out if this is intended behaviour soon ....

It must be your web server's problem:

1. check your server's web.xml.

2. find the file's type your web server allows to download.

3. add ipa type to your web.xml to allow download and install ipa type's file.


If the problem continue, try to capture your app's installation requests on your iOS10 device, iOS 10 system will check web url mutilple location jump to the third web server. The same problem on mine has resolved, good luck to you!


Best wishes!🙂

Hi there,


My business has had this exact same issue everyone here has reported. I saw that you submitted a bug report to Apple, did you get any response? Thank you in advance!

Yeah we ran into the same issue, the AppStore is disable and we cannot do an OTA update with the itms-services:// protocol and it's very annoying . We try to enable the App store and hide the app but it's not working either.

Hello.


I faced same problem just now. Our program can't install with OTA in iOS10.0.0-10.0.2, but success in iOS6-9.

I report the details of our problem for a solution.


This problem does not occur at all iOS10 devices. Many iOS10 devices failed OTA installation, but few iOS10 devices succeeded OTA installation from same web server.


At failed device, OTA installation is retried repeatedly in backgroud. We can't stop retrying installation, and so basic authentication dialog for OTA installation appears endlessly.


I investigated failed device log, and found the process appstored(App Store daemon?) retry to get IPA file from web server and crushed with SIGSEGV everytime in retrying.

Following is device log of SIGSEGV;

--------------------------------------------------------------------------------------------------------

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Info>: scanned 79 logs with 9 types and 3 unknowns (sentinel is <private>)

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Report of type '109(<private>)' not saved because the limit of 25 logs has been reached

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Notice: This report is abbreviated for syslog inclusion because it could not be saved to disk.

Symbolication may be possible by manually cleaning up and including the Binary Image section of a full report from this same device -- good luck!

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Process: appstored [178]

Path: /System/Library/PrivateFrameworks/AppStoreDaemon.framework/appstored.bundle/appstored

OS Version: iPhone OS 10.0.2 (14A456)

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Exception Type: EXC_BAD_ACCESS (SIGSEGV)

Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000

Termination Signal: Segmentation fault: 11

Termination Reason: Namespace SIGNAL, Code 0xb

Terminating Process: exc handler [0]

Triggered by Thread: 7

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 0 name: Dispatch queue: com.apple.main-thread

Thread 0:

0 libsystem_kernel.dylib 0x1afc283c 0x1afc1000 + 6204

1 libsystem_kernel.dylib 0x1afc262e 0x1afc1000 + 5678

2 CoreFoundation 0x1b7e9868 0x1b72c000 + 776296

3 CoreFoundation 0x1b7e7b66 0x1b72c000 + 768870

4 CoreFoundation 0x1b737072 0x1b72c000 + 45170

5 CoreFoundation 0x1b736e80 0x1b72c000 + 44672

6 appstored 0x00099f88 0x95000 + 20360

7 libdyld.dylib 0x1af0250a 0x1aeff000 + 13578

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 1:

0 libsystem_kernel.dylib 0x1afd8744 0x1afc1000 + 96068

1 libsystem_pthread.dylib 0x1b0899b0 0x1b088000 + 6576

2 libsystem_pthread.dylib 0x1b08949c 0x1b088000 + 5276

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 2 name: Dispatch queue: com.apple.NSURLSession-work

Thread 2:

0 libsystem_kernel.dylib 0x1afc283c 0x1afc1000 + 6204

1 libsystem_kernel.dylib 0x1afc262e 0x1afc1000 + 5678

2 libdispatch.dylib 0x1aee93e2 0x1aed4000 + 87010

3 libdispatch.dylib 0x1aee97ba 0x1aed4000 + 87994

4 libxpc.dylib 0x1b0be678 0x1b0b9000 + 22136

5 Security 0x1bbc99ec 0x1bbaf000 + 109036

6 Security 0x1bbc9c24 0x1bbaf000 + 109604

7 Security 0x1bbdf62c 0x1bbaf000 + 198188

8 Security 0x1bbe0b22 0x1bbaf000 + 203554

9 Security 0x1bbde428 0x1bbaf000 + 193576

10 Security 0x1bbdefe0 0x1bbaf000 + 196576

11 Security 0x1bbdf588 0x1bbaf000 + 198024

12 Security 0x1bbdde8c 0x1bbaf000 + 192140

13 Security 0x1bbdf500 0x1bbaf000 + 197888

14 CFNetwork 0

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 3:

0 libsystem_pthread.dylib 0x1b089494 0x1b088000 + 5268

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 4 name: com.apple.NSURLConnectionLoader

Thread 4:

0 libsystem_kernel.dylib 0x1afc283c 0x1afc1000 + 6204

1 libsystem_kernel.dylib 0x1afc262e 0x1afc1000 + 5678

2 CoreFoundation 0x1b7e9868 0x1b72c000 + 776296

3 CoreFoundation 0x1b7e7b66 0x1b72c000 + 768870

4 CoreFoundation 0x1b737072 0x1b72c000 + 45170

5 CoreFoundation 0x1b736e80 0x1b72c000 + 44672

6 CFNetwork 0x1bdfdbb0 0x1bd54000 + 695216

7 Foundation 0x1c14f1a0 0x1c05b000 + 999840

8 libsystem_pthread.dylib 0x1b08ba26 0x1b088000 + 14886

9 libsystem_pthread.dylib 0x1b08b94c 0x1b088000 + 14668

10 libsystem_pthread.dylib 0x1b0894a8 0x1b088000 + 5288

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 5 name: Dispatch queue: com.apple.NSXPCConnection.m-user.com.apple.nsurlsessiond

Thread 5:

0 libsystem_c.dylib 0x1af21534 0x1af20000 + 5428

1 libxpc.dylib 0x1b0bd516 0x1b0b9000 + 17686

2 libxpc.dylib 0x1b0bd380 0x1b0b9000 + 17280

3 libxpc.dylib 0x1b0bd20c 0x1b0b9000 + 16908

4 libxpc.dylib 0x1b0be4f6 0x1b0b9000 + 21750

5 Foundation 0x1c0617ee 0x1c05b000 + 26606

6 libxpc.dylib 0x1b0bd772 0x1b0b9000 + 18290

7 libxpc.dylib 0x1b0bbc4a 0x1b0b9000 + 11338

8 libdispatch.dylib 0x1aed8742 0x1aed4000 + 18242

9 libdispatch.dylib 0x1aee1d2c 0x1aed4000 + 56620

10 libdispatch.dylib 0x1aed7cd4 0x1aed4000 + 15572

11 libdispatch.dylib 0x1aee1d2c 0x1aed4000 + 56620

12 libdispatch.dylib 0x1aed8378 0x1aed4000 + 17272

13 libdispatch.dylib 0x1aee2b9c 0x1aed4000 + 60316

14 libdispatch

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 6:

0 libsystem_pthread.dylib 0x1b089494 0x1b088000 + 5268

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 7 name: Dispatch queue: com.apple.root.default-qos.overcommit

Thread 7 Crashed:

0 libxpc.dylib 0x1b0babfa 0x1b0b9000 + 7162

1 libxpc.dylib 0x1b0bd1dc 0x1b0b9000 + 16860

2 libxpc.dylib 0x1b0bd196 0x1b0b9000 + 16790

3 StoreServices 0x1f79065a 0x1f69e000 + 992858

4 StoreServices 0x1f79034e 0x1f69e000 + 992078

5 libxpc.dylib 0x1b0bd772 0x1b0b9000 + 18290

6 libxpc.dylib 0x1b0bbc4a 0x1b0b9000 + 11338

7 libdispatch.dylib 0x1aed8742 0x1aed4000 + 18242

8 libdispatch.dylib 0x1aee1d2c 0x1aed4000 + 56620

9 libdispatch.dylib 0x1aed7cd4 0x1aed4000 + 15572

10 libdispatch.dylib 0x1aee2b9c 0x1aed4000 + 60316

11 libdispatch.dylib 0x1aee888e 0x1aed4000 + 84110

12 libsystem_pthread.dylib 0x1b089800 0x1b088000 + 6144

13 libsystem_pthread.dylib 0x1b08949c 0x1b088000 + 5276

Sep 29 16:26:37 user-no-iPhone ReportCrash(CrashReporterSupport)[211] <Notice>: Thread 7 crashed with ARM Thread State (32-bit):

r0: 0x00000000 r1: 0x1f83de08 r2: 0x3810f314 r3: 0x193405cc

r4: 0x00000000 r5: 0x193405cc r6: 0x1f83de08 r7: 0x193405c0

r8: 0x3810f314 r9: 0x16595128 r10: 0x166a94b0 r11: 0x165141b0

ip: 0xfb89986d sp: 0x193405b0 lr: 0x1b0bd1dd pc: 0x1b0babfa

cpsr: 0x60000030

--------------------------------------------------------------------------------------------------------


And I found the process itunesstored(iTunes Store daemon?) works at OTA installation in iOS9 in place of appstored.

I suspect that the cause of this problem may be it in appstored, but does not know why some iOS10 devices success OTA installation in the same condition.


I hope that this information helps a solution to the problem.

Thanks.

We are having this exact issue as well! Our internal web app store works on ios9, but not ios10. Our logs looks exactly like yours. It is very frustrating.

We had this issue too. Turned out, our site was using HTTPS with TLS1.0 only, and it seems iOS 10 now supports only TLS1.2 with Forward Secrecy. You can use `nscurl --ats-diagnostics --verbose https://yourdomain.com` to test if it's really the case, SSLLabs is also very helpful tool https://www.ssllabs.com/ssltest/index.html


Now we did updated our servers and iOS 10 successfully install apps.

Best regards

Serg

Exact same issue here. Affecting some devices, but not all.


The one thing I was able to discover is that all of the failed devices already had a prior version of our enterprise app installed, and the OTA installation process was done on top of that older version. Same symptoms: The OTA process repeatedly challenges for a username/password (our IPA is password-protected on the server) and there seems to be no way out of this loop.


I've found reference to a bug in iOS 10.0 beta 1 that describes this exact symptom, here:


https://forums.developer.apple.com/thread/49669


But this thread says that the issue was addressed in Beta 2. So I'm surprised that I'd be seeing this on iOS 10.1 (and also iOS 10.0.3).


I'd love to figure out why this is happening, it's pretty much stopped our OTA distribution in its tracks..


\marc

The server we use was looking for

itunesstored


to filter requests and denying if that was not found.


In iOS10 Apple changed what was sent to

com.apple.appstored


Now that the server allows this as well it all works beautifully again.

Following on to cbottjer's question, has anyone found any public API either via WebKit or iOS that will allow us to interrogate the restriction settings? I'd like to keep our customers from getting such a useless alert and instead either raise something more intelligent, or just optionally display different content on the page at load time to inform them what's up and, nominally, what they need to do.

We have the exact same issue. I've tried contacting apple support and been given the run-around after working with them for 3 hours. They don't seem to have any idea


Here is another thread I found that is the same issue

https://forums.developer.apple.com/thread/65539


Also, we've only noticed the issue with iPhone 6 specifically, not all devices appear to have this issue


Also, once this happens to a device, it's stuck in the loop until you can use itunes or xcode to force a removal or overwite of it