diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f8cbc11 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.xcuserstate diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..6c0f2b4 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,81 @@ +{ + "images" : [ + { + "size" : "24x24", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "38mm" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "42mm" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "38mm" + }, + { + "size" : "44x44", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "40mm" + }, + { + "size" : "50x50", + "idiom" : "watch", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "44mm" + }, + { + "size" : "86x86", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "38mm" + }, + { + "size" : "98x98", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "42mm" + }, + { + "size" : "108x108", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "44mm" + }, + { + "idiom" : "watch-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Assets.xcassets/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard new file mode 100644 index 0000000..365e83e --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Info.plist b/SynchronyFinancial/SynchronyFinancial WatchKit App/Info.plist new file mode 100644 index 0000000..c9ec8f9 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + SynchronyFinancial WatchKit App + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + WKCompanionAppBundleIdentifier + alanmaynard.SynchronyFinancial + WKWatchKitApp + + + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json new file mode 100644 index 0000000..1571c7e --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json @@ -0,0 +1,48 @@ +{ + "assets" : [ + { + "idiom" : "watch", + "filename" : "Circular.imageset", + "role" : "circular" + }, + { + "idiom" : "watch", + "filename" : "Extra Large.imageset", + "role" : "extra-large" + }, + { + "idiom" : "watch", + "filename" : "Graphic Bezel.imageset", + "role" : "graphic-bezel" + }, + { + "idiom" : "watch", + "filename" : "Graphic Circular.imageset", + "role" : "graphic-circular" + }, + { + "idiom" : "watch", + "filename" : "Graphic Corner.imageset", + "role" : "graphic-corner" + }, + { + "idiom" : "watch", + "filename" : "Graphic Large Rectangular.imageset", + "role" : "graphic-large-rectangular" + }, + { + "idiom" : "watch", + "filename" : "Modular.imageset", + "role" : "modular" + }, + { + "idiom" : "watch", + "filename" : "Utilitarian.imageset", + "role" : "utilitarian" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json new file mode 100644 index 0000000..f84499b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Contents.json b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/ExtensionDelegate.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/ExtensionDelegate.swift new file mode 100644 index 0000000..eed655b --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/ExtensionDelegate.swift @@ -0,0 +1,56 @@ +// +// ExtensionDelegate.swift +// SynchronyFinancial WatchKit Extension +// +// Created by Alan Maynard on 11/15/18. +// Copyright © 2018 Alan Maynard. All rights reserved. +// + +import WatchKit + +class ExtensionDelegate: NSObject, WKExtensionDelegate { + + func applicationDidFinishLaunching() { + // Perform any final initialization of your application. + } + + func applicationDidBecomeActive() { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillResignActive() { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, etc. + } + + func handle(_ backgroundTasks: Set) { + // Sent when the system needs to launch the application in the background to process tasks. Tasks arrive in a set, so loop through and process each one. + for task in backgroundTasks { + // Use a switch statement to check the task type + switch task { + case let backgroundTask as WKApplicationRefreshBackgroundTask: + // Be sure to complete the background task once you’re done. + backgroundTask.setTaskCompletedWithSnapshot(false) + case let snapshotTask as WKSnapshotRefreshBackgroundTask: + // Snapshot tasks have a unique completion call, make sure to set your expiration date + snapshotTask.setTaskCompleted(restoredDefaultState: true, estimatedSnapshotExpiration: Date.distantFuture, userInfo: nil) + case let connectivityTask as WKWatchConnectivityRefreshBackgroundTask: + // Be sure to complete the connectivity task once you’re done. + connectivityTask.setTaskCompletedWithSnapshot(false) + case let urlSessionTask as WKURLSessionRefreshBackgroundTask: + // Be sure to complete the URL session task once you’re done. + urlSessionTask.setTaskCompletedWithSnapshot(false) + case let relevantShortcutTask as WKRelevantShortcutRefreshBackgroundTask: + // Be sure to complete the relevant-shortcut task once you're done. + relevantShortcutTask.setTaskCompletedWithSnapshot(false) + case let intentDidRunTask as WKIntentDidRunRefreshBackgroundTask: + // Be sure to complete the intent-did-run task once you're done. + intentDidRunTask.setTaskCompletedWithSnapshot(false) + default: + // make sure to complete unhandled task types + task.setTaskCompletedWithSnapshot(false) + } + } + } + +} diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Info.plist b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Info.plist new file mode 100644 index 0000000..1d6707e --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + SynchronyFinancial WatchKit Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + XPC! + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + NSExtension + + NSExtensionAttributes + + WKAppBundleIdentifier + alanmaynard.SynchronyFinancial.watchkitapp + + NSExtensionPointIdentifier + com.apple.watchkit + + WKExtensionDelegateClassName + $(PRODUCT_MODULE_NAME).ExtensionDelegate + + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/InterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/InterfaceController.swift new file mode 100644 index 0000000..3b91734 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/InterfaceController.swift @@ -0,0 +1,31 @@ +// +// InterfaceController.swift +// SynchronyFinancial WatchKit Extension +// +// Created by Alan Maynard on 11/15/18. +// Copyright © 2018 Alan Maynard. All rights reserved. +// + +import WatchKit +import Foundation + + +class InterfaceController: WKInterfaceController { + + override func awake(withContext context: Any?) { + super.awake(withContext: context) + + // Configure interface objects here. + } + + override func willActivate() { + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } + +} diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/NotificationController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/NotificationController.swift new file mode 100644 index 0000000..e29845a --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/NotificationController.swift @@ -0,0 +1,38 @@ +// +// NotificationController.swift +// SynchronyFinancial WatchKit Extension +// +// Created by Alan Maynard on 11/15/18. +// Copyright © 2018 Alan Maynard. All rights reserved. +// + +import WatchKit +import Foundation +import UserNotifications + + +class NotificationController: WKUserNotificationInterfaceController { + + override init() { + // Initialize variables here. + super.init() + + // Configure interface objects here. + } + + override func willActivate() { + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } + + override func didReceive(_ notification: UNNotification) { + // This method is called when a notification needs to be presented. + // Implement it if you use a dynamic notification interface. + // Populate your dynamic notification interface as quickly as possible. + } +} diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PushNotificationPayload.apns b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PushNotificationPayload.apns new file mode 100644 index 0000000..5ac5526 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PushNotificationPayload.apns @@ -0,0 +1,20 @@ +{ + "aps": { + "alert": { + "body": "Test message", + "title": "Optional title", + "subtitle": "Optional subtitle" + }, + "category": "myCategory", + "thread-id":"5280" + }, + + "WatchKit Simulator Actions": [ + { + "title": "First Button", + "identifier": "firstButtonAction" + } + ], + + "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App." +} diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f4be485 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj @@ -0,0 +1,628 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 67BAC269219E254700713FEF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BAC268219E254700713FEF /* AppDelegate.swift */; }; + 67BAC26B219E254700713FEF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BAC26A219E254700713FEF /* ViewController.swift */; }; + 67BAC26E219E254700713FEF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 67BAC26C219E254700713FEF /* Main.storyboard */; }; + 67BAC270219E254800713FEF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 67BAC26F219E254800713FEF /* Assets.xcassets */; }; + 67BAC273219E254800713FEF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 67BAC271219E254800713FEF /* LaunchScreen.storyboard */; }; + 67BAC278219E254800713FEF /* SynchronyFinancial WatchKit App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 67BAC277219E254800713FEF /* SynchronyFinancial WatchKit App.app */; }; + 67BAC27E219E254800713FEF /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 67BAC27C219E254800713FEF /* Interface.storyboard */; }; + 67BAC280219E254800713FEF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 67BAC27F219E254800713FEF /* Assets.xcassets */; }; + 67BAC287219E254900713FEF /* SynchronyFinancial WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 67BAC286219E254900713FEF /* SynchronyFinancial WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 67BAC28C219E254900713FEF /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BAC28B219E254900713FEF /* InterfaceController.swift */; }; + 67BAC28E219E254900713FEF /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BAC28D219E254900713FEF /* ExtensionDelegate.swift */; }; + 67BAC290219E254900713FEF /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67BAC28F219E254900713FEF /* NotificationController.swift */; }; + 67BAC292219E254900713FEF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 67BAC291219E254900713FEF /* Assets.xcassets */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 67BAC279219E254800713FEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67BAC25D219E254700713FEF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 67BAC276219E254800713FEF; + remoteInfo = "SynchronyFinancial WatchKit App"; + }; + 67BAC288219E254900713FEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 67BAC25D219E254700713FEF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 67BAC285219E254900713FEF; + remoteInfo = "SynchronyFinancial WatchKit Extension"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 67BAC29A219E254900713FEF /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 67BAC287219E254900713FEF /* SynchronyFinancial WatchKit Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 67BAC29E219E254900713FEF /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 67BAC278219E254800713FEF /* SynchronyFinancial WatchKit App.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 67BAC265219E254700713FEF /* SynchronyFinancial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SynchronyFinancial.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 67BAC268219E254700713FEF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 67BAC26A219E254700713FEF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 67BAC26D219E254700713FEF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 67BAC26F219E254800713FEF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 67BAC272219E254800713FEF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 67BAC274219E254800713FEF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 67BAC277219E254800713FEF /* SynchronyFinancial WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SynchronyFinancial WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 67BAC27D219E254800713FEF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; + 67BAC27F219E254800713FEF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 67BAC281219E254800713FEF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 67BAC286219E254900713FEF /* SynchronyFinancial WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "SynchronyFinancial WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 67BAC28B219E254900713FEF /* InterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceController.swift; sourceTree = ""; }; + 67BAC28D219E254900713FEF /* ExtensionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = ""; }; + 67BAC28F219E254900713FEF /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; + 67BAC291219E254900713FEF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 67BAC293219E254900713FEF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 67BAC294219E254900713FEF /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 67BAC262219E254700713FEF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 67BAC283219E254900713FEF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 67BAC25C219E254700713FEF = { + isa = PBXGroup; + children = ( + 67BAC267219E254700713FEF /* SynchronyFinancial */, + 67BAC27B219E254800713FEF /* SynchronyFinancial WatchKit App */, + 67BAC28A219E254900713FEF /* SynchronyFinancial WatchKit Extension */, + 67BAC266219E254700713FEF /* Products */, + ); + sourceTree = ""; + }; + 67BAC266219E254700713FEF /* Products */ = { + isa = PBXGroup; + children = ( + 67BAC265219E254700713FEF /* SynchronyFinancial.app */, + 67BAC277219E254800713FEF /* SynchronyFinancial WatchKit App.app */, + 67BAC286219E254900713FEF /* SynchronyFinancial WatchKit Extension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 67BAC267219E254700713FEF /* SynchronyFinancial */ = { + isa = PBXGroup; + children = ( + 67BAC268219E254700713FEF /* AppDelegate.swift */, + 67BAC26A219E254700713FEF /* ViewController.swift */, + 67BAC26C219E254700713FEF /* Main.storyboard */, + 67BAC26F219E254800713FEF /* Assets.xcassets */, + 67BAC271219E254800713FEF /* LaunchScreen.storyboard */, + 67BAC274219E254800713FEF /* Info.plist */, + ); + path = SynchronyFinancial; + sourceTree = ""; + }; + 67BAC27B219E254800713FEF /* SynchronyFinancial WatchKit App */ = { + isa = PBXGroup; + children = ( + 67BAC27C219E254800713FEF /* Interface.storyboard */, + 67BAC27F219E254800713FEF /* Assets.xcassets */, + 67BAC281219E254800713FEF /* Info.plist */, + ); + path = "SynchronyFinancial WatchKit App"; + sourceTree = ""; + }; + 67BAC28A219E254900713FEF /* SynchronyFinancial WatchKit Extension */ = { + isa = PBXGroup; + children = ( + 67BAC28B219E254900713FEF /* InterfaceController.swift */, + 67BAC28D219E254900713FEF /* ExtensionDelegate.swift */, + 67BAC28F219E254900713FEF /* NotificationController.swift */, + 67BAC291219E254900713FEF /* Assets.xcassets */, + 67BAC293219E254900713FEF /* Info.plist */, + 67BAC294219E254900713FEF /* PushNotificationPayload.apns */, + ); + path = "SynchronyFinancial WatchKit Extension"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 67BAC264219E254700713FEF /* SynchronyFinancial */ = { + isa = PBXNativeTarget; + buildConfigurationList = 67BAC29F219E254900713FEF /* Build configuration list for PBXNativeTarget "SynchronyFinancial" */; + buildPhases = ( + 67BAC261219E254700713FEF /* Sources */, + 67BAC262219E254700713FEF /* Frameworks */, + 67BAC263219E254700713FEF /* Resources */, + 67BAC29E219E254900713FEF /* Embed Watch Content */, + ); + buildRules = ( + ); + dependencies = ( + 67BAC27A219E254800713FEF /* PBXTargetDependency */, + ); + name = SynchronyFinancial; + productName = SynchronyFinancial; + productReference = 67BAC265219E254700713FEF /* SynchronyFinancial.app */; + productType = "com.apple.product-type.application"; + }; + 67BAC276219E254800713FEF /* SynchronyFinancial WatchKit App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 67BAC29B219E254900713FEF /* Build configuration list for PBXNativeTarget "SynchronyFinancial WatchKit App" */; + buildPhases = ( + 67BAC275219E254800713FEF /* Resources */, + 67BAC29A219E254900713FEF /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 67BAC289219E254900713FEF /* PBXTargetDependency */, + ); + name = "SynchronyFinancial WatchKit App"; + productName = "SynchronyFinancial WatchKit App"; + productReference = 67BAC277219E254800713FEF /* SynchronyFinancial WatchKit App.app */; + productType = "com.apple.product-type.application.watchapp2"; + }; + 67BAC285219E254900713FEF /* SynchronyFinancial WatchKit Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 67BAC297219E254900713FEF /* Build configuration list for PBXNativeTarget "SynchronyFinancial WatchKit Extension" */; + buildPhases = ( + 67BAC282219E254900713FEF /* Sources */, + 67BAC283219E254900713FEF /* Frameworks */, + 67BAC284219E254900713FEF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "SynchronyFinancial WatchKit Extension"; + productName = "SynchronyFinancial WatchKit Extension"; + productReference = 67BAC286219E254900713FEF /* SynchronyFinancial WatchKit Extension.appex */; + productType = "com.apple.product-type.watchkit2-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 67BAC25D219E254700713FEF /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1010; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = "Alan Maynard"; + TargetAttributes = { + 67BAC264219E254700713FEF = { + CreatedOnToolsVersion = 10.1; + }; + 67BAC276219E254800713FEF = { + CreatedOnToolsVersion = 10.1; + }; + 67BAC285219E254900713FEF = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = 67BAC260219E254700713FEF /* Build configuration list for PBXProject "SynchronyFinancial" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 67BAC25C219E254700713FEF; + productRefGroup = 67BAC266219E254700713FEF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 67BAC264219E254700713FEF /* SynchronyFinancial */, + 67BAC276219E254800713FEF /* SynchronyFinancial WatchKit App */, + 67BAC285219E254900713FEF /* SynchronyFinancial WatchKit Extension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 67BAC263219E254700713FEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 67BAC273219E254800713FEF /* LaunchScreen.storyboard in Resources */, + 67BAC270219E254800713FEF /* Assets.xcassets in Resources */, + 67BAC26E219E254700713FEF /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 67BAC275219E254800713FEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 67BAC280219E254800713FEF /* Assets.xcassets in Resources */, + 67BAC27E219E254800713FEF /* Interface.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 67BAC284219E254900713FEF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 67BAC292219E254900713FEF /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 67BAC261219E254700713FEF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 67BAC26B219E254700713FEF /* ViewController.swift in Sources */, + 67BAC269219E254700713FEF /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 67BAC282219E254900713FEF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 67BAC290219E254900713FEF /* NotificationController.swift in Sources */, + 67BAC28E219E254900713FEF /* ExtensionDelegate.swift in Sources */, + 67BAC28C219E254900713FEF /* InterfaceController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 67BAC27A219E254800713FEF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 67BAC276219E254800713FEF /* SynchronyFinancial WatchKit App */; + targetProxy = 67BAC279219E254800713FEF /* PBXContainerItemProxy */; + }; + 67BAC289219E254900713FEF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 67BAC285219E254900713FEF /* SynchronyFinancial WatchKit Extension */; + targetProxy = 67BAC288219E254900713FEF /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 67BAC26C219E254700713FEF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 67BAC26D219E254700713FEF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 67BAC271219E254800713FEF /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 67BAC272219E254800713FEF /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + 67BAC27C219E254800713FEF /* Interface.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 67BAC27D219E254800713FEF /* Base */, + ); + name = Interface.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 67BAC295219E254900713FEF /* 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++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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 = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 67BAC296219E254900713FEF /* 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++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "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 = gnu11; + 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 = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 67BAC298219E254900713FEF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = FBZF747TQ6; + INFOPLIST_FILE = "SynchronyFinancial WatchKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = alanmaynard.SynchronyFinancial.watchkitapp.watchkitextension; + PRODUCT_NAME = "${TARGET_NAME}"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 5.1; + }; + name = Debug; + }; + 67BAC299219E254900713FEF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = FBZF747TQ6; + INFOPLIST_FILE = "SynchronyFinancial WatchKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = alanmaynard.SynchronyFinancial.watchkitapp.watchkitextension; + PRODUCT_NAME = "${TARGET_NAME}"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 5.1; + }; + name = Release; + }; + 67BAC29C219E254900713FEF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = FBZF747TQ6; + IBSC_MODULE = SynchronyFinancial_WatchKit_Extension; + INFOPLIST_FILE = "SynchronyFinancial WatchKit App/Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = alanmaynard.SynchronyFinancial.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 5.1; + }; + name = Debug; + }; + 67BAC29D219E254900713FEF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = FBZF747TQ6; + IBSC_MODULE = SynchronyFinancial_WatchKit_Extension; + INFOPLIST_FILE = "SynchronyFinancial WatchKit App/Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = alanmaynard.SynchronyFinancial.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 5.1; + }; + name = Release; + }; + 67BAC2A0219E254900713FEF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = FBZF747TQ6; + INFOPLIST_FILE = SynchronyFinancial/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = alanmaynard.SynchronyFinancial; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 67BAC2A1219E254900713FEF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = FBZF747TQ6; + INFOPLIST_FILE = SynchronyFinancial/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = alanmaynard.SynchronyFinancial; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 67BAC260219E254700713FEF /* Build configuration list for PBXProject "SynchronyFinancial" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 67BAC295219E254900713FEF /* Debug */, + 67BAC296219E254900713FEF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 67BAC297219E254900713FEF /* Build configuration list for PBXNativeTarget "SynchronyFinancial WatchKit Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 67BAC298219E254900713FEF /* Debug */, + 67BAC299219E254900713FEF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 67BAC29B219E254900713FEF /* Build configuration list for PBXNativeTarget "SynchronyFinancial WatchKit App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 67BAC29C219E254900713FEF /* Debug */, + 67BAC29D219E254900713FEF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 67BAC29F219E254900713FEF /* Build configuration list for PBXNativeTarget "SynchronyFinancial" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 67BAC2A0219E254900713FEF /* Debug */, + 67BAC2A1219E254900713FEF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 67BAC25D219E254700713FEF /* Project object */; +} diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..f77b065 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/xcuserdata/alanmaynard.xcuserdatad/xcschemes/xcschememanagement.plist b/SynchronyFinancial/SynchronyFinancial.xcodeproj/xcuserdata/alanmaynard.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4ea6875 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/xcuserdata/alanmaynard.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + SynchronyFinancial WatchKit App (Notification).xcscheme_^#shared#^_ + + orderHint + 2 + + SynchronyFinancial WatchKit App.xcscheme_^#shared#^_ + + orderHint + 1 + + SynchronyFinancial.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/SynchronyFinancial/SynchronyFinancial/AppDelegate.swift b/SynchronyFinancial/SynchronyFinancial/AppDelegate.swift new file mode 100644 index 0000000..aa0f4af --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// SynchronyFinancial +// +// Created by Alan Maynard on 11/15/18. +// Copyright © 2018 Alan Maynard. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/SynchronyFinancial/SynchronyFinancial/Assets.xcassets/AppIcon.appiconset/Contents.json b/SynchronyFinancial/SynchronyFinancial/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "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" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial/Assets.xcassets/Contents.json b/SynchronyFinancial/SynchronyFinancial/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SynchronyFinancial/SynchronyFinancial/Base.lproj/LaunchScreen.storyboard b/SynchronyFinancial/SynchronyFinancial/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SynchronyFinancial/SynchronyFinancial/Base.lproj/Main.storyboard b/SynchronyFinancial/SynchronyFinancial/Base.lproj/Main.storyboard new file mode 100644 index 0000000..2f037a6 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SynchronyFinancial/SynchronyFinancial/Info.plist b/SynchronyFinancial/SynchronyFinancial/Info.plist new file mode 100644 index 0000000..16be3b6 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/SynchronyFinancial/SynchronyFinancial/ViewController.swift b/SynchronyFinancial/SynchronyFinancial/ViewController.swift new file mode 100644 index 0000000..d80e182 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/ViewController.swift @@ -0,0 +1,20 @@ +// +// ViewController.swift +// SynchronyFinancial +// +// Created by Alan Maynard on 11/15/18. +// Copyright © 2018 Alan Maynard. All rights reserved. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view, typically from a nib. + } + + +} +