diff --git a/Profiles/Assets/.gitkeep b/Profiles/Assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Profiles/Podfile b/Profiles/Podfile new file mode 100644 index 0000000..87fa707 --- /dev/null +++ b/Profiles/Podfile @@ -0,0 +1,25 @@ +platform :ios, '9.0' + +target 'Profiles' do + use_frameworks! + + pod 'Alamofire', '4.4.0' + pod 'AlamofireObjectMapper', '4.1.0' + pod 'Dollar', '6.2.0' + pod 'Material', '2.6.3' + pod 'PromiseKit', '4.1.7' + pod 'RealmSwift', '2.5.1' + pod 'Reveal-SDK', '8', :configurations => ['Debug'] + pod 'SnapKit', '3.2.0' + pod 'SwiftyTimer', '2.0.0' + pod 'SwiftyUserDefaults', '3.0.0' + + target 'ProfilesTests' do + inherit! :search_paths + end + + target 'ProfilesUITests' do + inherit! :search_paths + end + +end diff --git a/Profiles/Podfile.lock b/Profiles/Podfile.lock new file mode 100644 index 0000000..2642e2b --- /dev/null +++ b/Profiles/Podfile.lock @@ -0,0 +1,60 @@ +PODS: + - Alamofire (4.4.0) + - AlamofireObjectMapper (4.1.0): + - Alamofire (~> 4.1) + - ObjectMapper (~> 2.0) + - Dollar (6.2.0) + - Material (2.6.3): + - Material/Core (= 2.6.3) + - Material/Core (2.6.3) + - ObjectMapper (2.2.5) + - PromiseKit (4.1.7): + - PromiseKit/Foundation (= 4.1.7) + - PromiseKit/QuartzCore (= 4.1.7) + - PromiseKit/UIKit (= 4.1.7) + - PromiseKit/CorePromise (4.1.7) + - PromiseKit/Foundation (4.1.7): + - PromiseKit/CorePromise + - PromiseKit/QuartzCore (4.1.7): + - PromiseKit/CorePromise + - PromiseKit/UIKit (4.1.7): + - PromiseKit/CorePromise + - Realm (2.5.1): + - Realm/Headers (= 2.5.1) + - Realm/Headers (2.5.1) + - RealmSwift (2.5.1): + - Realm (= 2.5.1) + - Reveal-SDK (8) + - SnapKit (3.2.0) + - SwiftyTimer (2.0.0) + - SwiftyUserDefaults (3.0.0) + +DEPENDENCIES: + - Alamofire (= 4.4.0) + - AlamofireObjectMapper (= 4.1.0) + - Dollar (= 6.2.0) + - Material (= 2.6.3) + - PromiseKit (= 4.1.7) + - RealmSwift (= 2.5.1) + - Reveal-SDK (= 8) + - SnapKit (= 3.2.0) + - SwiftyTimer (= 2.0.0) + - SwiftyUserDefaults (= 3.0.0) + +SPEC CHECKSUMS: + Alamofire: dc44b1600b800eb63da6a19039a0083d62a6a62d + AlamofireObjectMapper: 435adc82f5b367679bd9e71c4974a54efd0b2521 + Dollar: da81aacae30cf7dd059bfdfec709e97f2f0ae2f8 + Material: af607a7ec0e9978ef85cf189a3d8ceeeb650400f + ObjectMapper: fb30f71e08470d1e5a20b199fafe1246281db898 + PromiseKit: 779f2e41faf62d854e7593026ddbcb0bb5c5002d + Realm: 32f86104d37c8521f864d4274050b38ba6190733 + RealmSwift: f719e7511c902b8908593e8f143f59e47931bdb6 + Reveal-SDK: 43be4e662864e937960d0d04d005135e29c4e53b + SnapKit: 1ca44df72cfa543218d177cb8aab029d10d86ea7 + SwiftyTimer: 2efd74b060d69ad4f1496baf5bbedbe132125fcf + SwiftyUserDefaults: 0f1d45fc3aafb9064dac661e367f8f83fe21a4b4 + +PODFILE CHECKSUM: 7fbf602722025a36a3ba2b9ff411b243d1548e86 + +COCOAPODS: 1.2.0 diff --git a/Profiles/Profiles.xcodeproj/project.pbxproj b/Profiles/Profiles.xcodeproj/project.pbxproj new file mode 100644 index 0000000..a74e854 --- /dev/null +++ b/Profiles/Profiles.xcodeproj/project.pbxproj @@ -0,0 +1,787 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 00941F90BFB33EF3610A9AB4 /* Pods_ProfilesTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00E8FD7319472ABE1FA6104D /* Pods_ProfilesTests.framework */; }; + 36D60B361CB7A4AB78DC304C /* Pods_Profiles.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 143D0E0CF4E9097472D3EEAF /* Pods_Profiles.framework */; }; + F07FFD088BE64130D0AC0D49 /* Pods_ProfilesUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1239CD5DB1F55E4E79E3E3AB /* Pods_ProfilesUITests.framework */; }; + F7E27CC71E972A8300DCF068 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CC61E972A8300DCF068 /* AppDelegate.swift */; }; + F7E27CCE1E972A8300DCF068 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F7E27CCD1E972A8300DCF068 /* Assets.xcassets */; }; + F7E27CD11E972A8300DCF068 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7E27CCF1E972A8300DCF068 /* LaunchScreen.storyboard */; }; + F7E27CDC1E972A8400DCF068 /* ProfilesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CDB1E972A8400DCF068 /* ProfilesTests.swift */; }; + F7E27CE71E972A8400DCF068 /* ProfilesUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CE61E972A8400DCF068 /* ProfilesUITests.swift */; }; + F7E27CF91E97306600DCF068 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CF81E97306600DCF068 /* ViewController.swift */; }; + F7E27CFB1E97306F00DCF068 /* launch.png in Resources */ = {isa = PBXBuildFile; fileRef = F7E27CFA1E97306F00DCF068 /* launch.png */; }; + F7E27D031E97381600DCF068 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CFC1E97381600DCF068 /* BaseViewController.swift */; }; + F7E27D041E97381600DCF068 /* Cloud.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CFD1E97381600DCF068 /* Cloud.swift */; }; + F7E27D051E97381600DCF068 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CFE1E97381600DCF068 /* Constants.swift */; }; + F7E27D061E97381600DCF068 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27CFF1E97381600DCF068 /* Extensions.swift */; }; + F7E27D071E97381600DCF068 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27D001E97381600DCF068 /* Models.swift */; }; + F7E27D081E97381600DCF068 /* RealmControllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27D011E97381600DCF068 /* RealmControllers.swift */; }; + F7E27D091E97381600DCF068 /* RealmUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E27D021E97381600DCF068 /* RealmUtils.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + F7E27CD81E972A8400DCF068 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F7E27CBB1E972A8300DCF068 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F7E27CC21E972A8300DCF068; + remoteInfo = Profiles; + }; + F7E27CE31E972A8400DCF068 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F7E27CBB1E972A8300DCF068 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F7E27CC21E972A8300DCF068; + remoteInfo = Profiles; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 00E8FD7319472ABE1FA6104D /* Pods_ProfilesTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ProfilesTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1239CD5DB1F55E4E79E3E3AB /* Pods_ProfilesUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ProfilesUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 143D0E0CF4E9097472D3EEAF /* Pods_Profiles.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Profiles.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 199E7326BFC67AD91E902ED0 /* Pods-ProfilesTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProfilesTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ProfilesTests/Pods-ProfilesTests.release.xcconfig"; sourceTree = ""; }; + 1FE6CD27A2353DA97BDFD543 /* Pods-ProfilesUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProfilesUITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ProfilesUITests/Pods-ProfilesUITests.release.xcconfig"; sourceTree = ""; }; + 515E04A874A586C716ABD3A5 /* Pods-ProfilesTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProfilesTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ProfilesTests/Pods-ProfilesTests.debug.xcconfig"; sourceTree = ""; }; + 900CA4BB3001BFB6AF40B87E /* Pods-ProfilesUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ProfilesUITests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ProfilesUITests/Pods-ProfilesUITests.debug.xcconfig"; sourceTree = ""; }; + 95A41A7B18CC644A48B3DFCD /* Pods-Profiles.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Profiles.release.xcconfig"; path = "Pods/Target Support Files/Pods-Profiles/Pods-Profiles.release.xcconfig"; sourceTree = ""; }; + B6180AB0AA77DC4B2BAEFA9C /* Pods-Profiles.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Profiles.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Profiles/Pods-Profiles.debug.xcconfig"; sourceTree = ""; }; + F7E27CC31E972A8300DCF068 /* Profiles.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Profiles.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F7E27CC61E972A8300DCF068 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + F7E27CCD1E972A8300DCF068 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + F7E27CD01E972A8300DCF068 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + F7E27CD21E972A8300DCF068 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F7E27CD71E972A8400DCF068 /* ProfilesTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ProfilesTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + F7E27CDB1E972A8400DCF068 /* ProfilesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfilesTests.swift; sourceTree = ""; }; + F7E27CDD1E972A8400DCF068 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F7E27CE21E972A8400DCF068 /* ProfilesUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ProfilesUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + F7E27CE61E972A8400DCF068 /* ProfilesUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfilesUITests.swift; sourceTree = ""; }; + F7E27CE81E972A8400DCF068 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F7E27CF81E97306600DCF068 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = Sources/ViewController.swift; sourceTree = ""; }; + F7E27CFA1E97306F00DCF068 /* launch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = launch.png; path = Resources/Images/launch.png; sourceTree = ""; }; + F7E27CFC1E97381600DCF068 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BaseViewController.swift; path = Sources/BaseViewController.swift; sourceTree = ""; }; + F7E27CFD1E97381600DCF068 /* Cloud.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Cloud.swift; path = Sources/Cloud.swift; sourceTree = ""; }; + F7E27CFE1E97381600DCF068 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = Sources/Constants.swift; sourceTree = ""; }; + F7E27CFF1E97381600DCF068 /* Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Extensions.swift; path = Sources/Extensions.swift; sourceTree = ""; }; + F7E27D001E97381600DCF068 /* Models.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Models.swift; path = Sources/Models.swift; sourceTree = ""; }; + F7E27D011E97381600DCF068 /* RealmControllers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RealmControllers.swift; path = Sources/RealmControllers.swift; sourceTree = ""; }; + F7E27D021E97381600DCF068 /* RealmUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RealmUtils.swift; path = Sources/RealmUtils.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + F7E27CC01E972A8300DCF068 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 36D60B361CB7A4AB78DC304C /* Pods_Profiles.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E27CD41E972A8400DCF068 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 00941F90BFB33EF3610A9AB4 /* Pods_ProfilesTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E27CDF1E972A8400DCF068 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F07FFD088BE64130D0AC0D49 /* Pods_ProfilesUITests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 58A514DB97EAE6BE33BD60B9 /* Pods */ = { + isa = PBXGroup; + children = ( + B6180AB0AA77DC4B2BAEFA9C /* Pods-Profiles.debug.xcconfig */, + 95A41A7B18CC644A48B3DFCD /* Pods-Profiles.release.xcconfig */, + 515E04A874A586C716ABD3A5 /* Pods-ProfilesTests.debug.xcconfig */, + 199E7326BFC67AD91E902ED0 /* Pods-ProfilesTests.release.xcconfig */, + 900CA4BB3001BFB6AF40B87E /* Pods-ProfilesUITests.debug.xcconfig */, + 1FE6CD27A2353DA97BDFD543 /* Pods-ProfilesUITests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + D3960E95356908532DAD8C2C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 143D0E0CF4E9097472D3EEAF /* Pods_Profiles.framework */, + 00E8FD7319472ABE1FA6104D /* Pods_ProfilesTests.framework */, + 1239CD5DB1F55E4E79E3E3AB /* Pods_ProfilesUITests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + F7E27CBA1E972A8300DCF068 = { + isa = PBXGroup; + children = ( + F7E27CC51E972A8300DCF068 /* Profiles */, + F7E27CDA1E972A8400DCF068 /* ProfilesTests */, + F7E27CE51E972A8400DCF068 /* ProfilesUITests */, + F7E27CC41E972A8300DCF068 /* Products */, + 58A514DB97EAE6BE33BD60B9 /* Pods */, + D3960E95356908532DAD8C2C /* Frameworks */, + ); + sourceTree = ""; + }; + F7E27CC41E972A8300DCF068 /* Products */ = { + isa = PBXGroup; + children = ( + F7E27CC31E972A8300DCF068 /* Profiles.app */, + F7E27CD71E972A8400DCF068 /* ProfilesTests.xctest */, + F7E27CE21E972A8400DCF068 /* ProfilesUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + F7E27CC51E972A8300DCF068 /* Profiles */ = { + isa = PBXGroup; + children = ( + F7E27CC61E972A8300DCF068 /* AppDelegate.swift */, + F7E27CCD1E972A8300DCF068 /* Assets.xcassets */, + F7E27CF61E972F8200DCF068 /* Base.lproj */, + F7E27CD21E972A8300DCF068 /* Info.plist */, + F7E27CF41E972F6F00DCF068 /* Resources */, + F7E27CF51E972F7700DCF068 /* Sources */, + ); + path = Profiles; + sourceTree = ""; + }; + F7E27CDA1E972A8400DCF068 /* ProfilesTests */ = { + isa = PBXGroup; + children = ( + F7E27CDD1E972A8400DCF068 /* Info.plist */, + F7E27CDB1E972A8400DCF068 /* ProfilesTests.swift */, + ); + path = ProfilesTests; + sourceTree = ""; + }; + F7E27CE51E972A8400DCF068 /* ProfilesUITests */ = { + isa = PBXGroup; + children = ( + F7E27CE81E972A8400DCF068 /* Info.plist */, + F7E27CE61E972A8400DCF068 /* ProfilesUITests.swift */, + ); + path = ProfilesUITests; + sourceTree = ""; + }; + F7E27CF41E972F6F00DCF068 /* Resources */ = { + isa = PBXGroup; + children = ( + F7E27CF71E97300C00DCF068 /* Images */, + ); + name = Resources; + sourceTree = ""; + }; + F7E27CF51E972F7700DCF068 /* Sources */ = { + isa = PBXGroup; + children = ( + F7E27CFC1E97381600DCF068 /* BaseViewController.swift */, + F7E27CFD1E97381600DCF068 /* Cloud.swift */, + F7E27CFE1E97381600DCF068 /* Constants.swift */, + F7E27CFF1E97381600DCF068 /* Extensions.swift */, + F7E27D001E97381600DCF068 /* Models.swift */, + F7E27D011E97381600DCF068 /* RealmControllers.swift */, + F7E27D021E97381600DCF068 /* RealmUtils.swift */, + F7E27CF81E97306600DCF068 /* ViewController.swift */, + ); + name = Sources; + sourceTree = ""; + }; + F7E27CF61E972F8200DCF068 /* Base.lproj */ = { + isa = PBXGroup; + children = ( + F7E27CCF1E972A8300DCF068 /* LaunchScreen.storyboard */, + ); + name = Base.lproj; + sourceTree = ""; + }; + F7E27CF71E97300C00DCF068 /* Images */ = { + isa = PBXGroup; + children = ( + F7E27CFA1E97306F00DCF068 /* launch.png */, + ); + name = Images; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + F7E27CC21E972A8300DCF068 /* Profiles */ = { + isa = PBXNativeTarget; + buildConfigurationList = F7E27CEB1E972A8400DCF068 /* Build configuration list for PBXNativeTarget "Profiles" */; + buildPhases = ( + C9992E36329CCCF9C096A7A5 /* [CP] Check Pods Manifest.lock */, + F7E27CBF1E972A8300DCF068 /* Sources */, + F7E27CC01E972A8300DCF068 /* Frameworks */, + F7E27CC11E972A8300DCF068 /* Resources */, + B091E3E85383B6CBE3B64481 /* [CP] Embed Pods Frameworks */, + D346D14B5C4E5F4E373872A6 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Profiles; + productName = Profiles; + productReference = F7E27CC31E972A8300DCF068 /* Profiles.app */; + productType = "com.apple.product-type.application"; + }; + F7E27CD61E972A8400DCF068 /* ProfilesTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F7E27CEE1E972A8400DCF068 /* Build configuration list for PBXNativeTarget "ProfilesTests" */; + buildPhases = ( + 0EBF862000F1DD4CB583703D /* [CP] Check Pods Manifest.lock */, + F7E27CD31E972A8400DCF068 /* Sources */, + F7E27CD41E972A8400DCF068 /* Frameworks */, + F7E27CD51E972A8400DCF068 /* Resources */, + D3813286387F70DAA3E477ED /* [CP] Embed Pods Frameworks */, + 12A215A2EC5BCABD1CAA01D8 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + F7E27CD91E972A8400DCF068 /* PBXTargetDependency */, + ); + name = ProfilesTests; + productName = ProfilesTests; + productReference = F7E27CD71E972A8400DCF068 /* ProfilesTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + F7E27CE11E972A8400DCF068 /* ProfilesUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = F7E27CF11E972A8400DCF068 /* Build configuration list for PBXNativeTarget "ProfilesUITests" */; + buildPhases = ( + 44CDE3C12C08F7D9B847B2F3 /* [CP] Check Pods Manifest.lock */, + F7E27CDE1E972A8400DCF068 /* Sources */, + F7E27CDF1E972A8400DCF068 /* Frameworks */, + F7E27CE01E972A8400DCF068 /* Resources */, + 27F4CF6C1A7D52AF38C657AD /* [CP] Embed Pods Frameworks */, + EC245955247F9CC4AD5A18D8 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + F7E27CE41E972A8400DCF068 /* PBXTargetDependency */, + ); + name = ProfilesUITests; + productName = ProfilesUITests; + productReference = F7E27CE21E972A8400DCF068 /* ProfilesUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + F7E27CBB1E972A8300DCF068 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0830; + ORGANIZATIONNAME = "Andrew Gerst"; + TargetAttributes = { + F7E27CC21E972A8300DCF068 = { + CreatedOnToolsVersion = 8.3; + DevelopmentTeam = VLF9HQZ98F; + ProvisioningStyle = Automatic; + }; + F7E27CD61E972A8400DCF068 = { + CreatedOnToolsVersion = 8.3; + DevelopmentTeam = VLF9HQZ98F; + ProvisioningStyle = Automatic; + TestTargetID = F7E27CC21E972A8300DCF068; + }; + F7E27CE11E972A8400DCF068 = { + CreatedOnToolsVersion = 8.3; + DevelopmentTeam = VLF9HQZ98F; + ProvisioningStyle = Automatic; + TestTargetID = F7E27CC21E972A8300DCF068; + }; + }; + }; + buildConfigurationList = F7E27CBE1E972A8300DCF068 /* Build configuration list for PBXProject "Profiles" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = F7E27CBA1E972A8300DCF068; + productRefGroup = F7E27CC41E972A8300DCF068 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F7E27CC21E972A8300DCF068 /* Profiles */, + F7E27CD61E972A8400DCF068 /* ProfilesTests */, + F7E27CE11E972A8400DCF068 /* ProfilesUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + F7E27CC11E972A8300DCF068 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F7E27CFB1E97306F00DCF068 /* launch.png in Resources */, + F7E27CD11E972A8300DCF068 /* LaunchScreen.storyboard in Resources */, + F7E27CCE1E972A8300DCF068 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E27CD51E972A8400DCF068 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E27CE01E972A8400DCF068 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0EBF862000F1DD4CB583703D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] 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 # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 12A215A2EC5BCABD1CAA01D8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ProfilesTests/Pods-ProfilesTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 27F4CF6C1A7D52AF38C657AD /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ProfilesUITests/Pods-ProfilesUITests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 44CDE3C12C08F7D9B847B2F3 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] 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 # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + B091E3E85383B6CBE3B64481 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Profiles/Pods-Profiles-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C9992E36329CCCF9C096A7A5 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] 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 # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + D346D14B5C4E5F4E373872A6 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Profiles/Pods-Profiles-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + D3813286387F70DAA3E477ED /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ProfilesTests/Pods-ProfilesTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EC245955247F9CC4AD5A18D8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ProfilesUITests/Pods-ProfilesUITests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + F7E27CBF1E972A8300DCF068 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F7E27D051E97381600DCF068 /* Constants.swift in Sources */, + F7E27D081E97381600DCF068 /* RealmControllers.swift in Sources */, + F7E27D061E97381600DCF068 /* Extensions.swift in Sources */, + F7E27CF91E97306600DCF068 /* ViewController.swift in Sources */, + F7E27D091E97381600DCF068 /* RealmUtils.swift in Sources */, + F7E27D041E97381600DCF068 /* Cloud.swift in Sources */, + F7E27CC71E972A8300DCF068 /* AppDelegate.swift in Sources */, + F7E27D031E97381600DCF068 /* BaseViewController.swift in Sources */, + F7E27D071E97381600DCF068 /* Models.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E27CD31E972A8400DCF068 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F7E27CDC1E972A8400DCF068 /* ProfilesTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E27CDE1E972A8400DCF068 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F7E27CE71E972A8400DCF068 /* ProfilesUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + F7E27CD91E972A8400DCF068 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F7E27CC21E972A8300DCF068 /* Profiles */; + targetProxy = F7E27CD81E972A8400DCF068 /* PBXContainerItemProxy */; + }; + F7E27CE41E972A8400DCF068 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F7E27CC21E972A8300DCF068 /* Profiles */; + targetProxy = F7E27CE31E972A8400DCF068 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + F7E27CCF1E972A8300DCF068 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + F7E27CD01E972A8300DCF068 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + F7E27CE91E972A8400DCF068 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + 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_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + 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 = 10.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F7E27CEA1E972A8400DCF068 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + 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_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + 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 = 10.3; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + F7E27CEC1E972A8400DCF068 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B6180AB0AA77DC4B2BAEFA9C /* Pods-Profiles.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = VLF9HQZ98F; + INFOPLIST_FILE = Profiles/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = hnswave.Profiles; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + F7E27CED1E972A8400DCF068 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 95A41A7B18CC644A48B3DFCD /* Pods-Profiles.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = VLF9HQZ98F; + INFOPLIST_FILE = Profiles/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = hnswave.Profiles; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + F7E27CEF1E972A8400DCF068 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 515E04A874A586C716ABD3A5 /* Pods-ProfilesTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = VLF9HQZ98F; + INFOPLIST_FILE = ProfilesTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = hnswave.ProfilesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Profiles.app/Profiles"; + }; + name = Debug; + }; + F7E27CF01E972A8400DCF068 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 199E7326BFC67AD91E902ED0 /* Pods-ProfilesTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = VLF9HQZ98F; + INFOPLIST_FILE = ProfilesTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = hnswave.ProfilesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Profiles.app/Profiles"; + }; + name = Release; + }; + F7E27CF21E972A8400DCF068 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 900CA4BB3001BFB6AF40B87E /* Pods-ProfilesUITests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + DEVELOPMENT_TEAM = VLF9HQZ98F; + INFOPLIST_FILE = ProfilesUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = hnswave.ProfilesUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_TARGET_NAME = Profiles; + }; + name = Debug; + }; + F7E27CF31E972A8400DCF068 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1FE6CD27A2353DA97BDFD543 /* Pods-ProfilesUITests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + DEVELOPMENT_TEAM = VLF9HQZ98F; + INFOPLIST_FILE = ProfilesUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = hnswave.ProfilesUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_TARGET_NAME = Profiles; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + F7E27CBE1E972A8300DCF068 /* Build configuration list for PBXProject "Profiles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F7E27CE91E972A8400DCF068 /* Debug */, + F7E27CEA1E972A8400DCF068 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F7E27CEB1E972A8400DCF068 /* Build configuration list for PBXNativeTarget "Profiles" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F7E27CEC1E972A8400DCF068 /* Debug */, + F7E27CED1E972A8400DCF068 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F7E27CEE1E972A8400DCF068 /* Build configuration list for PBXNativeTarget "ProfilesTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F7E27CEF1E972A8400DCF068 /* Debug */, + F7E27CF01E972A8400DCF068 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F7E27CF11E972A8400DCF068 /* Build configuration list for PBXNativeTarget "ProfilesUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F7E27CF21E972A8400DCF068 /* Debug */, + F7E27CF31E972A8400DCF068 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = F7E27CBB1E972A8300DCF068 /* Project object */; +} diff --git a/Profiles/Profiles.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Profiles/Profiles.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..bf01138 --- /dev/null +++ b/Profiles/Profiles.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Profiles/Profiles.xcworkspace/contents.xcworkspacedata b/Profiles/Profiles.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..9336de2 --- /dev/null +++ b/Profiles/Profiles.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Profiles/Profiles/AppDelegate.swift b/Profiles/Profiles/AppDelegate.swift new file mode 100644 index 0000000..9ce5951 --- /dev/null +++ b/Profiles/Profiles/AppDelegate.swift @@ -0,0 +1,37 @@ +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? = UIWindow(frame: UIScreen.main.bounds) + let rootViewController = ViewController() + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + setRootViewController() + return true + } + + func applicationWillResignActive(_ application: UIApplication) {} + + func applicationDidEnterBackground(_ application: UIApplication) {} + + func applicationWillEnterForeground(_ application: UIApplication) {} + + func applicationDidBecomeActive(_ application: UIApplication) {} + + func applicationWillTerminate(_ application: UIApplication) {} + + func setRootViewController() { + window?.rootViewController = rootViewController + window?.makeKeyAndVisible() + } + + func setRootViewController(view: UIViewController) { + window?.rootViewController = view + } + + func restoreRootViewController() { + window?.rootViewController = rootViewController + } + +} diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Contents.json b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..b5d0afb --- /dev/null +++ b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,128 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon-App-57x57@1x.png", + "scale" : "1x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon-App-57x57@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..c33e064 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..49ad45d Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..9fd604e Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..85182f8 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..40ab4bb Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..50808c8 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..49ad45d Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..ff9d9de Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..324bb8c Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000..ab6e256 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000..7c24ed5 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..324bb8c Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..918ad7b Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..ab54c57 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..80db8f2 Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0c2411a Binary files /dev/null and b/Profiles/Profiles/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/Profiles/Profiles/Base.lproj/LaunchScreen.storyboard b/Profiles/Profiles/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..7b60ad2 --- /dev/null +++ b/Profiles/Profiles/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Profiles/Profiles/Info.plist b/Profiles/Profiles/Info.plist new file mode 100644 index 0000000..0271eb5 --- /dev/null +++ b/Profiles/Profiles/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UIRequiresFullScreen + + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Profiles/Profiles/Resources/Images/launch.png b/Profiles/Profiles/Resources/Images/launch.png new file mode 100644 index 0000000..d4e1f27 Binary files /dev/null and b/Profiles/Profiles/Resources/Images/launch.png differ diff --git a/Profiles/Profiles/Sources/BaseViewController.swift b/Profiles/Profiles/Sources/BaseViewController.swift new file mode 100644 index 0000000..104168f --- /dev/null +++ b/Profiles/Profiles/Sources/BaseViewController.swift @@ -0,0 +1,13 @@ +import UIKit + +class BaseViewController: UIViewController { + + var app: AppDelegate { + return UIApplication.shared.delegate as! AppDelegate + } + + override var prefersStatusBarHidden: Bool { + return true + } + +} diff --git a/Profiles/Profiles/Sources/Cloud.swift b/Profiles/Profiles/Sources/Cloud.swift new file mode 100644 index 0000000..e7b949f --- /dev/null +++ b/Profiles/Profiles/Sources/Cloud.swift @@ -0,0 +1,43 @@ +import Alamofire +import AlamofireObjectMapper +import PromiseKit + +class CloudUtils { + + static let basedomain = "hnswave.co" + static let baseurl = "http://\(basedomain):8003" + +} + +class Networking { + + static let manager: SessionManager = { + let serverTrustPolicies: [String: ServerTrustPolicy] = [ + CloudUtils.basedomain: .disableEvaluation + ] + let configuration = URLSessionConfiguration.default + configuration.httpAdditionalHeaders = SessionManager.defaultHTTPHeaders + return SessionManager(configuration: configuration, serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)) + }() + +} + +class Cloud { + + class func searchPodcasts(keywords: String) -> Promise<[PodcastSearchResult]> { + return Promise { fulfill, reject in + _ = Networking.manager.request("\(CloudUtils.baseurl)/search/\(keywords)", method: .get).validate().responseArray { (response: DataResponse<[PodcastSearchResult]>) in + if response.result.isSuccess { + if let results = response.result.value { + fulfill(results) + } else { + reject(PromiseError.invalidResults()) + } + } else { + reject(PromiseError.apiFailure(response.result.error)) + } + } + } + } + +} diff --git a/Profiles/Profiles/Sources/Constants.swift b/Profiles/Profiles/Sources/Constants.swift new file mode 100644 index 0000000..4a308d5 --- /dev/null +++ b/Profiles/Profiles/Sources/Constants.swift @@ -0,0 +1,10 @@ +import Material + +struct AppColor { + static let base = Color.blue.darken1 +} + +enum PromiseError: Error { + case apiFailure(Error?) + case invalidResults() +} diff --git a/Profiles/Profiles/Sources/Extensions.swift b/Profiles/Profiles/Sources/Extensions.swift new file mode 100644 index 0000000..200c429 --- /dev/null +++ b/Profiles/Profiles/Sources/Extensions.swift @@ -0,0 +1,24 @@ +import SwiftyUserDefaults + +extension DefaultsKeys {} + +extension Int { + var isEmpty: Bool { + return self == 0 + } +} + +extension String { + var isNotEmpty: Bool { + return !self.isEmpty + } +} + +extension UITableViewCell { + func removeMargins() { + self.layoutMargins = UIEdgeInsets.zero + self.preservesSuperviewLayoutMargins = false + self.selectionStyle = .none + self.separatorInset = UIEdgeInsets.zero + } +} diff --git a/Profiles/Profiles/Sources/Models.swift b/Profiles/Profiles/Sources/Models.swift new file mode 100644 index 0000000..d4191b5 --- /dev/null +++ b/Profiles/Profiles/Sources/Models.swift @@ -0,0 +1,14 @@ +import ObjectMapper +import RealmSwift + +class PodcastSearchResult: Mappable { + var title: String? + var url: String? + + required init?(map: Map) {} + + func mapping(map: Map) { + title <- map["title"] + url <- map["url"] + } +} diff --git a/Profiles/Profiles/Sources/RealmControllers.swift b/Profiles/Profiles/Sources/RealmControllers.swift new file mode 100644 index 0000000..0ec45c1 --- /dev/null +++ b/Profiles/Profiles/Sources/RealmControllers.swift @@ -0,0 +1,13 @@ +import RealmSwift + +class PodcastsController { + let realm: Realm! + + init(realm: Realm) { + self.realm = realm + } + + convenience init() { + self.init(realm: try! Realm()) + } +} diff --git a/Profiles/Profiles/Sources/RealmUtils.swift b/Profiles/Profiles/Sources/RealmUtils.swift new file mode 100644 index 0000000..1c48556 --- /dev/null +++ b/Profiles/Profiles/Sources/RealmUtils.swift @@ -0,0 +1,18 @@ +import RealmSwift + +class RealmUtils { + + class func logDebugInfo() { + let realm = try! Realm() + print("realm => \(realm)") + print("realm path => \(realm.configuration.fileURL!.absoluteString)") + } + + class func deleteAllData() { + let realm = try! Realm() + try! realm.write { + realm.deleteAll() + } + } + +} diff --git a/Profiles/Profiles/Sources/ViewController.swift b/Profiles/Profiles/Sources/ViewController.swift new file mode 100644 index 0000000..13ee1ac --- /dev/null +++ b/Profiles/Profiles/Sources/ViewController.swift @@ -0,0 +1,43 @@ +import UIKit + +class ViewController: BaseViewController { + + // fileprivate var toolbar: Toolbar! + // fileprivate var searchBar: SearchBar! + // fileprivate var toolbarBackButton: IconButton! + // fileprivate var toolbarSettingsButton: IconButton! + // var bottomTabBar: BottomTabBar! + // let realm = try! Realm() + // let tableView = UITableView() + // var appName: String { + // return Bundle.main.infoDictionary!["CFBundleName"] as! String + // } + + override func viewDidLoad() { + super.viewDidLoad() + RealmUtils.logDebugInfo() + setupInterface() + } + + func setupInterface() { + view.backgroundColor = .white + // createToolbar() + // createSearchBar() + // showToolbarOrSearchBar() + // createTableView() + // createTabBar() + // addContraintsToViews() + search() + } + + func search() { + _ = Cloud.searchPodcasts(keywords: "Comedy").then { podcasts -> Void in + for podcast in podcasts { + print("\(podcast.title!) - \(podcast.url!)") + } + }.catch { error in + print("error => \(error)") + } + } + +} diff --git a/Profiles/ProfilesTests/Info.plist b/Profiles/ProfilesTests/Info.plist new file mode 100644 index 0000000..6c6c23c --- /dev/null +++ b/Profiles/ProfilesTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Profiles/ProfilesTests/ProfilesTests.swift b/Profiles/ProfilesTests/ProfilesTests.swift new file mode 100644 index 0000000..193320b --- /dev/null +++ b/Profiles/ProfilesTests/ProfilesTests.swift @@ -0,0 +1,21 @@ +import XCTest + +@testable import Profiles + +class ProfilesTests: XCTestCase { + + override func setUp() { + super.setUp() + } + + override func tearDown() { + super.tearDown() + } + + func testExample() {} + + func testPerformanceExample() { + self.measure {} + } + +} diff --git a/Profiles/ProfilesUITests/Info.plist b/Profiles/ProfilesUITests/Info.plist new file mode 100644 index 0000000..6c6c23c --- /dev/null +++ b/Profiles/ProfilesUITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Profiles/ProfilesUITests/ProfilesUITests.swift b/Profiles/ProfilesUITests/ProfilesUITests.swift new file mode 100644 index 0000000..1c5398c --- /dev/null +++ b/Profiles/ProfilesUITests/ProfilesUITests.swift @@ -0,0 +1,17 @@ +import XCTest + +class ProfilesUITests: XCTestCase { + + override func setUp() { + super.setUp() + continueAfterFailure = false + XCUIApplication().launch() + } + + override func tearDown() { + super.tearDown() + } + + func testExample() {} + +} diff --git a/Profiles/TODO.txt b/Profiles/TODO.txt new file mode 100644 index 0000000..e69de29