Some StoreKit errors are returned with SSErrorDomain

Originator:converted2mac
Number:rdar://25502597 Date Originated:04/01/16
Status:Open Resolved:
Product:iOS Product Version:iOS 9.3
Classification: Reproducible:Always
 
Summary:
StoreKit errors may be returned with an SSErrorDomain, rather than SKErrorDomain. 

Manually checking for error domain fails with the enumerated constant, SKErrorDomain. Instead, the developer has to do a manual string check for @"SSErrorDomain". 

The complete dearth of documentation for SSErrorDomain, and the compiler's recommendation to update my strings/constants to SKErrorDomain lead me to believe this is a typo.

Steps to Reproduce:
1. Disable network connection.
2. Initiate SKProductRequest.
3. Error 110 is returned to delegate.

Example: 
    NSSet *productIDs = [[NSSet alloc] initWithArray:@[<productID>]];
    SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIDs];
    productsRequest.delegate = self;
    
    [productsRequest start];

SKProductsRequestDelegate method 'request:didFailWithError:' receives the 110 error with domain of SSErrorDomain.

Expected Results:
Would expect the error to be something similar to: 
Error Domain=SKErrorDomain Code=110 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store...

Actual Results:
Error Domain=SSErrorDomain Code=110 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store...

Version:
iOS 9.3 tested, but some quick googling found version back to iOS 7 reporting similar errors

Notes:
Easily reproducible when sending StoreKit product requests with a disabled network.

Configuration:
iOS app using StoreKit

Comments

I created a post about this in Apple's forums- https://forums.developer.apple.com/message/298710. This really sucks, we get a SSErrorDomain Code=3 error on the customer side and we can't do anything, because we don't know what this means.

By ppetrov.mp at March 9, 2018, 11:23 a.m. (reply...)

SSErrorDomain

SSErrorDomain is the domain for StoreServices.framework, which is a private helper framework that's part of iOS / Xcode and handles common store connectivity logic for in-app purchases (and who knows what else).

When you receive an error with this domain, it simply means that the error came from code that lives in this framework, instead of StoreKit. Unfortunately as this isn't a public-facing framework, it and any errors it generates are completely undocumented.

Did you ever figure this out?

By mitchellporter at April 11, 2016, 8:16 p.m. (reply...)

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!