NSURLConnection with https and TLS 1.1 - macos

My app uses NSURLConnection to post an xml file to a financial organization in my country that will at some point next year stop using SSL protocols and switch to TLS 1.1 or 1.2.
My app is linked to 10.6 SDK as many of my clients use older systems. There are several questions I like to ask and I am not sure how this all affects me.
Does it matter to what SDK am I linked? If my app is used on latest Mac OS will NSURLConnection use latest TLS by default? How do I test the TLS version on a system?
Should I link to the newer SDK? Or just tell affected clients to upgrade to Mountain Lion or newer?
The problem is I can't test anything now as the organization in question just announced that at some point in 2016. they'll stop support for anything less than TLS 1.1.

No need to keep yourself confined to an ancient version of Xcode (I think Xcode 3?), what you can do is use the latest version of Xcode and
1)
specify MacOS 10.6 as the "minimum deployment version"
(honestly, in my opinion, you should only support 1 - 3 MacOS versions back... MacOS 10.6 dates from 2011).
2)
And make sure to use app transport security exceptions to allow for older TLS under MacOS 10.11 and newer MacOS versions.
Apple will happily support TLS 1.2 going forward. If you still need to support TLS 1.1, that'll still require an exception in the app's info.plist file.

Related

Are there any infographic what SSL/TLS versions support every OS X?

I've been working on adding TLS 1.2 support functionality for OS X application.
I didn't find any clear info what Mac OS X versions support TLS 1.2.
You will find the information at Wikipedia. Note that there are several TLS stacks and the supported versions depend also on the TLS stack you use.
The default stack shipped with Mac OS X is Secure Transport which support up to TLS 1.2 (depending on the OS version). But Python, Perl, Ruby... etc use OpenSSL and Apple shipped only the very old OpenSSL version 0.9.8 which only supported up to TLS 1.0. But of course somebody might have installed a newer OpenSSL version to change this.

Worklight 6.2.0.1 issue with xCode 7.3.1 on iOS9+

I have two applications developed on WL 6.2.0.1. And I was building my iOS projects using xCode 6.3.1 as I wasn't facing any issues on iOS (All OS versions)
When I upgraded my xCode to 7.3.1. all my iOS projects that are running on iPhone/iPad with iOS9+ starts to fail and it not even connecting to my WL server anymore.
Any invocation I make it failed and I see no logs on the server, meaning it is not even reaching it.
If I tested the same build that is done on xCode 7.3.1 but with iOS8 it works.
When I revert back my xCode update as I have a time machine, all start working again on All OS versions.
Is there a known issue with WL 6.2.0.1 with new xCode? I have been searching and couldn't find anything about this.
Server version: 6.2.0.01.20141013-1735
Starting with Xcode 7 and iOS 9, Apple now requires ATS (Application Transport Security) by enabling TLS 1.2 on the server and working with HTTPS on the client. That is why all your requests are failing - because the client & server are misconfigured.
During development, you can disable ATS. See here: https://mobilefirstplatform.ibmcloud.com/blog/2015/09/09/ats-and-bitcode-in-ios9/
For production-time, you'll want to read this: https://mobilefirstplatform.ibmcloud.com/blog/2015/09/07/preparing-ibm-mobilefirst-platform-server-app-transport-security-ios-9/

What is the minimum version of Xcode I can use for submission to app store

I have an app on the appstore currently that is built using Xcode 6 with a deployment target of iOS 7. The recent release Xcode 6.3, however only works on OSX 10.10
Can I submit updates to the app store by building on an earlier version of Xcode (6.2 in my case) because I am unable to update OSX to 10.10? Does Apple release documentation about this when it releases a new Xcode version? The only thing I found was this
https://developer.apple.com/library/ios/qa/qa1806/_index.html
which says that I should aim to build with the latest version of Xcode but does not mention if the app would be rejected/approved if built with a lower version.
The minimum Version of Xcode is 5.1.1 as stated in iTunesConnect when you want to upload a new binary of your app. This information does obviously include, that you can of course use Xcode 6.2 for AppStore submission.
Hope that helps :)
You can build using the lower version of the SDK within reason I believe. Some older compilers may be missing features that Apple will eventually require, but in the short term shipping with 6.2 won't really hurt much.
That said, Xcode 6.3 should include the iOS SDK. Make sure you got it from the App Store, which includes the full suite of stuff.

AppStore Update Policy

Just wondering what will happen if the current app version supports OS 10.6.6 upwards and you upload a version that is built for Lion.
Will the 10.6 users be still able to download the version that is for 10.6 or will they be forced to upgrade to 10.7? My guess is the latter, but I'm not 100% sure.
How would you handle the jump from 10.6 to 10.7?
Apple's storefront database knows which version of OS X your app currently requires (the Deployment Target), and thus might not allow the App Store application on your Mac to update an app if the Mac on which the App Store application is running does not have a proper OS version for that app.
Any update replaces the previous version. If the new version you plan to release requires 10.7, then I strongly encourage you to disclose that information in the update so that users who plan not to upgrade right away will know not to install your update.

Lion specific features

I am developping a Mac application requiring Mac OS 10.6. However I am interested to add a Lion specific feature (fullscreen support).
What is the way to properly manage that (I am planning to use the Mac App Store):
2 different versions?
a "special" version combining 2 version and using automatically the right one depending of the system?
Thanks
Set Base SDK to Lion, but the Deployment Target to the oldest version you want to support, and the newer features are available via weak linking

Resources