openUrl for itms-services returns NO

Our application uses UIApplication openUrl with the itms-services scheme to apply runtime updates.

Since updating to iOS 10, the UIApplication openURL method is returning returning NO even though the update does install.

This is causing a problem because we use the NO result to trigger reporting that the install has failed.


We are using the canOpenUrl method first, before attempting openUrl.


Is there a security change causing this, or any changes I need to make to my applications Info.plist?


This is our code;


NSURL * url = [NSURL URLWithString:[@"itms-services://?action=download-manifest&url=" stringByAppendingString:urlString]];

if (![[UIApplication sharedApplication] canOpenURL:url]) {

LOG_(ERROR, @"canOpenURL returned NO");

return NO;

}

if (![[UIApplication sharedApplication] openURL:url]) {

LOG_(ERROR, @"openURL returned NO");

return NO;

}

This is happening for my application as well. I have also tried using the new method in iOS 10 openURL:options:completionHandler: and success is false in the completion handler. I have tried with an empty options and both @YES & @NO for the UIApplicationOpenURLOptionUniversalLinksOnly key in the options dictionary and get the same result.

I'm seeing something similar. I'm using openURL to open a webcal: link which attemps to subscribe the user to a Calendar. The completion handler passes NO for success, so I know to show my error UI... but a moment later, the webcal link is actually opened.

openUrl for itms-services returns NO
 
 
Q