Browse Source

Update generation of the OS version part of the user agent to use non-localized sources.

Jon Shier 9 years ago
parent
commit
0ede05ad88
1 changed files with 23 additions and 3 deletions
  1. 23 3
      Source/Manager.swift

+ 23 - 3
Source/Manager.swift

@@ -61,9 +61,29 @@ public class Manager {
                 let executable = info[kCFBundleExecutableKey as String] as? String ?? "Unknown"
                 let bundle = info[kCFBundleIdentifierKey as String] as? String ?? "Unknown"
                 let version = info[kCFBundleVersionKey as String] as? String ?? "Unknown"
-                let os = NSProcessInfo.processInfo().operatingSystemVersionString
-
-                var mutableUserAgent = NSMutableString(string: "\(executable)/\(bundle) (\(version); OS \(os))") as CFMutableString
+                let osNameVersion: String = {
+                    let version = NSProcessInfo.processInfo().operatingSystemVersion
+                    let versionString = "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)"
+                    let osName: String = {
+                        #if os(iOS)
+                            return "iOS"
+                        #elseif os(watchOS)
+                            return "watchOS"
+                        #elseif os(tvOS)
+                            return "tvOS"
+                        #elseif os(OSX)
+                            return "OS X"
+                        #elseif os(Linux)
+                            return "Linux"
+                        #else
+                            return "Unknown"
+                        #endif
+                    }()
+                    
+                    return "\(osName) \(versionString)"
+                }()
+
+                var mutableUserAgent = NSMutableString(string: "\(executable)/\(bundle) (\(version); \(osNameVersion))") as CFMutableString
                 let transform = NSString(string: "Any-Latin; Latin-ASCII; [:^ASCII:] Remove") as CFString
 
                 if CFStringTransform(mutableUserAgent, UnsafeMutablePointer<CFRange>(nil), transform, false) {