Converted OSX + Examples to Swift3

This commit is contained in:
Mathias Köhnke 2016-09-09 21:43:52 +02:00
parent 6ddf31e776
commit ee902bfd55
13 changed files with 106 additions and 84 deletions

View File

@ -89,11 +89,11 @@ public protocol HTMLFetchableContent {
import Cocoa
extension NSImage : HTMLFetchableContent {
public typealias ContentType = NSImage
public static func instanceFromData(data: NSData) -> Result<ContentType> {
public static func instanceFromData(_ data: Data) -> Result<ContentType> {
if let image = NSImage(data: data) {
return Result.Success(image)
return Result.success(image)
}
return Result.Error(.TransformFailure)
return Result.error(.transformFailure)
}
}
#endif

View File

@ -89,9 +89,9 @@ internal class Renderer : NSObject {
Logger.log(warning)
}
#elseif os(OSX)
self.webView = WKWebView(frame: CGRectZero, configuration: config)
if let window = NSApplication.sharedApplication().keyWindow, let view = window.contentView {
self.webView.frame = CGRect(origin: CGPointZero, size: view.frame.size)
self.webView = WKWebView(frame: CGRect.zero, configuration: config)
if let window = NSApplication.shared().keyWindow, let view = window.contentView {
self.webView.frame = CGRect(origin: CGPoint.zero, size: view.frame.size)
self.webView.alphaValue = 0.01
view.addSubview(self.webView)
} else {

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="XfG-lQ-9wD">
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="11201" systemVersion="15G1004" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9531"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11201"/>
</dependencies>
<scenes>
<!--Application-->
@ -642,7 +642,7 @@
<outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
</connections>
</application>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="WKZombieDemo" customModuleProvider="target"/>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Example_OSX" customModuleProvider="target"/>
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="75" y="0.0"/>
@ -668,7 +668,7 @@
<!--Developer Portal-->
<scene sceneID="hIz-AP-VOD">
<objects>
<viewController title="Developer Portal" id="XfG-lQ-9wD" customClass="ViewController" customModule="WKZombieDemo" customModuleProvider="target" sceneMemberID="viewController">
<viewController title="Developer Portal" id="XfG-lQ-9wD" customClass="ViewController" customModule="Example_OSX" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" id="m2S-Jp-Qdl">
<rect key="frame" x="0.0" y="0.0" width="640" height="480"/>
<autoresizingMask key="autoresizingMask"/>

View File

@ -29,15 +29,15 @@ class ViewController: NSViewController {
@IBOutlet weak var imageView : NSImageView!
@IBOutlet weak var activityIndicator : NSProgressIndicator!
let url = NSURL(string: "https://github.com/logos")!
let url = URL(string: "https://github.com/logos")!
override func viewDidLoad() {
super.viewDidLoad()
activityIndicator.startAnimation(nil)
getTopTrendingEntry(url)
getTopTrendingEntry(url: url)
}
func getTopTrendingEntry(url: NSURL) {
func getTopTrendingEntry(url: URL) {
open(url)
>>> get(by: .XPathQuery("//img[contains(@class, 'gh-octocat')]"))
>>> fetch

View File

@ -29,30 +29,30 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
func applicationWillResignActive(application: UIApplication) {
func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
func applicationDidEnterBackground(application: UIApplication) {
func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(application: UIApplication) {
func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(application: UIApplication) {
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(application: UIApplication) {
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

View File

@ -23,14 +23,14 @@
import UIKit
public class Button : UIButton {
open class Button : UIButton {
override public var enabled: Bool {
override open var isEnabled: Bool {
didSet {
if enabled == true {
if isEnabled == true {
backgroundColor = UIColor(red: 0.0/255.9, green: 122.0/255.0, blue: 255.0/255.0, alpha: 1.0)
} else {
backgroundColor = .darkGrayColor()
backgroundColor = .darkGray
}
}
}

View File

@ -31,8 +31,8 @@ class LoginViewController : UIViewController {
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
@IBOutlet weak var loginButton : UIButton!
private let url = NSURL(string: "https://developer.apple.com/membercenter/index.action")!
private var snapshots = [Snapshot]()
fileprivate let url = URL(string: "https://developer.apple.com/membercenter/index.action")!
fileprivate var snapshots = [Snapshot]()
override func viewDidLoad() {
super.viewDidLoad()
@ -42,9 +42,9 @@ class LoginViewController : UIViewController {
}
}
@IBAction func loginButtonTouched(button: UIButton) {
guard let user = nameTextField.text, password = passwordTextField.text else { return }
button.enabled = false
@IBAction func loginButtonTouched(_ button: UIButton) {
guard let user = nameTextField.text, let password = passwordTextField.text else { return }
button.isEnabled = false
snapshots.removeAll()
activityIndicator.startAnimating()
getProvisioningProfiles(url, user: user, password: password)
@ -54,17 +54,17 @@ class LoginViewController : UIViewController {
// MARK: HTML Navigation
//========================================
func getProvisioningProfiles(url: NSURL, user: String, password: String) {
func getProvisioningProfiles(_ url: URL, user: String, password: String) {
open(url)
>>* get(by: .Id("accountname"))
>>* get(by: .id("accountname"))
>>> setAttribute("value", value: user)
>>* get(by: .Id("accountpassword"))
>>* get(by: .id("accountpassword"))
>>> setAttribute("value", value: password)
>>* get(by: .Name("form2"))
>>> submit(then: .Wait(2.0))
>>* get(by: .Contains("href", "/account/"))
>>> click(then: .Wait(2.5))
>>* getAll(by: .Contains("class", "row-"))
>>* get(by: .name("form2"))
>>> submit(then: .wait(2.0))
>>* get(by: .contains("href", "/account/"))
>>> click(then: .wait(2.5))
>>* getAll(by: .contains("class", "row-"))
=== handleResult
}
@ -72,21 +72,21 @@ class LoginViewController : UIViewController {
// MARK: Handle Result
//========================================
func handleResult(result: Result<[HTMLTableRow]>) {
func handleResult(_ result: Result<[HTMLTableRow]>) {
switch result {
case .Success(let value): self.outputResult(value)
case .Error(let error): self.handleError(error)
case .success(let value): self.outputResult(value)
case .error(let error): self.handleError(error)
}
}
func outputResult(rows: [HTMLTableRow]) {
func outputResult(_ rows: [HTMLTableRow]) {
let columns = rows.flatMap { $0.columns?.first }
performSegueWithIdentifier("detailSegue", sender: columns)
performSegue(withIdentifier: "detailSegue", sender: columns)
}
func handleError(error: ActionError) {
func handleError(_ error: ActionError) {
print("Error loading page: \(error)")
loginButton.enabled = true
loginButton.isEnabled = true
activityIndicator.stopAnimating()
dump()
@ -97,9 +97,9 @@ class LoginViewController : UIViewController {
// MARK: Segue
//========================================
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "detailSegue" {
if let vc = segue.destinationViewController as? ProfileViewController, items = sender as? [HTMLTableColumn] {
if let vc = segue.destination as? ProfileViewController, let items = sender as? [HTMLTableColumn] {
vc.items = items
vc.snapshots = snapshots
}

View File

@ -34,20 +34,20 @@ class ProfileViewController: UITableViewController {
navigationItem.hidesBackButton = true
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items?.count ?? 0
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let item = items?[indexPath.row].children()?.first as HTMLElement?
cell.textLabel?.text = item?.text
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "snapshotSegue" {
let vc = segue.destinationViewController as? SnapshotViewController
let vc = segue.destination as? SnapshotViewController
vc?.snapshots = snapshots
}
}

View File

@ -19,30 +19,29 @@ class SnapshotViewController: UICollectionViewController {
var snapshots : [Snapshot]?
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return snapshots?.count ?? 0
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(SnapshotCell.cellIdentifier, forIndexPath: indexPath)
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: SnapshotCell.cellIdentifier, for: indexPath)
if let cell = cell as? SnapshotCell {
cell.imageView.image = snapshots?[indexPath.row].image
}
return cell
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
}
extension SnapshotViewController : UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = (view.bounds.size.width / 2) - 1
let height = (view.bounds.size.height * width) / view.bounds.size.width
return CGSize(width: width, height: height)
}
}
extension SnapshotViewController : UICollectionViewDelegateFlowLayout {
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 1.0
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 2.0
}
}
}

View File

@ -153,12 +153,12 @@
isa = PBXNativeTarget;
buildConfigurationList = BF01D1551CB6DF400095BCE4 /* Build configuration list for PBXNativeTarget "Example iOS" */;
buildPhases = (
7F0DCE50C224DEA28E978AA5 /* 📦 Check Pods Manifest.lock */,
7F0DCE50C224DEA28E978AA5 /* [CP] Check Pods Manifest.lock */,
BF01D13F1CB6DF400095BCE4 /* Sources */,
BF01D1401CB6DF400095BCE4 /* Frameworks */,
BF01D1411CB6DF400095BCE4 /* Resources */,
BE397A7E64678C9CCD379BF7 /* 📦 Embed Pods Frameworks */,
CA49EA506B324CD052DC997F /* 📦 Copy Pods Resources */,
BE397A7E64678C9CCD379BF7 /* [CP] Embed Pods Frameworks */,
CA49EA506B324CD052DC997F /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@ -173,12 +173,12 @@
isa = PBXNativeTarget;
buildConfigurationList = BF01D1681CB6DF690095BCE4 /* Build configuration list for PBXNativeTarget "Example OSX" */;
buildPhases = (
B2EA9311BFC6F98696DCF43F /* 📦 Check Pods Manifest.lock */,
B2EA9311BFC6F98696DCF43F /* [CP] Check Pods Manifest.lock */,
BF01D1581CB6DF690095BCE4 /* Sources */,
BF01D1591CB6DF690095BCE4 /* Frameworks */,
BF01D15A1CB6DF690095BCE4 /* Resources */,
74B172EE250EEE4E3EB42085 /* 📦 Embed Pods Frameworks */,
2D8A74D67D9E30AC4A02CD87 /* 📦 Copy Pods Resources */,
74B172EE250EEE4E3EB42085 /* [CP] Embed Pods Frameworks */,
2D8A74D67D9E30AC4A02CD87 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@ -196,11 +196,12 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 0730;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Mathias Köhnke";
TargetAttributes = {
BF01D1421CB6DF400095BCE4 = {
CreatedOnToolsVersion = 7.3;
LastSwiftMigration = 0800;
};
BF01D15B1CB6DF690095BCE4 = {
CreatedOnToolsVersion = 7.3;
@ -249,14 +250,14 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
2D8A74D67D9E30AC4A02CD87 /* 📦 Copy Pods Resources */ = {
2D8A74D67D9E30AC4A02CD87 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Copy Pods Resources";
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@ -264,14 +265,14 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Example OSX/Pods-Example OSX-resources.sh\"\n";
showEnvVarsInLog = 0;
};
74B172EE250EEE4E3EB42085 /* 📦 Embed Pods Frameworks */ = {
74B172EE250EEE4E3EB42085 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Embed Pods Frameworks";
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@ -279,14 +280,14 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Example OSX/Pods-Example OSX-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
7F0DCE50C224DEA28E978AA5 /* 📦 Check Pods Manifest.lock */ = {
7F0DCE50C224DEA28E978AA5 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Check Pods Manifest.lock";
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@ -294,14 +295,14 @@
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
B2EA9311BFC6F98696DCF43F /* 📦 Check Pods Manifest.lock */ = {
B2EA9311BFC6F98696DCF43F /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Check Pods Manifest.lock";
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@ -309,14 +310,14 @@
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
BE397A7E64678C9CCD379BF7 /* 📦 Embed Pods Frameworks */ = {
BE397A7E64678C9CCD379BF7 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Embed Pods Frameworks";
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@ -324,14 +325,14 @@
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Example iOS/Pods-Example iOS-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
CA49EA506B324CD052DC997F /* 📦 Copy Pods Resources */ = {
CA49EA506B324CD052DC997F /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Copy Pods Resources";
name = "[CP] Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
@ -407,8 +408,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@ -454,8 +457,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@ -475,6 +480,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
VALIDATE_PRODUCT = YES;
};
name = Release;
@ -483,6 +489,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 103C458DB709116CF3A71CAA /* Pods-Example iOS.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "Example iOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -490,6 +497,7 @@
PRODUCT_BUNDLE_IDENTIFIER = de.mathiaskoehnke.Example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Example-Bridging-Header.h";
SWIFT_VERSION = 3.0;
};
name = Debug;
};
@ -497,6 +505,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 8B4DABDA781BE033312A356A /* Pods-Example iOS.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "Example iOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -504,6 +513,7 @@
PRODUCT_BUNDLE_IDENTIFIER = de.mathiaskoehnke.Example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Example-Bridging-Header.h";
SWIFT_VERSION = 3.0;
};
name = Release;
};
@ -511,6 +521,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 6611650B8D155042CC566BB5 /* Pods-Example OSX.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
@ -520,6 +531,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "de.mathiaskoehnke.Example-OSX";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SWIFT_VERSION = 3.0;
};
name = Debug;
};
@ -527,6 +539,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = E524A5A77547899C72AB259A /* Pods-Example OSX.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
@ -536,6 +549,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "de.mathiaskoehnke.Example-OSX";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SWIFT_VERSION = 3.0;
};
name = Release;
};

View File

@ -17,3 +17,10 @@ target 'Example OSX' do
import_pods
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end

View File

@ -1,6 +1,6 @@
PODS:
- hpple (0.2.0)
- WKZombie (0.9.4):
- WKZombie (0.9.5):
- hpple (= 0.2.0)
DEPENDENCIES:
@ -12,8 +12,8 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
hpple: 3b765f96fc2cd56ad1a49aef6f7be5cb2aa64b57
WKZombie: 18d87bc1929a53f0ec70d4d859f9e69871d03634
WKZombie: b6192e2e334ec68e3069ed5622d369f72ea43d09
PODFILE CHECKSUM: d45dbdf0b486677d4fa53af69a6fdd24430a4ac5
PODFILE CHECKSUM: d530690e373e4c270897769971faa34622df5672
COCOAPODS: 1.0.0
COCOAPODS: 1.0.1

View File

@ -607,6 +607,7 @@
PRODUCT_NAME = WKZombie;
SDKROOT = macosx;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
};
name = Debug;
};
@ -633,6 +634,7 @@
PRODUCT_NAME = WKZombie;
SDKROOT = macosx;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
};
name = Release;
};