From a5e9305054b8812e2f9c36b7aeec6f443b166b74 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:01:07 +0100 Subject: [PATCH 01/20] Add Sugar as a dependency --- Compass.podspec | 1 + 1 file changed, 1 insertion(+) diff --git a/Compass.podspec b/Compass.podspec index 32bdb0e..c4fd5a9 100644 --- a/Compass.podspec +++ b/Compass.podspec @@ -10,4 +10,5 @@ Pod::Spec.new do |s| s.platform = :ios, '8.0' s.requires_arc = true s.source_files = 'Source/**/*' + s.dependency 'Sugar' end From 4ad2374a4692f1060045c484f9b0d0cbb1536bf2 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:01:17 +0100 Subject: [PATCH 02/20] Add Podfile --- Podfile | 8 ++++++++ Podfile.lock | 10 ++++++++++ 2 files changed, 18 insertions(+) create mode 100644 Podfile create mode 100644 Podfile.lock diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..25ab087 --- /dev/null +++ b/Podfile @@ -0,0 +1,8 @@ +source 'https://github.com/CocoaPods/Specs.git' + +platform :ios, '8.0' + +use_frameworks! +inhibit_all_warnings! + +pod 'Sugar' diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..8e30f69 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,10 @@ +PODS: + - Sugar (1.0.0) + +DEPENDENCIES: + - Sugar + +SPEC CHECKSUMS: + Sugar: 7191a36d6b567d65ba4ac7c67b1684ca0554fec5 + +COCOAPODS: 0.39.0 From 0ed291dcbf5dcbac4c996e8fdc948b7cb3dbac0e Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:01:23 +0100 Subject: [PATCH 03/20] Pod install --- Compass.xcodeproj/project.pbxproj | 61 ++++++++++++++++++++ Compass.xcworkspace/contents.xcworkspacedata | 10 ++++ 2 files changed, 71 insertions(+) create mode 100644 Compass.xcworkspace/contents.xcworkspacedata diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index fe3219b..6e5052f 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 31FFBFCB4C8F85ACBCB3142E /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */; }; D5DC59641C200D55003BD79B /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5DC59591C200D55003BD79B /* Compass.framework */; }; D5DC597B1C200DF1003BD79B /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5DC59751C200DEC003BD79B /* TestCompass.swift */; }; D5DC597E1C200EC7003BD79B /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5DC597D1C200EC7003BD79B /* Compass.swift */; }; @@ -23,12 +24,15 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; D5DC59591C200D55003BD79B /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D5DC59631C200D55003BD79B /* Compass-iOS-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-iOS-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; D5DC59741C200DEC003BD79B /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D5DC59751C200DEC003BD79B /* TestCompass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCompass.swift; sourceTree = ""; }; D5DC59771C200DEC003BD79B /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D5DC597D1C200EC7003BD79B /* Compass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Compass.swift; sourceTree = ""; }; + FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -36,6 +40,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 31FFBFCB4C8F85ACBCB3142E /* Pods.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -50,6 +55,23 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */ = { + isa = PBXGroup; + children = ( + FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 988AA7B34A57BD52EA36BBA4 /* Pods */ = { + isa = PBXGroup; + children = ( + 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */, + 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; D5DC594F1C200D55003BD79B = { isa = PBXGroup; children = ( @@ -57,6 +79,8 @@ D5DC59731C200DEC003BD79B /* Tests */, D5DC59761C200DEC003BD79B /* SupportFiles */, D5DC595A1C200D55003BD79B /* Products */, + 988AA7B34A57BD52EA36BBA4 /* Pods */, + 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */, ); sourceTree = ""; }; @@ -111,10 +135,12 @@ isa = PBXNativeTarget; buildConfigurationList = D5DC596D1C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS" */; buildPhases = ( + 01878B3846A641D627BC0083 /* Check Pods Manifest.lock */, D5DC59541C200D55003BD79B /* Sources */, D5DC59551C200D55003BD79B /* Frameworks */, D5DC59561C200D55003BD79B /* Headers */, D5DC59571C200D55003BD79B /* Resources */, + ED886227CAC3FF769E032AED /* Copy Pods Resources */, ); buildRules = ( ); @@ -196,6 +222,39 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 01878B3846A641D627BC0083 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + 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; + }; + ED886227CAC3FF769E032AED /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ D5DC59541C200D55003BD79B /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -315,6 +374,7 @@ }; D5DC596E1C200D55003BD79B /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */; buildSettings = { DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -332,6 +392,7 @@ }; D5DC596F1C200D55003BD79B /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */; buildSettings = { DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; diff --git a/Compass.xcworkspace/contents.xcworkspacedata b/Compass.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..097b04b --- /dev/null +++ b/Compass.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + From 0619ad738c84975350cd9706a5d555a887382428 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:01:28 +0100 Subject: [PATCH 04/20] Import Sugar --- Source/Compass.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Compass.swift b/Source/Compass.swift index c816e31..f03082c 100644 --- a/Source/Compass.swift +++ b/Source/Compass.swift @@ -1,4 +1,5 @@ import UIKit +import Sugar public struct Compass { From cc277b10746c72ad61f294a84dd7d625aa7c14c2 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:01:58 +0100 Subject: [PATCH 05/20] Apply Sugar to Compass implementation --- Source/Compass.swift | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/Source/Compass.swift b/Source/Compass.swift index f03082c..b1f6a44 100644 --- a/Source/Compass.swift +++ b/Source/Compass.swift @@ -22,15 +22,11 @@ public struct Compass { else { return parseAsURL(url, completion: completion) } for route in routes.sort({ $0 < $1 }) { - guard let prefix = (route.characters - .split { $0 == "{" } - .map(String.init)) - .first else { continue } + guard let prefix = route.split("{").first else { continue } if query.hasPrefix(prefix) || prefix.hasPrefix(query) { - let queryString = query.stringByReplacingOccurrencesOfString(prefix, withString: "") - let queryArguments = splitString(queryString, delimiter: ":") - let routeArguments = splitString(route, delimiter: ":").filter { $0.containsString("{") } + let queryArguments = query.replace(prefix, with: "").split(":") + let routeArguments = route.split(":").filter { $0.containsString("{") } var arguments = [String : String]() @@ -56,8 +52,8 @@ public struct Compass { var arguments = [String : String]() [url.fragment, url.query].forEach { - splitString($0, delimiter: "&").forEach { - let pair = splitString($0, delimiter: "=") + $0?.split("&").forEach { + let pair = $0.split("=") arguments[pair[0]] = pair[1] } } @@ -73,15 +69,5 @@ public struct Compass { UIApplication.sharedApplication().openURL(url) } - - // MARK: - Private Helpers - - private static func splitString(string: String?, delimiter: Character) -> [String] { - guard let string = string else { return [] } - - return string.characters - .split { $0 == delimiter } - .map(String.init) - } } From 3d9bb3db62025a43fdd84112bb2414e6f893645e Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:02:06 +0100 Subject: [PATCH 06/20] Refactor navigate method --- Source/Compass.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/Compass.swift b/Source/Compass.swift index b1f6a44..cb78a6b 100644 --- a/Source/Compass.swift +++ b/Source/Compass.swift @@ -64,8 +64,7 @@ public struct Compass { } public static func navigate(urn: String, scheme: String = Compass.scheme) { - let stringURL = "\(scheme)\(urn)" - guard let url = NSURL(string: stringURL) else { return } + guard let url = NSURL(string: "\(scheme)\(urn)") else { return } UIApplication.sharedApplication().openURL(url) } From 2f131714358028816cbb1532101e1aaaddddf2b5 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:03:43 +0100 Subject: [PATCH 07/20] Update .travis.yml --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e388ff5..fc37263 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,6 @@ before_install: - brew update - if brew outdated | grep -qx xctool; then brew upgrade xctool; fi -script: -- xctool clean build -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator -- xctool test -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator \ No newline at end of file +script: +- xctool clean build -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator +- xctool test -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator \ No newline at end of file From 7bc4462f5ec69bb7e6cd689bc86e73a64ea60691 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:04:21 +0100 Subject: [PATCH 08/20] Import Foundation instead of UIKit --- Source/Compass.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Compass.swift b/Source/Compass.swift index cb78a6b..9cd40ac 100644 --- a/Source/Compass.swift +++ b/Source/Compass.swift @@ -1,4 +1,4 @@ -import UIKit +import Foundation import Sugar public struct Compass { From 976c0b1b0fe6496e1c6bc6ffd94cff08301752de Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 15:59:34 +0100 Subject: [PATCH 09/20] Refactor to support both iOS and OS X --- Cartfile | 1 + Compass.podspec | 9 +- Compass.xcodeproj/project.pbxproj | 446 ++++++++++++++---- .../xcschemes/Compass-Mac.xcscheme | 113 +++++ .../xcschemes/Compass-iOS.xcscheme | 8 +- Podfile | 14 +- Source/Mac/Compass+Navigate.swift | 10 + Source/{ => Shared}/Compass.swift | 6 - Source/iOS/Compass+Navigate.swift | 10 + SupportFiles/Mac/Info.plist | 28 ++ SupportFiles/{ => iOS}/Info.plist | 0 Tests/{ => Shared}/TestCompass.swift | 2 +- 12 files changed, 552 insertions(+), 95 deletions(-) create mode 100644 Cartfile create mode 100644 Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme create mode 100644 Source/Mac/Compass+Navigate.swift rename Source/{ => Shared}/Compass.swift (90%) create mode 100644 Source/iOS/Compass+Navigate.swift create mode 100644 SupportFiles/Mac/Info.plist rename SupportFiles/{ => iOS}/Info.plist (100%) rename Tests/{ => Shared}/TestCompass.swift (99%) diff --git a/Cartfile b/Cartfile new file mode 100644 index 0000000..324ff66 --- /dev/null +++ b/Cartfile @@ -0,0 +1 @@ +github "hyperoslo/Sugar" diff --git a/Compass.podspec b/Compass.podspec index c4fd5a9..95cb543 100644 --- a/Compass.podspec +++ b/Compass.podspec @@ -7,8 +7,13 @@ Pod::Spec.new do |s| s.author = { "Hyper Interaktiv AS" => "ios@hyper.no" } s.source = { :git => "https://github.com/hyperoslo/Compass.git", :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/hyperoslo' - s.platform = :ios, '8.0' + + s.ios.deployment_target = '8.0' + s.osx.deployment_target = '10.9' + s.requires_arc = true - s.source_files = 'Source/**/*' + + s.ios.source_files = 'Source/**/*' + s.osx.source_files = 'Source/**/*' s.dependency 'Sugar' end diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index 6e5052f..3fcb2ac 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -7,10 +7,16 @@ objects = { /* Begin PBXBuildFile section */ + 29D63F38FD6F26B4B277A816 /* Pods_Compass_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */; }; 31FFBFCB4C8F85ACBCB3142E /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */; }; + 671430A6B3BBF31B0FD980F1 /* Pods_Compass_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */; }; + 76825CF143AC38B331378E2E /* Pods_Compass_Mac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */; }; + BDB693111C3EA90C00A5FB86 /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */; }; + BDB693271C3EADE600A5FB86 /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB693261C3EADE600A5FB86 /* Compass.swift */; }; + BDB693281C3EADE600A5FB86 /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB693261C3EADE600A5FB86 /* Compass.swift */; }; + BDB6932A1C3EADF500A5FB86 /* Compass+Navigate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB693291C3EADF500A5FB86 /* Compass+Navigate.swift */; }; + BDB6932C1C3EAE0200A5FB86 /* Compass+Navigate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB6932B1C3EAE0200A5FB86 /* Compass+Navigate.swift */; }; D5DC59641C200D55003BD79B /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5DC59591C200D55003BD79B /* Compass.framework */; }; - D5DC597B1C200DF1003BD79B /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5DC59751C200DEC003BD79B /* TestCompass.swift */; }; - D5DC597E1C200EC7003BD79B /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5DC597D1C200EC7003BD79B /* Compass.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -25,22 +31,45 @@ /* Begin PBXFileReference section */ 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + 21B22E597715854B97A5B039 /* Pods-Compass-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests.debug.xcconfig"; sourceTree = ""; }; + 2DBC0C7B6EF14D4152FE6F13 /* Pods-Compass-Mac.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Mac.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Mac/Pods-Compass-Mac.debug.xcconfig"; sourceTree = ""; }; + 4C9FF2B0391971CD185DFEF3 /* Pods-Compass-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-iOS/Pods-Compass-iOS.release.xcconfig"; sourceTree = ""; }; + 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compass_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74B7F6AF767A40EC27D752B3 /* Pods-Compass-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-iOS/Pods-Compass-iOS.debug.xcconfig"; sourceTree = ""; }; + 7BC739CCBC906A32EEBEE563 /* Pods-Compass-Mac.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Mac.release.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Mac/Pods-Compass-Mac.release.xcconfig"; sourceTree = ""; }; + 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compass_Mac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; + BDB6930D1C3EA90C00A5FB86 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCompass.swift; sourceTree = ""; }; + BDB693171C3EA91B00A5FB86 /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BDB693201C3EAA7400A5FB86 /* Pods.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Pods.framework; path = "Pods/../build/Debug-iphoneos/Pods.framework"; sourceTree = ""; }; + BDB693261C3EADE600A5FB86 /* Compass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Compass.swift; sourceTree = ""; }; + BDB693291C3EADF500A5FB86 /* Compass+Navigate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Compass+Navigate.swift"; sourceTree = ""; }; + BDB6932B1C3EAE0200A5FB86 /* Compass+Navigate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Compass+Navigate.swift"; sourceTree = ""; }; + BDB6932F1C3EAF1000A5FB86 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BDB693311C3EAF1000A5FB86 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compass_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C9CC1F0FF7E9542DBEE27A66 /* Pods-Compass-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests.release.xcconfig"; sourceTree = ""; }; D5DC59591C200D55003BD79B /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D5DC59631C200D55003BD79B /* Compass-iOS-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-iOS-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - D5DC59741C200DEC003BD79B /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D5DC59751C200DEC003BD79B /* TestCompass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCompass.swift; sourceTree = ""; }; - D5DC59771C200DEC003BD79B /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D5DC597D1C200EC7003BD79B /* Compass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Compass.swift; sourceTree = ""; }; + D5DC59631C200D55003BD79B /* Compass-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDB693131C3EA91B00A5FB86 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 76825CF143AC38B331378E2E /* Pods_Compass_Mac.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; D5DC59551C200D55003BD79B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 31FFBFCB4C8F85ACBCB3142E /* Pods.framework in Frameworks */, + 29D63F38FD6F26B4B277A816 /* Pods_Compass_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -49,6 +78,7 @@ buildActionMask = 2147483647; files = ( D5DC59641C200D55003BD79B /* Compass.framework in Frameworks */, + 671430A6B3BBF31B0FD980F1 /* Pods_Compass_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -58,7 +88,11 @@ 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */ = { isa = PBXGroup; children = ( + BDB693201C3EAA7400A5FB86 /* Pods.framework */, FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */, + 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */, + 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */, + C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */, ); name = Frameworks; sourceTree = ""; @@ -68,59 +102,124 @@ children = ( 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */, 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */, + 2DBC0C7B6EF14D4152FE6F13 /* Pods-Compass-Mac.debug.xcconfig */, + 7BC739CCBC906A32EEBEE563 /* Pods-Compass-Mac.release.xcconfig */, + 4C9FF2B0391971CD185DFEF3 /* Pods-Compass-iOS.release.xcconfig */, + 74B7F6AF767A40EC27D752B3 /* Pods-Compass-iOS.debug.xcconfig */, + C9CC1F0FF7E9542DBEE27A66 /* Pods-Compass-Tests.release.xcconfig */, + 21B22E597715854B97A5B039 /* Pods-Compass-Tests.debug.xcconfig */, ); name = Pods; sourceTree = ""; }; - D5DC594F1C200D55003BD79B = { + BDB6930C1C3EA90C00A5FB86 /* Tests */ = { isa = PBXGroup; children = ( - D5DC597C1C200EC7003BD79B /* Source */, - D5DC59731C200DEC003BD79B /* Tests */, - D5DC59761C200DEC003BD79B /* SupportFiles */, - D5DC595A1C200D55003BD79B /* Products */, - 988AA7B34A57BD52EA36BBA4 /* Pods */, - 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */, + BDB6930D1C3EA90C00A5FB86 /* Info.plist */, + BDB6930E1C3EA90C00A5FB86 /* Shared */, ); + path = Tests; sourceTree = ""; }; - D5DC595A1C200D55003BD79B /* Products */ = { + BDB6930E1C3EA90C00A5FB86 /* Shared */ = { isa = PBXGroup; children = ( - D5DC59591C200D55003BD79B /* Compass.framework */, - D5DC59631C200D55003BD79B /* Compass-iOS-Tests.xctest */, + BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */, ); - name = Products; + path = Shared; sourceTree = ""; }; - D5DC59731C200DEC003BD79B /* Tests */ = { + BDB693221C3EADE600A5FB86 /* Source */ = { isa = PBXGroup; children = ( - D5DC59741C200DEC003BD79B /* Info.plist */, - D5DC59751C200DEC003BD79B /* TestCompass.swift */, + BDB693231C3EADE600A5FB86 /* iOS */, + BDB693241C3EADE600A5FB86 /* Mac */, + BDB693251C3EADE600A5FB86 /* Shared */, ); - path = Tests; + path = Source; + sourceTree = ""; + }; + BDB693231C3EADE600A5FB86 /* iOS */ = { + isa = PBXGroup; + children = ( + BDB6932B1C3EAE0200A5FB86 /* Compass+Navigate.swift */, + ); + path = iOS; + sourceTree = ""; + }; + BDB693241C3EADE600A5FB86 /* Mac */ = { + isa = PBXGroup; + children = ( + BDB693291C3EADF500A5FB86 /* Compass+Navigate.swift */, + ); + path = Mac; + sourceTree = ""; + }; + BDB693251C3EADE600A5FB86 /* Shared */ = { + isa = PBXGroup; + children = ( + BDB693261C3EADE600A5FB86 /* Compass.swift */, + ); + path = Shared; sourceTree = ""; }; - D5DC59761C200DEC003BD79B /* SupportFiles */ = { + BDB6932D1C3EAF1000A5FB86 /* SupportFiles */ = { isa = PBXGroup; children = ( - D5DC59771C200DEC003BD79B /* Info.plist */, + BDB6932E1C3EAF1000A5FB86 /* iOS */, + BDB693301C3EAF1000A5FB86 /* Mac */, ); path = SupportFiles; sourceTree = ""; }; - D5DC597C1C200EC7003BD79B /* Source */ = { + BDB6932E1C3EAF1000A5FB86 /* iOS */ = { isa = PBXGroup; children = ( - D5DC597D1C200EC7003BD79B /* Compass.swift */, + BDB6932F1C3EAF1000A5FB86 /* Info.plist */, + ); + path = iOS; + sourceTree = ""; + }; + BDB693301C3EAF1000A5FB86 /* Mac */ = { + isa = PBXGroup; + children = ( + BDB693311C3EAF1000A5FB86 /* Info.plist */, + ); + path = Mac; + sourceTree = ""; + }; + D5DC594F1C200D55003BD79B = { + isa = PBXGroup; + children = ( + 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */, + 988AA7B34A57BD52EA36BBA4 /* Pods */, + D5DC595A1C200D55003BD79B /* Products */, + BDB693221C3EADE600A5FB86 /* Source */, + BDB6932D1C3EAF1000A5FB86 /* SupportFiles */, + BDB6930C1C3EA90C00A5FB86 /* Tests */, ); - path = Source; + sourceTree = ""; + }; + D5DC595A1C200D55003BD79B /* Products */ = { + isa = PBXGroup; + children = ( + D5DC59591C200D55003BD79B /* Compass.framework */, + D5DC59631C200D55003BD79B /* Compass-Tests.xctest */, + BDB693171C3EA91B00A5FB86 /* Compass.framework */, + ); + name = Products; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + BDB693141C3EA91B00A5FB86 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; D5DC59561C200D55003BD79B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -131,6 +230,26 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDB693161C3EA91B00A5FB86 /* Compass-Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDB6931C1C3EA91B00A5FB86 /* Build configuration list for PBXNativeTarget "Compass-Mac" */; + buildPhases = ( + BBF4DF3C578F628A91CB3DC4 /* Check Pods Manifest.lock */, + BDB693121C3EA91B00A5FB86 /* Sources */, + BDB693131C3EA91B00A5FB86 /* Frameworks */, + BDB693141C3EA91B00A5FB86 /* Headers */, + BDB693151C3EA91B00A5FB86 /* Resources */, + 477BAFA7589C31DD286155AC /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Compass-Mac"; + productName = "Compass-Mac"; + productReference = BDB693171C3EA91B00A5FB86 /* Compass.framework */; + productType = "com.apple.product-type.framework"; + }; D5DC59581C200D55003BD79B /* Compass-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = D5DC596D1C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS" */; @@ -151,22 +270,25 @@ productReference = D5DC59591C200D55003BD79B /* Compass.framework */; productType = "com.apple.product-type.framework"; }; - D5DC59621C200D55003BD79B /* Compass-iOS-Tests */ = { + D5DC59621C200D55003BD79B /* Compass-Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = D5DC59701C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS-Tests" */; + buildConfigurationList = D5DC59701C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-Tests" */; buildPhases = ( + 852650A9DFBA567556C59403 /* Check Pods Manifest.lock */, D5DC595F1C200D55003BD79B /* Sources */, D5DC59601C200D55003BD79B /* Frameworks */, D5DC59611C200D55003BD79B /* Resources */, + 946405993B40FDFBE3B1DB6C /* Embed Pods Frameworks */, + A8D99C56FBCF3A2BCD2EF3C5 /* Copy Pods Resources */, ); buildRules = ( ); dependencies = ( D5DC59661C200D55003BD79B /* PBXTargetDependency */, ); - name = "Compass-iOS-Tests"; + name = "Compass-Tests"; productName = CompassTests; - productReference = D5DC59631C200D55003BD79B /* Compass-iOS-Tests.xctest */; + productReference = D5DC59631C200D55003BD79B /* Compass-Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ @@ -179,6 +301,9 @@ LastUpgradeCheck = 0720; ORGANIZATIONNAME = "Hyper Interaktiv AS"; TargetAttributes = { + BDB693161C3EA91B00A5FB86 = { + CreatedOnToolsVersion = 7.2; + }; D5DC59581C200D55003BD79B = { CreatedOnToolsVersion = 7.2; }; @@ -200,12 +325,20 @@ projectRoot = ""; targets = ( D5DC59581C200D55003BD79B /* Compass-iOS */, - D5DC59621C200D55003BD79B /* Compass-iOS-Tests */, + D5DC59621C200D55003BD79B /* Compass-Tests */, + BDB693161C3EA91B00A5FB86 /* Compass-Mac */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDB693151C3EA91B00A5FB86 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; D5DC59571C200D55003BD79B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -238,6 +371,81 @@ 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; }; + 477BAFA7589C31DD286155AC /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-Mac/Pods-Compass-Mac-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 852650A9DFBA567556C59403 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + 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; + }; + 946405993B40FDFBE3B1DB6C /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A8D99C56FBCF3A2BCD2EF3C5 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + BBF4DF3C578F628A91CB3DC4 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + 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; + }; ED886227CAC3FF769E032AED /* Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -250,17 +458,27 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-iOS/Pods-Compass-iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDB693121C3EA91B00A5FB86 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDB693281C3EADE600A5FB86 /* Compass.swift in Sources */, + BDB6932A1C3EADF500A5FB86 /* Compass+Navigate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; D5DC59541C200D55003BD79B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D5DC597E1C200EC7003BD79B /* Compass.swift in Sources */, + BDB693271C3EADE600A5FB86 /* Compass.swift in Sources */, + BDB6932C1C3EAE0200A5FB86 /* Compass+Navigate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -268,7 +486,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D5DC597B1C200DF1003BD79B /* TestCompass.swift in Sources */, + BDB693111C3EA90C00A5FB86 /* TestCompass.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -283,7 +501,34 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - D5DC596B1C200D55003BD79B /* Debug */ = { + BDB6931E1C3EA91B00A5FB86 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7BC739CCBC906A32EEBEE563 /* Pods-Compass-Mac.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/build/Debug-iphoneos", + ); + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Mac/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-Mac"; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + PRODUCT_NAME = Compass; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Release; + }; + BDC178FB1C3EB36D0074CA67 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -303,17 +548,12 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -321,16 +561,77 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.2; - MTL_ENABLE_DEBUG_INFO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MTL_ENABLE_DEBUG_INFO = NO; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; + BDC178FC1C3EB36D0074CA67 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 74B7F6AF767A40EC27D752B3 /* Pods-Compass-iOS.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/iOS/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = no.hyper.Compass; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + PRODUCT_NAME = Compass; + SKIP_INSTALL = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_OBJC_INTERFACE_HEADER_NAME = ""; + }; + name = Debug; + }; + BDC178FD1C3EB36D0074CA67 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 21B22E597715854B97A5B039 /* Pods-Compass-Tests.debug.xcconfig */; + buildSettings = { + INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + BDC178FE1C3EB36D0074CA67 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2DBC0C7B6EF14D4152FE6F13 /* Pods-Compass-Mac.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/build/Debug-iphoneos", + ); + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Mac/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-Mac"; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + PRODUCT_NAME = Compass; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; D5DC596C1C200D55003BD79B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -363,6 +664,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.2; + MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -372,54 +674,31 @@ }; name = Release; }; - D5DC596E1C200D55003BD79B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */; - buildSettings = { - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.Compass; - PRODUCT_NAME = Compass; - SKIP_INSTALL = YES; - }; - name = Debug; - }; D5DC596F1C200D55003BD79B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */; + baseConfigurationReference = 4C9FF2B0391971CD185DFEF3 /* Pods-Compass-iOS.release.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/iOS/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = no.hyper.Compass; + PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; PRODUCT_NAME = Compass; SKIP_INSTALL = YES; + SWIFT_INSTALL_OBJC_HEADER = NO; + SWIFT_OBJC_INTERFACE_HEADER_NAME = ""; }; name = Release; }; - D5DC59711C200D55003BD79B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; D5DC59721C200D55003BD79B /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = C9CC1F0FF7E9542DBEE27A66 /* Pods-Compass-Tests.release.xcconfig */; buildSettings = { INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -431,11 +710,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDB6931C1C3EA91B00A5FB86 /* Build configuration list for PBXNativeTarget "Compass-Mac" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDB6931E1C3EA91B00A5FB86 /* Release */, + BDC178FE1C3EB36D0074CA67 /* Debug */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; D5DC59531C200D55003BD79B /* Build configuration list for PBXProject "Compass" */ = { isa = XCConfigurationList; buildConfigurations = ( - D5DC596B1C200D55003BD79B /* Debug */, D5DC596C1C200D55003BD79B /* Release */, + BDC178FB1C3EB36D0074CA67 /* Debug */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -443,17 +731,17 @@ D5DC596D1C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - D5DC596E1C200D55003BD79B /* Debug */, D5DC596F1C200D55003BD79B /* Release */, + BDC178FC1C3EB36D0074CA67 /* Debug */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D5DC59701C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS-Tests" */ = { + D5DC59701C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - D5DC59711C200D55003BD79B /* Debug */, D5DC59721C200D55003BD79B /* Release */, + BDC178FD1C3EB36D0074CA67 /* Debug */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme new file mode 100644 index 0000000..f9db47e --- /dev/null +++ b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme index bfd512f..02351bf 100644 --- a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme +++ b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme @@ -29,8 +29,8 @@ @@ -47,8 +47,8 @@ diff --git a/Podfile b/Podfile index 25ab087..7c9703e 100644 --- a/Podfile +++ b/Podfile @@ -1,8 +1,16 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' - use_frameworks! inhibit_all_warnings! -pod 'Sugar' +target "Compass-Mac" do + pod 'Sugar' +end + +target "Compass-Tests" do + pod 'Sugar' +end + +target "Compass-iOS" do + pod 'Sugar' +end diff --git a/Source/Mac/Compass+Navigate.swift b/Source/Mac/Compass+Navigate.swift new file mode 100644 index 0000000..87b21fa --- /dev/null +++ b/Source/Mac/Compass+Navigate.swift @@ -0,0 +1,10 @@ +import Cocoa + +extension Compass { + + public static func navigate(urn: String, scheme: String = Compass.scheme) { + guard let url = NSURL(string: "\(scheme)\(urn)") else { return } + + NSWorkspace.sharedWorkspace().openURL(url) + } +} diff --git a/Source/Compass.swift b/Source/Shared/Compass.swift similarity index 90% rename from Source/Compass.swift rename to Source/Shared/Compass.swift index 9cd40ac..ee73a9b 100644 --- a/Source/Compass.swift +++ b/Source/Shared/Compass.swift @@ -62,11 +62,5 @@ public struct Compass { return true } - - public static func navigate(urn: String, scheme: String = Compass.scheme) { - guard let url = NSURL(string: "\(scheme)\(urn)") else { return } - - UIApplication.sharedApplication().openURL(url) - } } diff --git a/Source/iOS/Compass+Navigate.swift b/Source/iOS/Compass+Navigate.swift new file mode 100644 index 0000000..11a829e --- /dev/null +++ b/Source/iOS/Compass+Navigate.swift @@ -0,0 +1,10 @@ +import UIKit + +extension Compass { + + public static func navigate(urn: String, scheme: String = Compass.scheme) { + guard let url = NSURL(string: "\(scheme)\(urn)") else { return } + + UIApplication.sharedApplication().openURL(url) + } +} diff --git a/SupportFiles/Mac/Info.plist b/SupportFiles/Mac/Info.plist new file mode 100644 index 0000000..67965e8 --- /dev/null +++ b/SupportFiles/Mac/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + Copyright © 2016 Hyper Interaktiv AS. All rights reserved. + NSPrincipalClass + + + diff --git a/SupportFiles/Info.plist b/SupportFiles/iOS/Info.plist similarity index 100% rename from SupportFiles/Info.plist rename to SupportFiles/iOS/Info.plist diff --git a/Tests/TestCompass.swift b/Tests/Shared/TestCompass.swift similarity index 99% rename from Tests/TestCompass.swift rename to Tests/Shared/TestCompass.swift index 64ae626..1d8ee2d 100644 --- a/Tests/TestCompass.swift +++ b/Tests/Shared/TestCompass.swift @@ -1,4 +1,4 @@ -import UIKit +import Foundation import XCTest import Compass From d6ac985ae7edf8f077c7d2909325524b14b866e1 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 19:35:40 +0100 Subject: [PATCH 10/20] Remove Pods.framework from project --- Compass.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index 3fcb2ac..34a8c4d 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 29D63F38FD6F26B4B277A816 /* Pods_Compass_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */; }; - 31FFBFCB4C8F85ACBCB3142E /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */; }; 671430A6B3BBF31B0FD980F1 /* Pods_Compass_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */; }; 76825CF143AC38B331378E2E /* Pods_Compass_Mac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */; }; BDB693111C3EA90C00A5FB86 /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */; }; @@ -68,7 +67,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 31FFBFCB4C8F85ACBCB3142E /* Pods.framework in Frameworks */, 29D63F38FD6F26B4B277A816 /* Pods_Compass_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; From 2550b3e85b0feebc8be6b2d72dc67a5a5526d666 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 19:56:05 +0100 Subject: [PATCH 11/20] Pod update --- Podfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 8e30f69..a6a5c2e 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,10 +1,10 @@ PODS: - - Sugar (1.0.0) + - Sugar (1.0.1) DEPENDENCIES: - Sugar SPEC CHECKSUMS: - Sugar: 7191a36d6b567d65ba4ac7c67b1684ca0554fec5 + Sugar: 4fc1bb2da50a460b8cbcd5efe099a82219469766 COCOAPODS: 0.39.0 From d134294899269e16675eccf1446b192a661fab7c Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Thu, 7 Jan 2016 23:49:48 +0100 Subject: [PATCH 12/20] Update .travis.yml --- .travis.yml | 4 +++- Podfile | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fc37263..9d0246e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,4 +8,6 @@ before_install: script: - xctool clean build -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator -- xctool test -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator \ No newline at end of file +- xctool test -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator +- xctool clean build -workspace Compass.xcworkspace -scheme Compass-Mac -sdk macosx +- xctool test -workspace Compass.xcworkspace -scheme Compass-Mac -sdk macosx diff --git a/Podfile b/Podfile index 7c9703e..a4d2d22 100644 --- a/Podfile +++ b/Podfile @@ -3,6 +3,9 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! inhibit_all_warnings! +platform :ios, '9.2' +platform :osx, '10.10' + target "Compass-Mac" do pod 'Sugar' end From 3c6a75e22a9026d7c8e6186260db1c6f20bd0a17 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:02:47 +0100 Subject: [PATCH 13/20] Refactor with carthage --- .gitignore | 6 + .travis.yml | 13 +- Cartfile.resolved | 1 + Compass.podspec | 18 +- Compass.xcodeproj/project.pbxproj | 736 +++++++++--------- .../xcschemes/Compass-Mac.xcscheme | 28 +- .../xcschemes/Compass-iOS.xcscheme | 28 +- Compass.xcworkspace/contents.xcworkspacedata | 10 - .../Mac/Info.plist => Compass/Info-Mac.plist | 0 .../iOS/Info.plist => Compass/Info-iOS.plist | 0 .../Info.plist => CompassTests/Info-Mac.plist | 0 CompassTests/Info-iOS.plist | 24 + .../Shared/TestCompass.swift | 0 .../CompassExample.xcodeproj/project.pbxproj | 360 --------- .../contents.xcworkspacedata | 7 - .../contents.xcworkspacedata | 10 - .../CompassExample/AppDelegate.swift | 48 -- .../AppIcon.appiconset/Contents.json | 38 - .../Base.lproj/LaunchScreen.storyboard | 27 - .../CompassExample/CompassExample/Info.plist | 51 -- .../CompassExample/LoginController.swift | 73 -- .../CompassExample/ViewController.swift | 102 --- Example/CompassExample/Podfile | 7 - Example/CompassExample/Podfile.lock | 14 - Images/logo_v1.png | Bin 162683 -> 0 bytes Images/setup-url-scheme.png | Bin 56582 -> 0 bytes Podfile | 19 - Podfile.lock | 10 - README.md | 118 +-- .../Mac/Compass+Navigate.swift | 0 {Source => Sources}/Shared/Compass.swift | 0 .../iOS/Compass+Navigate.swift | 0 32 files changed, 453 insertions(+), 1295 deletions(-) create mode 100644 Cartfile.resolved delete mode 100644 Compass.xcworkspace/contents.xcworkspacedata rename SupportFiles/Mac/Info.plist => Compass/Info-Mac.plist (100%) rename SupportFiles/iOS/Info.plist => Compass/Info-iOS.plist (100%) rename Tests/Info.plist => CompassTests/Info-Mac.plist (100%) create mode 100644 CompassTests/Info-iOS.plist rename {Tests => CompassTests}/Shared/TestCompass.swift (100%) delete mode 100644 Example/CompassExample/CompassExample.xcodeproj/project.pbxproj delete mode 100644 Example/CompassExample/CompassExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Example/CompassExample/CompassExample.xcworkspace/contents.xcworkspacedata delete mode 100644 Example/CompassExample/CompassExample/AppDelegate.swift delete mode 100644 Example/CompassExample/CompassExample/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 Example/CompassExample/CompassExample/Base.lproj/LaunchScreen.storyboard delete mode 100644 Example/CompassExample/CompassExample/Info.plist delete mode 100644 Example/CompassExample/CompassExample/LoginController.swift delete mode 100644 Example/CompassExample/CompassExample/ViewController.swift delete mode 100644 Example/CompassExample/Podfile delete mode 100644 Example/CompassExample/Podfile.lock delete mode 100644 Images/logo_v1.png delete mode 100644 Images/setup-url-scheme.png delete mode 100644 Podfile delete mode 100644 Podfile.lock rename {Source => Sources}/Mac/Compass+Navigate.swift (100%) rename {Source => Sources}/Shared/Compass.swift (100%) rename {Source => Sources}/iOS/Compass+Navigate.swift (100%) diff --git a/.gitignore b/.gitignore index 76fb73d..dd09206 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,9 @@ DerivedData # CocoaPods Pods + +# Carthage +Carthage + +# SPM +.build/ diff --git a/.travis.yml b/.travis.yml index 9d0246e..6dc1546 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,14 @@ osx_image: xcode7.2 language: objective-c -cache: cocoapods -before_install: +before_install: - brew update +- brew install carthage - if brew outdated | grep -qx xctool; then brew upgrade xctool; fi +- carthage update --platform iOS,Mac script: -- xctool clean build -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator -- xctool test -workspace Compass.xcworkspace -scheme Compass-iOS -sdk iphonesimulator -- xctool clean build -workspace Compass.xcworkspace -scheme Compass-Mac -sdk macosx -- xctool test -workspace Compass.xcworkspace -scheme Compass-Mac -sdk macosx +- xctool clean build -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator +- xctool test -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator +- xctool clean build -project Compass.xcodeproj -scheme Compass-Mac -sdk macosx +- xctool test -project Compass.xcodeproj -scheme Compass-Mac -sdk macosx diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100644 index 0000000..a53b6a1 --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1 @@ +github "hyperoslo/Sugar" "1.0.2" diff --git a/Compass.podspec b/Compass.podspec index 95cb543..d5c2ece 100644 --- a/Compass.podspec +++ b/Compass.podspec @@ -1,19 +1,25 @@ Pod::Spec.new do |s| s.name = "Compass" - s.summary = "Compass helps you setup a central navigation system for your iOS application." - s.version = "1.2.4" + s.summary = "A short description of Compass." + s.version = "0.1.0" s.homepage = "https://github.com/hyperoslo/Compass" s.license = 'MIT' s.author = { "Hyper Interaktiv AS" => "ios@hyper.no" } - s.source = { :git => "https://github.com/hyperoslo/Compass.git", :tag => s.version.to_s } + s.source = { + :git => "https://github.com/hyperoslo/Compass.git", + :tag => s.version.to_s + } s.social_media_url = 'https://twitter.com/hyperoslo' s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' s.requires_arc = true + s.ios.source_files = 'Sources/{iOS,Shared}/**/*' + s.osx.source_files = 'Sources/{Mac,Shared}/**/*' - s.ios.source_files = 'Source/**/*' - s.osx.source_files = 'Source/**/*' - s.dependency 'Sugar' + # s.ios.frameworks = 'UIKit', 'Foundation' + # s.osx.frameworks = 'Cocoa', 'Foundation' + + # s.dependency 'Whisper', '~> 1.0' end diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index 34a8c4d..00ab644 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -7,218 +7,215 @@ objects = { /* Begin PBXBuildFile section */ - 29D63F38FD6F26B4B277A816 /* Pods_Compass_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */; }; - 671430A6B3BBF31B0FD980F1 /* Pods_Compass_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */; }; - 76825CF143AC38B331378E2E /* Pods_Compass_Mac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */; }; - BDB693111C3EA90C00A5FB86 /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */; }; - BDB693271C3EADE600A5FB86 /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB693261C3EADE600A5FB86 /* Compass.swift */; }; - BDB693281C3EADE600A5FB86 /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB693261C3EADE600A5FB86 /* Compass.swift */; }; - BDB6932A1C3EADF500A5FB86 /* Compass+Navigate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB693291C3EADF500A5FB86 /* Compass+Navigate.swift */; }; - BDB6932C1C3EAE0200A5FB86 /* Compass+Navigate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB6932B1C3EAE0200A5FB86 /* Compass+Navigate.swift */; }; - D5DC59641C200D55003BD79B /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5DC59591C200D55003BD79B /* Compass.framework */; }; + BDF7B4091C3FF40300576737 /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF7B4081C3FF40300576737 /* Compass.swift */; }; + BDF7B40A1C3FF40300576737 /* Compass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF7B4081C3FF40300576737 /* Compass.swift */; }; + BDF7B40C1C3FF40A00576737 /* Compass+Navigate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF7B40B1C3FF40A00576737 /* Compass+Navigate.swift */; }; + BDF7B40E1C3FF41500576737 /* Compass+Navigate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF7B40D1C3FF41500576737 /* Compass+Navigate.swift */; }; + BDF7B4101C3FF43F00576737 /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF7B40F1C3FF43F00576737 /* TestCompass.swift */; }; + BDF7B4111C3FF43F00576737 /* TestCompass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF7B40F1C3FF43F00576737 /* TestCompass.swift */; }; + BDF7B4151C3FF51100576737 /* Sugar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF7B4141C3FF51100576737 /* Sugar.framework */; }; + BDF7B4171C3FF51800576737 /* Sugar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF7B4161C3FF51800576737 /* Sugar.framework */; }; + D5B2E8AA1C3A780C00C0327D /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5B2E89F1C3A780C00C0327D /* Compass.framework */; }; + D5C6294A1C3A7FAA007F7B7C /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629401C3A7FAA007F7B7C /* Compass.framework */; }; + D5C629771C3A878E007F7B7C /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629751C3A878E007F7B7C /* Quick.framework */; }; + D5C629781C3A878E007F7B7C /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629761C3A878E007F7B7C /* Nimble.framework */; }; + D5C6297B1C3A879F007F7B7C /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629791C3A879F007F7B7C /* Quick.framework */; }; + D5C6297C1C3A879F007F7B7C /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C6297A1C3A879F007F7B7C /* Nimble.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - D5DC59651C200D55003BD79B /* PBXContainerItemProxy */ = { + D5B2E8AB1C3A780C00C0327D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D5DC59501C200D55003BD79B /* Project object */; + containerPortal = D5B2E8961C3A780C00C0327D /* Project object */; proxyType = 1; - remoteGlobalIDString = D5DC59581C200D55003BD79B; + remoteGlobalIDString = D5B2E89E1C3A780C00C0327D; remoteInfo = Compass; }; + D5C6294B1C3A7FAA007F7B7C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D5B2E8961C3A780C00C0327D /* Project object */; + proxyType = 1; + remoteGlobalIDString = D5C6293F1C3A7FAA007F7B7C; + remoteInfo = "Compass-Mac"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 21B22E597715854B97A5B039 /* Pods-Compass-Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests.debug.xcconfig"; sourceTree = ""; }; - 2DBC0C7B6EF14D4152FE6F13 /* Pods-Compass-Mac.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Mac.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Mac/Pods-Compass-Mac.debug.xcconfig"; sourceTree = ""; }; - 4C9FF2B0391971CD185DFEF3 /* Pods-Compass-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-iOS/Pods-Compass-iOS.release.xcconfig"; sourceTree = ""; }; - 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compass_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 74B7F6AF767A40EC27D752B3 /* Pods-Compass-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-iOS/Pods-Compass-iOS.debug.xcconfig"; sourceTree = ""; }; - 7BC739CCBC906A32EEBEE563 /* Pods-Compass-Mac.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Mac.release.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Mac/Pods-Compass-Mac.release.xcconfig"; sourceTree = ""; }; - 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compass_Mac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - BDB6930D1C3EA90C00A5FB86 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCompass.swift; sourceTree = ""; }; - BDB693171C3EA91B00A5FB86 /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BDB693201C3EAA7400A5FB86 /* Pods.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Pods.framework; path = "Pods/../build/Debug-iphoneos/Pods.framework"; sourceTree = ""; }; - BDB693261C3EADE600A5FB86 /* Compass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Compass.swift; sourceTree = ""; }; - BDB693291C3EADF500A5FB86 /* Compass+Navigate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Compass+Navigate.swift"; sourceTree = ""; }; - BDB6932B1C3EAE0200A5FB86 /* Compass+Navigate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Compass+Navigate.swift"; sourceTree = ""; }; - BDB6932F1C3EAF1000A5FB86 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BDB693311C3EAF1000A5FB86 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compass_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C9CC1F0FF7E9542DBEE27A66 /* Pods-Compass-Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compass-Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests.release.xcconfig"; sourceTree = ""; }; - D5DC59591C200D55003BD79B /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D5DC59631C200D55003BD79B /* Compass-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BDF7B4081C3FF40300576737 /* Compass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Compass.swift; sourceTree = ""; }; + BDF7B40B1C3FF40A00576737 /* Compass+Navigate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Compass+Navigate.swift"; sourceTree = ""; }; + BDF7B40D1C3FF41500576737 /* Compass+Navigate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Compass+Navigate.swift"; sourceTree = ""; }; + BDF7B40F1C3FF43F00576737 /* TestCompass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCompass.swift; sourceTree = ""; }; + BDF7B4141C3FF51100576737 /* Sugar.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sugar.framework; path = Carthage/Build/Mac/Sugar.framework; sourceTree = ""; }; + BDF7B4161C3FF51800576737 /* Sugar.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sugar.framework; path = Carthage/Build/iOS/Sugar.framework; sourceTree = ""; }; + D5B2E89F1C3A780C00C0327D /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D5B2E8A91C3A780C00C0327D /* Compass-iOS-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-iOS-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + D5C629401C3A7FAA007F7B7C /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D5C629491C3A7FAA007F7B7C /* Compass-Mac-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-Mac-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + D5C629751C3A878E007F7B7C /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/iOS/Quick.framework; sourceTree = ""; }; + D5C629761C3A878E007F7B7C /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = Carthage/Build/iOS/Nimble.framework; sourceTree = ""; }; + D5C629791C3A879F007F7B7C /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/Mac/Quick.framework; sourceTree = ""; }; + D5C6297A1C3A879F007F7B7C /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = Carthage/Build/Mac/Nimble.framework; sourceTree = ""; }; + D5C6298B1C3A8BBD007F7B7C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; + D5C6298C1C3A8BBD007F7B7C /* Info-Mac.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Mac.plist"; sourceTree = ""; }; + D5C629901C3A8BDA007F7B7C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; + D5C629911C3A8BDA007F7B7C /* Info-Mac.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Mac.plist"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - BDB693131C3EA91B00A5FB86 /* Frameworks */ = { + D5B2E89B1C3A780C00C0327D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF7B4171C3FF51800576737 /* Sugar.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D5B2E8A61C3A780C00C0327D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 76825CF143AC38B331378E2E /* Pods_Compass_Mac.framework in Frameworks */, + D5C629771C3A878E007F7B7C /* Quick.framework in Frameworks */, + D5C629781C3A878E007F7B7C /* Nimble.framework in Frameworks */, + D5B2E8AA1C3A780C00C0327D /* Compass.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC59551C200D55003BD79B /* Frameworks */ = { + D5C6293C1C3A7FAA007F7B7C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 29D63F38FD6F26B4B277A816 /* Pods_Compass_iOS.framework in Frameworks */, + BDF7B4151C3FF51100576737 /* Sugar.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC59601C200D55003BD79B /* Frameworks */ = { + D5C629461C3A7FAA007F7B7C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D5DC59641C200D55003BD79B /* Compass.framework in Frameworks */, - 671430A6B3BBF31B0FD980F1 /* Pods_Compass_Tests.framework in Frameworks */, + D5C6297B1C3A879F007F7B7C /* Quick.framework in Frameworks */, + D5C6297C1C3A879F007F7B7C /* Nimble.framework in Frameworks */, + D5C6294A1C3A7FAA007F7B7C /* Compass.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */ = { + D5B2E8951C3A780C00C0327D = { isa = PBXGroup; children = ( - BDB693201C3EAA7400A5FB86 /* Pods.framework */, - FC0D16AE828E5A8EFA3A24E5 /* Pods.framework */, - 8073E59E2BA0B1C083FC88AA /* Pods_Compass_Mac.framework */, - 674D4E862B7708F22872E7B7 /* Pods_Compass_iOS.framework */, - C314244CA9185D4AB1FCDB98 /* Pods_Compass_Tests.framework */, + BDF7B4161C3FF51800576737 /* Sugar.framework */, + BDF7B4141C3FF51100576737 /* Sugar.framework */, + D5C629791C3A879F007F7B7C /* Quick.framework */, + D5C6297A1C3A879F007F7B7C /* Nimble.framework */, + D5C629751C3A878E007F7B7C /* Quick.framework */, + D5C629761C3A878E007F7B7C /* Nimble.framework */, + D5C629691C3A809D007F7B7C /* Sources */, + D5C6295C1C3A800E007F7B7C /* Compass */, + D5C6298F1C3A8BDA007F7B7C /* CompassTests */, + D5B2E8A01C3A780C00C0327D /* Products */, ); - name = Frameworks; sourceTree = ""; }; - 988AA7B34A57BD52EA36BBA4 /* Pods */ = { + D5B2E8A01C3A780C00C0327D /* Products */ = { isa = PBXGroup; children = ( - 98885A93D2290DA2602FA099 /* Pods.debug.xcconfig */, - 070B550F0873C0255ECE4E60 /* Pods.release.xcconfig */, - 2DBC0C7B6EF14D4152FE6F13 /* Pods-Compass-Mac.debug.xcconfig */, - 7BC739CCBC906A32EEBEE563 /* Pods-Compass-Mac.release.xcconfig */, - 4C9FF2B0391971CD185DFEF3 /* Pods-Compass-iOS.release.xcconfig */, - 74B7F6AF767A40EC27D752B3 /* Pods-Compass-iOS.debug.xcconfig */, - C9CC1F0FF7E9542DBEE27A66 /* Pods-Compass-Tests.release.xcconfig */, - 21B22E597715854B97A5B039 /* Pods-Compass-Tests.debug.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - BDB6930C1C3EA90C00A5FB86 /* Tests */ = { - isa = PBXGroup; - children = ( - BDB6930D1C3EA90C00A5FB86 /* Info.plist */, - BDB6930E1C3EA90C00A5FB86 /* Shared */, + D5B2E89F1C3A780C00C0327D /* Compass.framework */, + D5B2E8A91C3A780C00C0327D /* Compass-iOS-Tests.xctest */, + D5C629401C3A7FAA007F7B7C /* Compass.framework */, + D5C629491C3A7FAA007F7B7C /* Compass-Mac-Tests.xctest */, ); - path = Tests; + name = Products; sourceTree = ""; }; - BDB6930E1C3EA90C00A5FB86 /* Shared */ = { + D5C6295C1C3A800E007F7B7C /* Compass */ = { isa = PBXGroup; children = ( - BDB6930F1C3EA90C00A5FB86 /* TestCompass.swift */, + D5C6298B1C3A8BBD007F7B7C /* Info-iOS.plist */, + D5C6298C1C3A8BBD007F7B7C /* Info-Mac.plist */, ); - path = Shared; + path = Compass; sourceTree = ""; }; - BDB693221C3EADE600A5FB86 /* Source */ = { + D5C629691C3A809D007F7B7C /* Sources */ = { isa = PBXGroup; children = ( - BDB693231C3EADE600A5FB86 /* iOS */, - BDB693241C3EADE600A5FB86 /* Mac */, - BDB693251C3EADE600A5FB86 /* Shared */, + D5C6296A1C3A809D007F7B7C /* iOS */, + D5C6296C1C3A809D007F7B7C /* Mac */, + D5C6296E1C3A809D007F7B7C /* Shared */, ); - path = Source; + path = Sources; sourceTree = ""; }; - BDB693231C3EADE600A5FB86 /* iOS */ = { + D5C6296A1C3A809D007F7B7C /* iOS */ = { isa = PBXGroup; children = ( - BDB6932B1C3EAE0200A5FB86 /* Compass+Navigate.swift */, + BDF7B40D1C3FF41500576737 /* Compass+Navigate.swift */, ); path = iOS; sourceTree = ""; }; - BDB693241C3EADE600A5FB86 /* Mac */ = { + D5C6296C1C3A809D007F7B7C /* Mac */ = { isa = PBXGroup; children = ( - BDB693291C3EADF500A5FB86 /* Compass+Navigate.swift */, + BDF7B40B1C3FF40A00576737 /* Compass+Navigate.swift */, ); path = Mac; sourceTree = ""; }; - BDB693251C3EADE600A5FB86 /* Shared */ = { + D5C6296E1C3A809D007F7B7C /* Shared */ = { isa = PBXGroup; children = ( - BDB693261C3EADE600A5FB86 /* Compass.swift */, + BDF7B4081C3FF40300576737 /* Compass.swift */, ); path = Shared; sourceTree = ""; }; - BDB6932D1C3EAF1000A5FB86 /* SupportFiles */ = { + D5C6298F1C3A8BDA007F7B7C /* CompassTests */ = { isa = PBXGroup; children = ( - BDB6932E1C3EAF1000A5FB86 /* iOS */, - BDB693301C3EAF1000A5FB86 /* Mac */, + D5C629901C3A8BDA007F7B7C /* Info-iOS.plist */, + D5C629911C3A8BDA007F7B7C /* Info-Mac.plist */, + D5C629921C3A8BDA007F7B7C /* iOS */, + D5C629941C3A8BDA007F7B7C /* Mac */, + D5C629961C3A8BDA007F7B7C /* Shared */, ); - path = SupportFiles; + path = CompassTests; sourceTree = ""; }; - BDB6932E1C3EAF1000A5FB86 /* iOS */ = { + D5C629921C3A8BDA007F7B7C /* iOS */ = { isa = PBXGroup; children = ( - BDB6932F1C3EAF1000A5FB86 /* Info.plist */, ); path = iOS; sourceTree = ""; }; - BDB693301C3EAF1000A5FB86 /* Mac */ = { + D5C629941C3A8BDA007F7B7C /* Mac */ = { isa = PBXGroup; children = ( - BDB693311C3EAF1000A5FB86 /* Info.plist */, ); path = Mac; sourceTree = ""; }; - D5DC594F1C200D55003BD79B = { + D5C629961C3A8BDA007F7B7C /* Shared */ = { isa = PBXGroup; children = ( - 5BD1EA93DC85FD8BF27F2B48 /* Frameworks */, - 988AA7B34A57BD52EA36BBA4 /* Pods */, - D5DC595A1C200D55003BD79B /* Products */, - BDB693221C3EADE600A5FB86 /* Source */, - BDB6932D1C3EAF1000A5FB86 /* SupportFiles */, - BDB6930C1C3EA90C00A5FB86 /* Tests */, + BDF7B40F1C3FF43F00576737 /* TestCompass.swift */, ); - sourceTree = ""; - }; - D5DC595A1C200D55003BD79B /* Products */ = { - isa = PBXGroup; - children = ( - D5DC59591C200D55003BD79B /* Compass.framework */, - D5DC59631C200D55003BD79B /* Compass-Tests.xctest */, - BDB693171C3EA91B00A5FB86 /* Compass.framework */, - ); - name = Products; + path = Shared; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - BDB693141C3EA91B00A5FB86 /* Headers */ = { + D5B2E89C1C3A780C00C0327D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC59561C200D55003BD79B /* Headers */ = { + D5C6293D1C3A7FAA007F7B7C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( @@ -228,305 +225,292 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - BDB693161C3EA91B00A5FB86 /* Compass-Mac */ = { + D5B2E89E1C3A780C00C0327D /* Compass-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = BDB6931C1C3EA91B00A5FB86 /* Build configuration list for PBXNativeTarget "Compass-Mac" */; + buildConfigurationList = D5B2E8B31C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Compass-iOS" */; buildPhases = ( - BBF4DF3C578F628A91CB3DC4 /* Check Pods Manifest.lock */, - BDB693121C3EA91B00A5FB86 /* Sources */, - BDB693131C3EA91B00A5FB86 /* Frameworks */, - BDB693141C3EA91B00A5FB86 /* Headers */, - BDB693151C3EA91B00A5FB86 /* Resources */, - 477BAFA7589C31DD286155AC /* Copy Pods Resources */, + D5B2E89A1C3A780C00C0327D /* Sources */, + D5B2E89B1C3A780C00C0327D /* Frameworks */, + D5B2E89C1C3A780C00C0327D /* Headers */, + D5B2E89D1C3A780C00C0327D /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = "Compass-Mac"; - productName = "Compass-Mac"; - productReference = BDB693171C3EA91B00A5FB86 /* Compass.framework */; + name = "Compass-iOS"; + productName = Compass; + productReference = D5B2E89F1C3A780C00C0327D /* Compass.framework */; productType = "com.apple.product-type.framework"; }; - D5DC59581C200D55003BD79B /* Compass-iOS */ = { + D5B2E8A81C3A780C00C0327D /* Compass-iOS-Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = D5DC596D1C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS" */; + buildConfigurationList = D5B2E8B61C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Compass-iOS-Tests" */; buildPhases = ( - 01878B3846A641D627BC0083 /* Check Pods Manifest.lock */, - D5DC59541C200D55003BD79B /* Sources */, - D5DC59551C200D55003BD79B /* Frameworks */, - D5DC59561C200D55003BD79B /* Headers */, - D5DC59571C200D55003BD79B /* Resources */, - ED886227CAC3FF769E032AED /* Copy Pods Resources */, + D5B2E8A51C3A780C00C0327D /* Sources */, + D5B2E8A61C3A780C00C0327D /* Frameworks */, + D5B2E8A71C3A780C00C0327D /* Resources */, + D5C629731C3A86E3007F7B7C /* Copy frameworks with Carthage */, ); buildRules = ( ); dependencies = ( + D5B2E8AC1C3A780C00C0327D /* PBXTargetDependency */, ); - name = "Compass-iOS"; - productName = Compass; - productReference = D5DC59591C200D55003BD79B /* Compass.framework */; + name = "Compass-iOS-Tests"; + productName = CompassTests; + productReference = D5B2E8A91C3A780C00C0327D /* Compass-iOS-Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D5C6293F1C3A7FAA007F7B7C /* Compass-Mac */ = { + isa = PBXNativeTarget; + buildConfigurationList = D5C629511C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Compass-Mac" */; + buildPhases = ( + D5C6293B1C3A7FAA007F7B7C /* Sources */, + D5C6293C1C3A7FAA007F7B7C /* Frameworks */, + D5C6293D1C3A7FAA007F7B7C /* Headers */, + D5C6293E1C3A7FAA007F7B7C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Compass-Mac"; + productName = "Compass-Mac"; + productReference = D5C629401C3A7FAA007F7B7C /* Compass.framework */; productType = "com.apple.product-type.framework"; }; - D5DC59621C200D55003BD79B /* Compass-Tests */ = { + D5C629481C3A7FAA007F7B7C /* Compass-Mac-Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = D5DC59701C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-Tests" */; + buildConfigurationList = D5C629541C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Compass-Mac-Tests" */; buildPhases = ( - 852650A9DFBA567556C59403 /* Check Pods Manifest.lock */, - D5DC595F1C200D55003BD79B /* Sources */, - D5DC59601C200D55003BD79B /* Frameworks */, - D5DC59611C200D55003BD79B /* Resources */, - 946405993B40FDFBE3B1DB6C /* Embed Pods Frameworks */, - A8D99C56FBCF3A2BCD2EF3C5 /* Copy Pods Resources */, + D5C629451C3A7FAA007F7B7C /* Sources */, + D5C629461C3A7FAA007F7B7C /* Frameworks */, + D5C629471C3A7FAA007F7B7C /* Resources */, + D5C629741C3A8717007F7B7C /* Copy frameworks with Carthage */, ); buildRules = ( ); dependencies = ( - D5DC59661C200D55003BD79B /* PBXTargetDependency */, + D5C6294C1C3A7FAA007F7B7C /* PBXTargetDependency */, ); - name = "Compass-Tests"; - productName = CompassTests; - productReference = D5DC59631C200D55003BD79B /* Compass-Tests.xctest */; + name = "Compass-Mac-Tests"; + productName = "Compass-MacTests"; + productReference = D5C629491C3A7FAA007F7B7C /* Compass-Mac-Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D5DC59501C200D55003BD79B /* Project object */ = { + D5B2E8961C3A780C00C0327D /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; LastUpgradeCheck = 0720; ORGANIZATIONNAME = "Hyper Interaktiv AS"; TargetAttributes = { - BDB693161C3EA91B00A5FB86 = { + D5B2E89E1C3A780C00C0327D = { + CreatedOnToolsVersion = 7.2; + }; + D5B2E8A81C3A780C00C0327D = { CreatedOnToolsVersion = 7.2; }; - D5DC59581C200D55003BD79B = { + D5C6293F1C3A7FAA007F7B7C = { CreatedOnToolsVersion = 7.2; }; - D5DC59621C200D55003BD79B = { + D5C629481C3A7FAA007F7B7C = { CreatedOnToolsVersion = 7.2; }; }; }; - buildConfigurationList = D5DC59531C200D55003BD79B /* Build configuration list for PBXProject "Compass" */; + buildConfigurationList = D5B2E8991C3A780C00C0327D /* Build configuration list for PBXProject "Compass" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = D5DC594F1C200D55003BD79B; - productRefGroup = D5DC595A1C200D55003BD79B /* Products */; + mainGroup = D5B2E8951C3A780C00C0327D; + productRefGroup = D5B2E8A01C3A780C00C0327D /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - D5DC59581C200D55003BD79B /* Compass-iOS */, - D5DC59621C200D55003BD79B /* Compass-Tests */, - BDB693161C3EA91B00A5FB86 /* Compass-Mac */, + D5B2E89E1C3A780C00C0327D /* Compass-iOS */, + D5C6293F1C3A7FAA007F7B7C /* Compass-Mac */, + D5B2E8A81C3A780C00C0327D /* Compass-iOS-Tests */, + D5C629481C3A7FAA007F7B7C /* Compass-Mac-Tests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - BDB693151C3EA91B00A5FB86 /* Resources */ = { + D5B2E89D1C3A780C00C0327D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC59571C200D55003BD79B /* Resources */ = { + D5B2E8A71C3A780C00C0327D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC59611C200D55003BD79B /* Resources */ = { + D5C6293E1C3A7FAA007F7B7C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 01878B3846A641D627BC0083 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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; - }; - 477BAFA7589C31DD286155AC /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-Mac/Pods-Compass-Mac-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 852650A9DFBA567556C59403 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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; - }; - 946405993B40FDFBE3B1DB6C /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; + D5C629471C3A7FAA007F7B7C /* Resources */ = { + isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; }; - A8D99C56FBCF3A2BCD2EF3C5 /* Copy Pods Resources */ = { +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + D5C629731C3A86E3007F7B7C /* Copy frameworks with Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "$(SRCROOT)/Carthage/Build/iOS/Quick.framework", + "$(SRCROOT)/Carthage/Build/iOS/Nimble.framework", + "$(SRCROOT)/Carthage/Build/iOS/Sugar.framework", ); - name = "Copy Pods Resources"; + name = "Copy frameworks with Carthage"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-Tests/Pods-Compass-Tests-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/usr/local/bin/carthage copy-frameworks"; }; - BBF4DF3C578F628A91CB3DC4 /* Check Pods Manifest.lock */ = { + D5C629741C3A8717007F7B7C /* Copy frameworks with Carthage */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "$(SRCROOT)/Carthage/Build/Mac/Quick.framework", + "$(SRCROOT)/Carthage/Build/Mac/Nimble.framework", + "$(SRCROOT)/Carthage/Build/Mac/Sugar.framework", ); - name = "Check Pods Manifest.lock"; + name = "Copy frameworks with Carthage"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - 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; + shellScript = "/usr/local/bin/carthage copy-frameworks"; }; - ED886227CAC3FF769E032AED /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D5B2E89A1C3A780C00C0327D /* Sources */ = { + isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( + BDF7B4091C3FF40300576737 /* Compass.swift in Sources */, + BDF7B40E1C3FF41500576737 /* Compass+Navigate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Compass-iOS/Pods-Compass-iOS-resources.sh\"\n"; - showEnvVarsInLog = 0; }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BDB693121C3EA91B00A5FB86 /* Sources */ = { + D5B2E8A51C3A780C00C0327D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BDB693281C3EADE600A5FB86 /* Compass.swift in Sources */, - BDB6932A1C3EADF500A5FB86 /* Compass+Navigate.swift in Sources */, + BDF7B4101C3FF43F00576737 /* TestCompass.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC59541C200D55003BD79B /* Sources */ = { + D5C6293B1C3A7FAA007F7B7C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BDB693271C3EADE600A5FB86 /* Compass.swift in Sources */, - BDB6932C1C3EAE0200A5FB86 /* Compass+Navigate.swift in Sources */, + BDF7B40A1C3FF40300576737 /* Compass.swift in Sources */, + BDF7B40C1C3FF40A00576737 /* Compass+Navigate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D5DC595F1C200D55003BD79B /* Sources */ = { + D5C629451C3A7FAA007F7B7C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BDB693111C3EA90C00A5FB86 /* TestCompass.swift in Sources */, + BDF7B4111C3FF43F00576737 /* TestCompass.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - D5DC59661C200D55003BD79B /* PBXTargetDependency */ = { + D5B2E8AC1C3A780C00C0327D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D5B2E89E1C3A780C00C0327D /* Compass-iOS */; + targetProxy = D5B2E8AB1C3A780C00C0327D /* PBXContainerItemProxy */; + }; + D5C6294C1C3A7FAA007F7B7C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D5DC59581C200D55003BD79B /* Compass-iOS */; - targetProxy = D5DC59651C200D55003BD79B /* PBXContainerItemProxy */; + target = D5C6293F1C3A7FAA007F7B7C /* Compass-Mac */; + targetProxy = D5C6294B1C3A7FAA007F7B7C /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - BDB6931E1C3EA91B00A5FB86 /* Release */ = { + D5B2E8B11C3A780C00C0327D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7BC739CCBC906A32EEBEE563 /* Pods-Compass-Mac.release.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = ( + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", "$(inherited)", - "$(PROJECT_DIR)/build/Debug-iphoneos", ); - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Mac/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-Mac"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = Compass; - SDKROOT = macosx; - SKIP_INSTALL = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - BDC178FB1C3EB36D0074CA67 /* Debug */ = { + D5B2E8B21C3A780C00C0327D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -549,7 +533,6 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -559,55 +542,96 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.2; - MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - BDC178FC1C3EB36D0074CA67 /* Debug */ = { + D5B2E8B41C3A780C00C0327D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 74B7F6AF767A40EC27D752B3 /* Pods-Compass-iOS.debug.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CLANG_ENABLE_MODULES = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/iOS/Info.plist"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = "$(SRCROOT)/Compass/Info-iOS.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.Compass; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-iOS"; PRODUCT_NAME = Compass; SKIP_INSTALL = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_OBJC_INTERFACE_HEADER_NAME = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; - BDC178FD1C3EB36D0074CA67 /* Debug */ = { + D5B2E8B51C3A780C00C0327D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 21B22E597715854B97A5B039 /* Pods-Compass-Tests.debug.xcconfig */; buildSettings = { - INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; + CLANG_ENABLE_MODULES = YES; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = "$(SRCROOT)/Compass/Info-iOS.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-iOS"; + PRODUCT_NAME = Compass; + SKIP_INSTALL = YES; + }; + name = Release; + }; + D5B2E8B71C3A780C00C0327D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = "$(SRCROOT)/CompassTests/Info-iOS.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassTests; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; - BDC178FE1C3EB36D0074CA67 /* Debug */ = { + D5B2E8B81C3A780C00C0327D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2DBC0C7B6EF14D4152FE6F13 /* Pods-Compass-Mac.debug.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "-"; + CLANG_ENABLE_MODULES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = "$(SRCROOT)/CompassTests/Info-iOS.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + D5C629521C3A7FAA007F7B7C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; @@ -615,136 +639,132 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/build/Debug-iphoneos", + "$(PROJECT_DIR)/Carthage/Build/Mac", ); FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Mac/Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Compass/Info-Mac.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-Mac"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; PRODUCT_NAME = Compass; SDKROOT = macosx; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; - D5DC596C1C200D55003BD79B /* Release */ = { + D5C629531C3A7FAA007F7B7C /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D5DC596F1C200D55003BD79B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4C9FF2B0391971CD185DFEF3 /* Pods-Compass-iOS.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/iOS/Info.plist"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "$(SRCROOT)/Compass/Info-Mac.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.Compass; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-Mac"; PRODUCT_NAME = Compass; + SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_OBJC_INTERFACE_HEADER_NAME = ""; }; name = Release; }; - D5DC59721C200D55003BD79B /* Release */ = { + D5C629551C3A7FAA007F7B7C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C9CC1F0FF7E9542DBEE27A66 /* Pods-Compass-Tests.release.xcconfig */; buildSettings = { - INFOPLIST_FILE = "$(SRCROOT)/Tests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassTests; + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = "$(SRCROOT)/CompassTests/Info-Mac.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-MacTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + D5C629561C3A7FAA007F7B7C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = "$(SRCROOT)/CompassTests/Info-Mac.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Compass-MacTests"; PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - BDB6931C1C3EA91B00A5FB86 /* Build configuration list for PBXNativeTarget "Compass-Mac" */ = { + D5B2E8991C3A780C00C0327D /* Build configuration list for PBXProject "Compass" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D5B2E8B11C3A780C00C0327D /* Debug */, + D5B2E8B21C3A780C00C0327D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D5B2E8B31C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Compass-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - BDB6931E1C3EA91B00A5FB86 /* Release */, - BDC178FE1C3EB36D0074CA67 /* Debug */, + D5B2E8B41C3A780C00C0327D /* Debug */, + D5B2E8B51C3A780C00C0327D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D5DC59531C200D55003BD79B /* Build configuration list for PBXProject "Compass" */ = { + D5B2E8B61C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Compass-iOS-Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - D5DC596C1C200D55003BD79B /* Release */, - BDC178FB1C3EB36D0074CA67 /* Debug */, + D5B2E8B71C3A780C00C0327D /* Debug */, + D5B2E8B81C3A780C00C0327D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D5DC596D1C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-iOS" */ = { + D5C629511C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Compass-Mac" */ = { isa = XCConfigurationList; buildConfigurations = ( - D5DC596F1C200D55003BD79B /* Release */, - BDC178FC1C3EB36D0074CA67 /* Debug */, + D5C629521C3A7FAA007F7B7C /* Debug */, + D5C629531C3A7FAA007F7B7C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D5DC59701C200D55003BD79B /* Build configuration list for PBXNativeTarget "Compass-Tests" */ = { + D5C629541C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Compass-Mac-Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - D5DC59721C200D55003BD79B /* Release */, - BDC178FD1C3EB36D0074CA67 /* Debug */, + D5C629551C3A7FAA007F7B7C /* Debug */, + D5C629561C3A7FAA007F7B7C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D5DC59501C200D55003BD79B /* Project object */; + rootObject = D5B2E8961C3A780C00C0327D /* Project object */; } diff --git a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme index f9db47e..98df34a 100644 --- a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme +++ b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-Mac.xcscheme @@ -14,26 +14,12 @@ buildForAnalyzing = "YES"> - - - - @@ -56,7 +42,7 @@ @@ -78,7 +64,7 @@ @@ -96,7 +82,7 @@ diff --git a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme index 02351bf..224de66 100644 --- a/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme +++ b/Compass.xcodeproj/xcshareddata/xcschemes/Compass-iOS.xcscheme @@ -14,26 +14,12 @@ buildForAnalyzing = "YES"> - - - - @@ -56,7 +42,7 @@ @@ -78,7 +64,7 @@ @@ -96,7 +82,7 @@ diff --git a/Compass.xcworkspace/contents.xcworkspacedata b/Compass.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 097b04b..0000000 --- a/Compass.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/SupportFiles/Mac/Info.plist b/Compass/Info-Mac.plist similarity index 100% rename from SupportFiles/Mac/Info.plist rename to Compass/Info-Mac.plist diff --git a/SupportFiles/iOS/Info.plist b/Compass/Info-iOS.plist similarity index 100% rename from SupportFiles/iOS/Info.plist rename to Compass/Info-iOS.plist diff --git a/Tests/Info.plist b/CompassTests/Info-Mac.plist similarity index 100% rename from Tests/Info.plist rename to CompassTests/Info-Mac.plist diff --git a/CompassTests/Info-iOS.plist b/CompassTests/Info-iOS.plist new file mode 100644 index 0000000..ba72822 --- /dev/null +++ b/CompassTests/Info-iOS.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Tests/Shared/TestCompass.swift b/CompassTests/Shared/TestCompass.swift similarity index 100% rename from Tests/Shared/TestCompass.swift rename to CompassTests/Shared/TestCompass.swift diff --git a/Example/CompassExample/CompassExample.xcodeproj/project.pbxproj b/Example/CompassExample/CompassExample.xcodeproj/project.pbxproj deleted file mode 100644 index 5d8f71e..0000000 --- a/Example/CompassExample/CompassExample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,360 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 770C3CD094BF3A3377FCD018 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 444C742BF0B07D34601BB603 /* Pods.framework */; }; - BD6929321BC51DC40063E97E /* LoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6929311BC51DC40063E97E /* LoginController.swift */; settings = {ASSET_TAGS = (); }; }; - BD93421A1BC4FFCA00F25395 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD9342191BC4FFCA00F25395 /* AppDelegate.swift */; }; - BD93421C1BC4FFCA00F25395 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD93421B1BC4FFCA00F25395 /* ViewController.swift */; }; - BD9342211BC4FFCA00F25395 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BD9342201BC4FFCA00F25395 /* Assets.xcassets */; }; - BD9342241BC4FFCA00F25395 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BD9342221BC4FFCA00F25395 /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 026785A1D5CD54869AAA84E0 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 444C742BF0B07D34601BB603 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4FB1BF00D8789EE8456F0547 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - BD6929311BC51DC40063E97E /* LoginController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginController.swift; sourceTree = ""; }; - BD9342161BC4FFCA00F25395 /* CompassExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CompassExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - BD9342191BC4FFCA00F25395 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - BD93421B1BC4FFCA00F25395 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - BD9342201BC4FFCA00F25395 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - BD9342231BC4FFCA00F25395 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - BD9342251BC4FFCA00F25395 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - BD9342131BC4FFCA00F25395 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 770C3CD094BF3A3377FCD018 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8935747AFF24622BEE4052CF /* Pods */ = { - isa = PBXGroup; - children = ( - 026785A1D5CD54869AAA84E0 /* Pods.debug.xcconfig */, - 4FB1BF00D8789EE8456F0547 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - BD93420D1BC4FFCA00F25395 = { - isa = PBXGroup; - children = ( - BD9342181BC4FFCA00F25395 /* CompassExample */, - BD9342171BC4FFCA00F25395 /* Products */, - 8935747AFF24622BEE4052CF /* Pods */, - E7CA8CD4DC0B01DDB0DC7B6E /* Frameworks */, - ); - sourceTree = ""; - }; - BD9342171BC4FFCA00F25395 /* Products */ = { - isa = PBXGroup; - children = ( - BD9342161BC4FFCA00F25395 /* CompassExample.app */, - ); - name = Products; - sourceTree = ""; - }; - BD9342181BC4FFCA00F25395 /* CompassExample */ = { - isa = PBXGroup; - children = ( - BD9342191BC4FFCA00F25395 /* AppDelegate.swift */, - BD93421B1BC4FFCA00F25395 /* ViewController.swift */, - BD9342201BC4FFCA00F25395 /* Assets.xcassets */, - BD9342221BC4FFCA00F25395 /* LaunchScreen.storyboard */, - BD9342251BC4FFCA00F25395 /* Info.plist */, - BD6929311BC51DC40063E97E /* LoginController.swift */, - ); - path = CompassExample; - sourceTree = ""; - }; - E7CA8CD4DC0B01DDB0DC7B6E /* Frameworks */ = { - isa = PBXGroup; - children = ( - 444C742BF0B07D34601BB603 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - BD9342151BC4FFCA00F25395 /* CompassExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = BD9342281BC4FFCA00F25395 /* Build configuration list for PBXNativeTarget "CompassExample" */; - buildPhases = ( - 88DD20777CDAF5F7381A7968 /* Check Pods Manifest.lock */, - BD9342121BC4FFCA00F25395 /* Sources */, - BD9342131BC4FFCA00F25395 /* Frameworks */, - BD9342141BC4FFCA00F25395 /* Resources */, - 20FD2DF451B10A7FAFF89B8B /* Embed Pods Frameworks */, - 603AE42DCA38C24FB6FE2C1C /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CompassExample; - productName = CompassExample; - productReference = BD9342161BC4FFCA00F25395 /* CompassExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BD93420E1BC4FFCA00F25395 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = Hyper; - TargetAttributes = { - BD9342151BC4FFCA00F25395 = { - CreatedOnToolsVersion = 7.0.1; - }; - }; - }; - buildConfigurationList = BD9342111BC4FFCA00F25395 /* Build configuration list for PBXProject "CompassExample" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = BD93420D1BC4FFCA00F25395; - productRefGroup = BD9342171BC4FFCA00F25395 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - BD9342151BC4FFCA00F25395 /* CompassExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - BD9342141BC4FFCA00F25395 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BD9342241BC4FFCA00F25395 /* LaunchScreen.storyboard in Resources */, - BD9342211BC4FFCA00F25395 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 20FD2DF451B10A7FAFF89B8B /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 603AE42DCA38C24FB6FE2C1C /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 88DD20777CDAF5F7381A7968 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BD9342121BC4FFCA00F25395 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BD93421C1BC4FFCA00F25395 /* ViewController.swift in Sources */, - BD6929321BC51DC40063E97E /* LoginController.swift in Sources */, - BD93421A1BC4FFCA00F25395 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - BD9342221BC4FFCA00F25395 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - BD9342231BC4FFCA00F25395 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - BD9342261BC4FFCA00F25395 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - BD9342271BC4FFCA00F25395 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - BD9342291BC4FFCA00F25395 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 026785A1D5CD54869AAA84E0 /* Pods.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = CompassExample/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassExample; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - BD93422A1BC4FFCA00F25395 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4FB1BF00D8789EE8456F0547 /* Pods.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = CompassExample/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = no.hyper.CompassExample; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - BD9342111BC4FFCA00F25395 /* Build configuration list for PBXProject "CompassExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BD9342261BC4FFCA00F25395 /* Debug */, - BD9342271BC4FFCA00F25395 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - BD9342281BC4FFCA00F25395 /* Build configuration list for PBXNativeTarget "CompassExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BD9342291BC4FFCA00F25395 /* Debug */, - BD93422A1BC4FFCA00F25395 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BD93420E1BC4FFCA00F25395 /* Project object */; -} diff --git a/Example/CompassExample/CompassExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/CompassExample/CompassExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e6e17df..0000000 --- a/Example/CompassExample/CompassExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Example/CompassExample/CompassExample.xcworkspace/contents.xcworkspacedata b/Example/CompassExample/CompassExample.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 76b3226..0000000 --- a/Example/CompassExample/CompassExample.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/Example/CompassExample/CompassExample/AppDelegate.swift b/Example/CompassExample/CompassExample/AppDelegate.swift deleted file mode 100644 index e7054d6..0000000 --- a/Example/CompassExample/CompassExample/AppDelegate.swift +++ /dev/null @@ -1,48 +0,0 @@ -import UIKit -import Compass - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - var navigationController: UINavigationController? - lazy var mainController: ViewController = { - let viewController = ViewController() - viewController.title = "Main Controller" - viewController.view.backgroundColor = .whiteColor() - - return viewController - }() - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - window = UIWindow(frame: UIScreen.mainScreen().bounds) - navigationController = UINavigationController(rootViewController: mainController) - window?.rootViewController = navigationController - window?.makeKeyAndVisible() - - Compass.scheme = "compass" - Compass.routes = ["profile:{username}", "login:{username}", "logout"] - - return true - } - - func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { - return Compass.parse(url) { route, arguments in - if route == "profile:{username}" { - let profileController = UIViewController() - profileController.view.backgroundColor = UIColor.whiteColor() - profileController.title = arguments["username"] - self.navigationController?.pushViewController(profileController, animated: true) - } else if route == "login:{username}" { - let loginController = LoginController() - loginController.title = arguments["username"] - let username = arguments["username"] - loginController.titleLabel.text = "\(loginController.titleLabel.text!) \(username!)" - loginController.titleLabel.sizeToFit() - self.navigationController?.pushViewController(loginController, animated: true) - } else if route == "logout" { - self.navigationController?.popToRootViewControllerAnimated(true) - } - } - } -} diff --git a/Example/CompassExample/CompassExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/Example/CompassExample/CompassExample/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 118c98f..0000000 --- a/Example/CompassExample/CompassExample/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Example/CompassExample/CompassExample/Base.lproj/LaunchScreen.storyboard b/Example/CompassExample/CompassExample/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 900bc17..0000000 --- a/Example/CompassExample/CompassExample/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/CompassExample/CompassExample/Info.plist b/Example/CompassExample/CompassExample/Info.plist deleted file mode 100644 index 3d0ee5e..0000000 --- a/Example/CompassExample/CompassExample/Info.plist +++ /dev/null @@ -1,51 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLName - no.hyper.Compass - CFBundleURLSchemes - - compass - - - - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/CompassExample/CompassExample/LoginController.swift b/Example/CompassExample/CompassExample/LoginController.swift deleted file mode 100644 index bb487ff..0000000 --- a/Example/CompassExample/CompassExample/LoginController.swift +++ /dev/null @@ -1,73 +0,0 @@ -import UIKit -import Compass - -class LoginController: UIViewController { - - lazy var scrollView: UIScrollView = UIScrollView() - - lazy var titleLabel: UILabel = { - let label = UILabel() - label.text = "Welcome: " - label.font = UIFont(name: "HelveticaNeue-Medium", size: 20)! - label.textColor = UIColor(red:0.86, green:0.86, blue:0.86, alpha:1) - label.textAlignment = .Center - label.numberOfLines = 0 - label.frame.size.width = UIScreen.mainScreen().bounds.width - 60 - label.sizeToFit() - - return label - }() - - lazy var logoutButton: UIButton = { [unowned self] in - let button = UIButton() - button.addTarget(self, action: "logoutButtonDidPress:", forControlEvents: .TouchUpInside) - button.setTitle("Logout", forState: .Normal) - - return button - }() - - lazy var containerView: UIView = { - let view = UIView() - view.backgroundColor = UIColor.grayColor() - - return view - }() - - override func viewDidLoad() { - super.viewDidLoad() - - view.backgroundColor = UIColor.whiteColor() - - navigationItem.backBarButtonItem = UIBarButtonItem(title: nil, style: .Plain, target: nil, action: nil) - - view.addSubview(scrollView) - for subview in [titleLabel, logoutButton] { scrollView.addSubview(subview) } - - for button in [logoutButton] { - button.setTitleColor(UIColor.grayColor(), forState: .Normal) - button.layer.borderColor = UIColor.grayColor().CGColor - button.layer.borderWidth = 1.5 - button.layer.cornerRadius = 7.5 - } - setupFrames() - } - - // MARK: Action methods - - func logoutButtonDidPress(button: UIButton) { - Compass.navigate("logout") - } - - // MARK - Configuration - - func setupFrames() { - guard let navigationHeight = navigationController?.navigationBar.frame.height else { return } - let totalSize = UIScreen.mainScreen().bounds - let originY = navigationHeight + UIApplication.sharedApplication().statusBarFrame.height - - scrollView.frame = CGRect(x: 0, y: originY, width: totalSize.width, height: totalSize.height - originY) - titleLabel.frame.origin = CGPoint(x: (totalSize.width - titleLabel.frame.width) / 2, y: totalSize.height / 2 - 200) - logoutButton.frame = CGRect(x: 50, y: titleLabel.frame.maxY + 75, width: totalSize.width - 100, height: 50) - } -} - diff --git a/Example/CompassExample/CompassExample/ViewController.swift b/Example/CompassExample/CompassExample/ViewController.swift deleted file mode 100644 index 8b9c909..0000000 --- a/Example/CompassExample/CompassExample/ViewController.swift +++ /dev/null @@ -1,102 +0,0 @@ -import UIKit -import Compass - -class ViewController: UIViewController { - - lazy var scrollView: UIScrollView = UIScrollView() - - lazy var titleLabel: UILabel = { - let label = UILabel() - label.text = "Compass\nApp based navigation made easy🏁" - label.font = UIFont(name: "HelveticaNeue-Medium", size: 20)! - label.textColor = UIColor(red:0.86, green:0.86, blue:0.86, alpha:1) - label.textAlignment = .Center - label.numberOfLines = 0 - label.frame.size.width = UIScreen.mainScreen().bounds.width - 60 - label.sizeToFit() - - return label - }() - - lazy var profileButton: UIButton = { [unowned self] in - let button = UIButton() - button.addTarget(self, action: "profileButtonDidPress:", forControlEvents: .TouchUpInside) - button.setTitle("Show profile", forState: .Normal) - - return button - }() - - lazy var loginButton: UIButton = { [unowned self] in - let button = UIButton() - button.addTarget(self, action: "loginButtonDidPress:", forControlEvents: .TouchUpInside) - button.setTitle("Show login", forState: .Normal) - - return button - }() - - lazy var containerView: UIView = { - let view = UIView() - view.backgroundColor = UIColor.grayColor() - - return view - }() - - override func viewDidLoad() { - super.viewDidLoad() - - view.backgroundColor = UIColor.whiteColor() - - navigationItem.backBarButtonItem = UIBarButtonItem(title: nil, style: .Plain, target: nil, action: nil) - - view.addSubview(scrollView) - for subview in [titleLabel, profileButton, loginButton] { scrollView.addSubview(subview) } - - for button in [profileButton, loginButton] { - button.setTitleColor(UIColor.grayColor(), forState: .Normal) - button.layer.borderColor = UIColor.grayColor().CGColor - button.layer.borderWidth = 1.5 - button.layer.cornerRadius = 7.5 - } - - guard let navigationController = navigationController else { return } - - navigationController.navigationBar.addSubview(containerView) - containerView.frame = CGRect(x: 0, - y: navigationController.navigationBar.frame.maxY - UIApplication.sharedApplication().statusBarFrame.height, - width: UIScreen.mainScreen().bounds.width, height: 75) - } - - override func viewWillAppear(animated: Bool) { - super.viewWillAppear(animated) - title = "Compass".uppercaseString - } - - override func viewDidAppear(animated: Bool) { - super.viewDidAppear(animated) - setupFrames() - } - - // MARK: Action methods - - func profileButtonDidPress(button: UIButton) { - Compass.navigate("profile:jgorset") - } - - func loginButtonDidPress(button: UIButton) { - Compass.navigate("login:timkurvers") - } - - // MARK - Configuration - - func setupFrames() { - guard let navigationHeight = navigationController?.navigationBar.frame.height else { return } - let totalSize = UIScreen.mainScreen().bounds - let originY = navigationHeight + UIApplication.sharedApplication().statusBarFrame.height - - scrollView.frame = CGRect(x: 0, y: originY, width: totalSize.width, height: totalSize.height - originY) - titleLabel.frame.origin = CGPoint(x: (totalSize.width - titleLabel.frame.width) / 2, y: totalSize.height / 2 - 200) - profileButton.frame = CGRect(x: 50, y: titleLabel.frame.maxY + 75, width: totalSize.width - 100, height: 50) - loginButton.frame = CGRect(x: 50, y: profileButton.frame.maxY + 15, width: totalSize.width - 100, height: 50) - } -} - diff --git a/Example/CompassExample/Podfile b/Example/CompassExample/Podfile deleted file mode 100644 index 2d162f7..0000000 --- a/Example/CompassExample/Podfile +++ /dev/null @@ -1,7 +0,0 @@ -platform :ios, '8.0' -use_frameworks! - -# When using more than one target in your project -# link_with 'Demo', 'Tests' - -pod 'Compass', path: '../../' diff --git a/Example/CompassExample/Podfile.lock b/Example/CompassExample/Podfile.lock deleted file mode 100644 index 3488e6c..0000000 --- a/Example/CompassExample/Podfile.lock +++ /dev/null @@ -1,14 +0,0 @@ -PODS: - - Compass (1.1.0) - -DEPENDENCIES: - - Compass (from `../../`) - -EXTERNAL SOURCES: - Compass: - :path: "../../" - -SPEC CHECKSUMS: - Compass: 884465fe6cd5f809a4e6640f7933de31331e0d38 - -COCOAPODS: 0.39.0 diff --git a/Images/logo_v1.png b/Images/logo_v1.png deleted file mode 100644 index 3d9e1b489c111541eed64fc88c250094020705ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162683 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

`z+JE)E$5HLpfK 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 z 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 Zg72^< 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 nX - -[![CI Status](http://img.shields.io/travis/hyperoslo/Compass.svg?style=flat)](https://travis-ci.org/hyperoslo/Compass) - -#### Step 2 -Now you need to configure Compass to use that URL scheme, a good place -to do this is in your `AppDelegate` -```swift -func application(application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - Compass.scheme = "compass" - return true -} -``` -#### Step 3 -Configure your application routes -```swift -func application(application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - Compass.scheme = "compass" - Compass.routes = ["profile:{username}", "login:{username}", "logout"] - return true -} -``` -#### Step 4 -Set up your application to respond to the URLs, this can be done in the `AppDelegate` but its up to you to find a more suitable place for it depending on the size of your implementation. -```swift -func application(app: UIApplication, - openURL url: NSURL, - options: [String : AnyObject]) -> Bool { - return Compass.parse(url) { route, arguments in - switch route { - case "profile:{username}": - let profileController = profileController(title: arguments["{username}"]) - self.navigationController?.pushViewController(profileController, - animated: true) - case "login:{username}": - let loginController = LoginController(title: arguments["{username}"]) - self.navigationController?.pushViewController(loginController, - animated: true) - case "logout": - logout() - default: break - } - } -} -``` +## Description -Setting it up this way would mean that -you could open any view from a push notification depending on the contents of the payload. -Preferably you would add your own global function that you use for internal navigation. +**Compass** description. -## Compass life hacks +## Usage -##### Tip 1. NavigationHandler.swift -You could have multiple handlers depending on if a user is logged in or not. ```swift -struct NavigationHandler { - static func routePreLogin(route: String, arguments: [String: String], - navigationController: UINavigationController) { - switch route { - case "forgotpassword:{username}": - let forgotPasswordController = ForgotPasswordController(title: arguments["{username}"]) - navigationController?.pushViewController(loginController, - animated: true) - default: break - } - } - - static func routePostLogin(route: String, arguments: [String: String], - navigationController: UINavigationController) { - switch route { - case "profile:{username}": - let profileController = ProfileController(title: arguments["{username}"]) - navigationController?.pushViewController(profileController, - animated: true) - case "logout": - AppDelegate.logout() - default: break - } - } -} + ``` -##### Tip 2. Compass.swift -Add your own global function to easily navigate internally -``` swift -import Compass - -public func navigate(urn: String) { - let stringURL = "\(Compass.scheme)\(urn)" - guard let appDelegate = UIApplication.sharedApplication().delegate as? ApplicationDelegate, - url = NSURL(string: stringURL) else { return } +## Author - appDelegate.handleURL(url) -} -``` +Hyper Interaktiv AS, ios@hyper.no ## Installation @@ -136,10 +40,10 @@ github "hyperoslo/Compass" Hyper Interaktiv AS, ios@hyper.no -## Credits +## Contributing -The idea behind Compass came from [John Sundell](https://github.com/JohnSundell)'s tech talk "*Components & View Models in the Cloud - how Spotify builds native, dynamic UIs*" +We would love you to contribute to **Compass**, check the [CONTRIBUTING](https://github.com/hyperoslo/Compass/blob/master/CONTRIBUTING.md) file for more info. ## License -**Compass** is available under the MIT license. See the LICENSE file for more info. +**Compass** is available under the MIT license. See the [LICENSE](https://github.com/hyperoslo/Compass/blob/master/LICENSE.md) file for more info. diff --git a/Source/Mac/Compass+Navigate.swift b/Sources/Mac/Compass+Navigate.swift similarity index 100% rename from Source/Mac/Compass+Navigate.swift rename to Sources/Mac/Compass+Navigate.swift diff --git a/Source/Shared/Compass.swift b/Sources/Shared/Compass.swift similarity index 100% rename from Source/Shared/Compass.swift rename to Sources/Shared/Compass.swift diff --git a/Source/iOS/Compass+Navigate.swift b/Sources/iOS/Compass+Navigate.swift similarity index 100% rename from Source/iOS/Compass+Navigate.swift rename to Sources/iOS/Compass+Navigate.swift From 59c7ecd95ba9cf65e00f768bba12e9c6e2e0b049 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:11:15 +0100 Subject: [PATCH 14/20] Set MACOSX_DEPLOYMENT_TARGET --- Compass.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index 00ab644..c868c59 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -500,6 +500,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.2; + MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -542,6 +543,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.2; + MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; From 6de7aa6f86673f4fba3c9d324e79296e6d35ca67 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:24:24 +0100 Subject: [PATCH 15/20] Remove OS X tests from Travis --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6dc1546..a3497a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,5 +10,3 @@ before_install: script: - xctool clean build -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator - xctool test -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator -- xctool clean build -project Compass.xcodeproj -scheme Compass-Mac -sdk macosx -- xctool test -project Compass.xcodeproj -scheme Compass-Mac -sdk macosx From 2aa9f60b01e1bb1b3b16520f91f6449fec3a8733 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:28:31 +0100 Subject: [PATCH 16/20] Remove Mac from carthage update --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a3497a3..b11bd70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ before_install: - brew update - brew install carthage - if brew outdated | grep -qx xctool; then brew upgrade xctool; fi -- carthage update --platform iOS,Mac +- carthage update --platform iOS script: - xctool clean build -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator From a81731b08144ce8ece2761aa84b7ecb58e378be6 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:31:18 +0100 Subject: [PATCH 17/20] Revert travis.yml file --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b11bd70..54997a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,10 @@ before_install: - brew update - brew install carthage - if brew outdated | grep -qx xctool; then brew upgrade xctool; fi -- carthage update --platform iOS +- carthage update --platform iOS, Mac script: - xctool clean build -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator - xctool test -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator +- xctool clean build -project Compass.xcodeproj -scheme Compass-Mac -sdk macosx +- xctool test -project Compass.xcodeproj -scheme Compass-Mac -sdk macosx From 68fd9b0a97c3bd0da32c1b3c8685d7425ca2041c Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:31:53 +0100 Subject: [PATCH 18/20] Remove Quick and Nimble from test targets --- Compass.xcodeproj/project.pbxproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index c868c59..6642a35 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -381,8 +381,6 @@ files = ( ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/iOS/Quick.framework", - "$(SRCROOT)/Carthage/Build/iOS/Nimble.framework", "$(SRCROOT)/Carthage/Build/iOS/Sugar.framework", ); name = "Copy frameworks with Carthage"; @@ -398,8 +396,6 @@ files = ( ); inputPaths = ( - "$(SRCROOT)/Carthage/Build/Mac/Quick.framework", - "$(SRCROOT)/Carthage/Build/Mac/Nimble.framework", "$(SRCROOT)/Carthage/Build/Mac/Sugar.framework", ); name = "Copy frameworks with Carthage"; From 87994c6f1be6e44bff23112b114c2a0fb3d51e50 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:43:06 +0100 Subject: [PATCH 19/20] Remove space --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 54997a0..6dc1546 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ before_install: - brew update - brew install carthage - if brew outdated | grep -qx xctool; then brew upgrade xctool; fi -- carthage update --platform iOS, Mac +- carthage update --platform iOS,Mac script: - xctool clean build -project Compass.xcodeproj -scheme Compass-iOS -sdk iphonesimulator From e49b8e50794d19c0dc0be392becdc5f00e463375 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Fri, 8 Jan 2016 15:50:47 +0100 Subject: [PATCH 20/20] Remove frameworks --- Compass.xcodeproj/project.pbxproj | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/Compass.xcodeproj/project.pbxproj b/Compass.xcodeproj/project.pbxproj index 6642a35..3a73039 100644 --- a/Compass.xcodeproj/project.pbxproj +++ b/Compass.xcodeproj/project.pbxproj @@ -17,10 +17,6 @@ BDF7B4171C3FF51800576737 /* Sugar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF7B4161C3FF51800576737 /* Sugar.framework */; }; D5B2E8AA1C3A780C00C0327D /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5B2E89F1C3A780C00C0327D /* Compass.framework */; }; D5C6294A1C3A7FAA007F7B7C /* Compass.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629401C3A7FAA007F7B7C /* Compass.framework */; }; - D5C629771C3A878E007F7B7C /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629751C3A878E007F7B7C /* Quick.framework */; }; - D5C629781C3A878E007F7B7C /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629761C3A878E007F7B7C /* Nimble.framework */; }; - D5C6297B1C3A879F007F7B7C /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629791C3A879F007F7B7C /* Quick.framework */; }; - D5C6297C1C3A879F007F7B7C /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C6297A1C3A879F007F7B7C /* Nimble.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -51,10 +47,6 @@ D5B2E8A91C3A780C00C0327D /* Compass-iOS-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-iOS-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; D5C629401C3A7FAA007F7B7C /* Compass.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Compass.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D5C629491C3A7FAA007F7B7C /* Compass-Mac-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Compass-Mac-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - D5C629751C3A878E007F7B7C /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/iOS/Quick.framework; sourceTree = ""; }; - D5C629761C3A878E007F7B7C /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = Carthage/Build/iOS/Nimble.framework; sourceTree = ""; }; - D5C629791C3A879F007F7B7C /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/Mac/Quick.framework; sourceTree = ""; }; - D5C6297A1C3A879F007F7B7C /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = Carthage/Build/Mac/Nimble.framework; sourceTree = ""; }; D5C6298B1C3A8BBD007F7B7C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; D5C6298C1C3A8BBD007F7B7C /* Info-Mac.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Mac.plist"; sourceTree = ""; }; D5C629901C3A8BDA007F7B7C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; @@ -74,8 +66,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D5C629771C3A878E007F7B7C /* Quick.framework in Frameworks */, - D5C629781C3A878E007F7B7C /* Nimble.framework in Frameworks */, D5B2E8AA1C3A780C00C0327D /* Compass.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -92,8 +82,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D5C6297B1C3A879F007F7B7C /* Quick.framework in Frameworks */, - D5C6297C1C3A879F007F7B7C /* Nimble.framework in Frameworks */, D5C6294A1C3A7FAA007F7B7C /* Compass.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -106,10 +94,6 @@ children = ( BDF7B4161C3FF51800576737 /* Sugar.framework */, BDF7B4141C3FF51100576737 /* Sugar.framework */, - D5C629791C3A879F007F7B7C /* Quick.framework */, - D5C6297A1C3A879F007F7B7C /* Nimble.framework */, - D5C629751C3A878E007F7B7C /* Quick.framework */, - D5C629761C3A878E007F7B7C /* Nimble.framework */, D5C629691C3A809D007F7B7C /* Sources */, D5C6295C1C3A800E007F7B7C /* Compass */, D5C6298F1C3A8BDA007F7B7C /* CompassTests */,