We're porting to Watch OS 2 and finding many, many calls not present. Some of the most notable for now include UIDevice. Important APIs like [[UIDevice currentDevice] name] and [[UIDevice currentDevice] identifierForVendor]. I suppose I can get by without [[UIDevice currentDevice] model] because there's more or less only one model.
Also not present is the SCNetworkReachability framework. I can probably ignore/workaround that. Not having anything to call the device I'm on will look sketchy. Not having identifierForVendor will decrease the user experience on reinstall.
SSL support seems to be missing from CFNetwork. Critical APIs like kCFStreamPropertySSLSettings and kCFStreamSSLCertificates are just missing. These would be total showstoppers, might as well just disable the target until these reappear. We need strict control over every aspect of SSL, so working around this could require totally rewriting away from CFNetwork which it's safe to say wouldn't be happening soon.
Similarly, CFHTTPMessageRef and related calls like CFHTTPMessageCreateRequest are missing. (NSURLSession is way too high level for our needs and the problem it's trying to solve [large data transfer in the presence of frequent backgrounding] is not one that we have.)
Too many errors, had to stop there. Is there any hope for this version of WatchOS or should we realistically keep the Watch OS 1 app current until these things are fixed in a future release? I didn't understand from WWDC that the frequent mentions of NSURLSession meant "and we basically haven't finished porting CFNetwork APIs so we're saying this because you may find it is your only option." If there is hope for the Fall, we'll need to know pretty soon as this was going to be a major effort this Summer.