├── .gitignore ├── .travis.yml ├── Example ├── LighterAppDelegate.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── LighterAppDelegate-Example.xcscheme ├── LighterAppDelegate.xcworkspace │ └── contents.xcworkspacedata ├── LighterAppDelegate │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── RootService.swift │ └── ViewController.swift ├── Podfile ├── Podfile.lock ├── Pods │ ├── Local Podspecs │ │ └── LighterAppDelegate.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── LighterAppDelegate.xcscheme │ └── Target Support Files │ │ ├── LighterAppDelegate │ │ ├── Info.plist │ │ ├── LighterAppDelegate-dummy.m │ │ ├── LighterAppDelegate-prefix.pch │ │ ├── LighterAppDelegate-umbrella.h │ │ ├── LighterAppDelegate.modulemap │ │ └── LighterAppDelegate.xcconfig │ │ ├── Pods-LighterAppDelegate_Example │ │ ├── Info.plist │ │ ├── Pods-LighterAppDelegate_Example-acknowledgements.markdown │ │ ├── Pods-LighterAppDelegate_Example-acknowledgements.plist │ │ ├── Pods-LighterAppDelegate_Example-dummy.m │ │ ├── Pods-LighterAppDelegate_Example-frameworks.sh │ │ ├── Pods-LighterAppDelegate_Example-resources.sh │ │ ├── Pods-LighterAppDelegate_Example-umbrella.h │ │ ├── Pods-LighterAppDelegate_Example.debug.xcconfig │ │ ├── Pods-LighterAppDelegate_Example.modulemap │ │ └── Pods-LighterAppDelegate_Example.release.xcconfig │ │ └── Pods-LighterAppDelegate_Tests │ │ ├── Info.plist │ │ ├── Pods-LighterAppDelegate_Tests-acknowledgements.markdown │ │ ├── Pods-LighterAppDelegate_Tests-acknowledgements.plist │ │ ├── Pods-LighterAppDelegate_Tests-dummy.m │ │ ├── Pods-LighterAppDelegate_Tests-frameworks.sh │ │ ├── Pods-LighterAppDelegate_Tests-resources.sh │ │ ├── Pods-LighterAppDelegate_Tests-umbrella.h │ │ ├── Pods-LighterAppDelegate_Tests.debug.xcconfig │ │ ├── Pods-LighterAppDelegate_Tests.modulemap │ │ └── Pods-LighterAppDelegate_Tests.release.xcconfig └── Tests │ ├── Info.plist │ └── Tests.swift ├── LICENSE ├── LighterAppDelegate.podspec ├── Pod ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ ├── AppDelegate │ └── LighterAppDelegate.swift │ └── Dispatcher │ ├── Dispatcher+AppExtension.swift │ ├── Dispatcher+AppStateChanges.swift │ ├── Dispatcher+AppStateRestoration.swift │ ├── Dispatcher+Continuity.swift │ ├── Dispatcher+DataInBackground.swift │ ├── Dispatcher+HealthKit.swift │ ├── Dispatcher+Interface.swift │ ├── Dispatcher+LocalNotification.swift │ ├── Dispatcher+QuickAction.swift │ ├── Dispatcher+RemoteNotification.swift │ ├── Dispatcher+SystemEvents.swift │ ├── Dispatcher+URL.swift │ ├── Dispatcher+WatchKit.swift │ └── Dispatcher.swift ├── README.md └── _Pods.xcodeproj /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # Bundler 23 | .bundle 24 | 25 | Carthage 26 | # We recommend against adding the Pods directory to your .gitignore. However 27 | # you should judge for yourself, the pros and cons are mentioned at: 28 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 29 | # 30 | # Note: if you ignore the Pods directory, make sure to uncomment 31 | # `pod install` in .travis.yml 32 | # 33 | # Pods/ 34 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * http://www.objc.io/issue-6/travis-ci.html 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | language: objective-c 6 | # cache: cocoapods 7 | # podfile: Example/Podfile 8 | # before_install: 9 | # - gem install cocoapods # Since Travis is not always on latest version 10 | # - pod install --project-directory=Example 11 | script: 12 | - set -o pipefail && xcodebuild test -workspace Example/LighterAppDelegate.xcworkspace -scheme LighterAppDelegate-Example -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO | xcpretty 13 | - pod lib lint 14 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2C24956639E810CDB14B3AE2 /* Pods_LighterAppDelegate_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E995B391B6B29913EB2645EE /* Pods_LighterAppDelegate_Example.framework */; }; 11 | 5481BB6BEF985089921B5806 /* Pods_LighterAppDelegate_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1706B2A087FC8756CB75455B /* Pods_LighterAppDelegate_Tests.framework */; }; 12 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 13 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 14 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 15 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 16 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 17 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; 18 | D27CC1C01C4961AF001EC083 /* RootService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1BF1C4961AF001EC083 /* RootService.swift */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXContainerItemProxy section */ 22 | 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { 23 | isa = PBXContainerItemProxy; 24 | containerPortal = 607FACC81AFB9204008FA782 /* Project object */; 25 | proxyType = 1; 26 | remoteGlobalIDString = 607FACCF1AFB9204008FA782; 27 | remoteInfo = LighterAppDelegate; 28 | }; 29 | /* End PBXContainerItemProxy section */ 30 | 31 | /* Begin PBXFileReference section */ 32 | 0EDE77731AF0E6D6B0071F78 /* LighterAppDelegate.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LighterAppDelegate.podspec; path = ../LighterAppDelegate.podspec; sourceTree = ""; }; 33 | 1706B2A087FC8756CB75455B /* Pods_LighterAppDelegate_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LighterAppDelegate_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 34 | 48C51FC635D4661979880F78 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 35 | 607FACD01AFB9204008FA782 /* LighterAppDelegate_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LighterAppDelegate_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 37 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 38 | 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 39 | 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 40 | 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 41 | 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 42 | 607FACE51AFB9204008FA782 /* LighterAppDelegate_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LighterAppDelegate_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44 | 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 45 | 6A50A76C7D855E36291E1D67 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 46 | 861CFE7D47210D6B77A32DD3 /* Pods-LighterAppDelegate_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LighterAppDelegate_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.debug.xcconfig"; sourceTree = ""; }; 47 | 98B475F79F0CEE9F10513809 /* Pods-LighterAppDelegate_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LighterAppDelegate_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.release.xcconfig"; sourceTree = ""; }; 48 | C7B48B4A35AAC0B6BDE8B522 /* Pods-LighterAppDelegate_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LighterAppDelegate_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.release.xcconfig"; sourceTree = ""; }; 49 | D27CC1BF1C4961AF001EC083 /* RootService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootService.swift; sourceTree = ""; }; 50 | E549994AACA16F98F3B23F3D /* Pods-LighterAppDelegate_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LighterAppDelegate_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.debug.xcconfig"; sourceTree = ""; }; 51 | E995B391B6B29913EB2645EE /* Pods_LighterAppDelegate_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LighterAppDelegate_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 52 | /* End PBXFileReference section */ 53 | 54 | /* Begin PBXFrameworksBuildPhase section */ 55 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 56 | isa = PBXFrameworksBuildPhase; 57 | buildActionMask = 2147483647; 58 | files = ( 59 | 2C24956639E810CDB14B3AE2 /* Pods_LighterAppDelegate_Example.framework in Frameworks */, 60 | ); 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 64 | isa = PBXFrameworksBuildPhase; 65 | buildActionMask = 2147483647; 66 | files = ( 67 | 5481BB6BEF985089921B5806 /* Pods_LighterAppDelegate_Tests.framework in Frameworks */, 68 | ); 69 | runOnlyForDeploymentPostprocessing = 0; 70 | }; 71 | /* End PBXFrameworksBuildPhase section */ 72 | 73 | /* Begin PBXGroup section */ 74 | 1FCAAD76AE706ECA0DC7A55E /* Pods */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | E549994AACA16F98F3B23F3D /* Pods-LighterAppDelegate_Example.debug.xcconfig */, 78 | C7B48B4A35AAC0B6BDE8B522 /* Pods-LighterAppDelegate_Example.release.xcconfig */, 79 | 861CFE7D47210D6B77A32DD3 /* Pods-LighterAppDelegate_Tests.debug.xcconfig */, 80 | 98B475F79F0CEE9F10513809 /* Pods-LighterAppDelegate_Tests.release.xcconfig */, 81 | ); 82 | name = Pods; 83 | sourceTree = ""; 84 | }; 85 | 607FACC71AFB9204008FA782 = { 86 | isa = PBXGroup; 87 | children = ( 88 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 89 | 607FACD21AFB9204008FA782 /* Example for LighterAppDelegate */, 90 | 607FACE81AFB9204008FA782 /* Tests */, 91 | 607FACD11AFB9204008FA782 /* Products */, 92 | 1FCAAD76AE706ECA0DC7A55E /* Pods */, 93 | F0B6EF2C75AFA7CB28C8BFE2 /* Frameworks */, 94 | ); 95 | sourceTree = ""; 96 | }; 97 | 607FACD11AFB9204008FA782 /* Products */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 607FACD01AFB9204008FA782 /* LighterAppDelegate_Example.app */, 101 | 607FACE51AFB9204008FA782 /* LighterAppDelegate_Tests.xctest */, 102 | ); 103 | name = Products; 104 | sourceTree = ""; 105 | }; 106 | 607FACD21AFB9204008FA782 /* Example for LighterAppDelegate */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | D27CC1BF1C4961AF001EC083 /* RootService.swift */, 110 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 111 | 607FACD71AFB9204008FA782 /* ViewController.swift */, 112 | 607FACD91AFB9204008FA782 /* Main.storyboard */, 113 | 607FACDC1AFB9204008FA782 /* Images.xcassets */, 114 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 115 | 607FACD31AFB9204008FA782 /* Supporting Files */, 116 | ); 117 | name = "Example for LighterAppDelegate"; 118 | path = LighterAppDelegate; 119 | sourceTree = ""; 120 | }; 121 | 607FACD31AFB9204008FA782 /* Supporting Files */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | 607FACD41AFB9204008FA782 /* Info.plist */, 125 | ); 126 | name = "Supporting Files"; 127 | sourceTree = ""; 128 | }; 129 | 607FACE81AFB9204008FA782 /* Tests */ = { 130 | isa = PBXGroup; 131 | children = ( 132 | 607FACEB1AFB9204008FA782 /* Tests.swift */, 133 | 607FACE91AFB9204008FA782 /* Supporting Files */, 134 | ); 135 | path = Tests; 136 | sourceTree = ""; 137 | }; 138 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | 607FACEA1AFB9204008FA782 /* Info.plist */, 142 | ); 143 | name = "Supporting Files"; 144 | sourceTree = ""; 145 | }; 146 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | 0EDE77731AF0E6D6B0071F78 /* LighterAppDelegate.podspec */, 150 | 6A50A76C7D855E36291E1D67 /* README.md */, 151 | 48C51FC635D4661979880F78 /* LICENSE */, 152 | ); 153 | name = "Podspec Metadata"; 154 | sourceTree = ""; 155 | }; 156 | F0B6EF2C75AFA7CB28C8BFE2 /* Frameworks */ = { 157 | isa = PBXGroup; 158 | children = ( 159 | E995B391B6B29913EB2645EE /* Pods_LighterAppDelegate_Example.framework */, 160 | 1706B2A087FC8756CB75455B /* Pods_LighterAppDelegate_Tests.framework */, 161 | ); 162 | name = Frameworks; 163 | sourceTree = ""; 164 | }; 165 | /* End PBXGroup section */ 166 | 167 | /* Begin PBXNativeTarget section */ 168 | 607FACCF1AFB9204008FA782 /* LighterAppDelegate_Example */ = { 169 | isa = PBXNativeTarget; 170 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LighterAppDelegate_Example" */; 171 | buildPhases = ( 172 | ACED7916F7D44020A82576E0 /* Check Pods Manifest.lock */, 173 | 607FACCC1AFB9204008FA782 /* Sources */, 174 | 607FACCD1AFB9204008FA782 /* Frameworks */, 175 | 607FACCE1AFB9204008FA782 /* Resources */, 176 | 0B2A67E4C1B912CEF9FD0A95 /* Embed Pods Frameworks */, 177 | F0CE81A12A93726E433DD4BB /* Copy Pods Resources */, 178 | ); 179 | buildRules = ( 180 | ); 181 | dependencies = ( 182 | ); 183 | name = LighterAppDelegate_Example; 184 | productName = LighterAppDelegate; 185 | productReference = 607FACD01AFB9204008FA782 /* LighterAppDelegate_Example.app */; 186 | productType = "com.apple.product-type.application"; 187 | }; 188 | 607FACE41AFB9204008FA782 /* LighterAppDelegate_Tests */ = { 189 | isa = PBXNativeTarget; 190 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LighterAppDelegate_Tests" */; 191 | buildPhases = ( 192 | 984672B7DC4B3A7AF17156A5 /* Check Pods Manifest.lock */, 193 | 607FACE11AFB9204008FA782 /* Sources */, 194 | 607FACE21AFB9204008FA782 /* Frameworks */, 195 | 607FACE31AFB9204008FA782 /* Resources */, 196 | 67A766A8B581D4AAA4F9D765 /* Embed Pods Frameworks */, 197 | 083C1A8D5578F2138766ACAB /* Copy Pods Resources */, 198 | ); 199 | buildRules = ( 200 | ); 201 | dependencies = ( 202 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */, 203 | ); 204 | name = LighterAppDelegate_Tests; 205 | productName = Tests; 206 | productReference = 607FACE51AFB9204008FA782 /* LighterAppDelegate_Tests.xctest */; 207 | productType = "com.apple.product-type.bundle.unit-test"; 208 | }; 209 | /* End PBXNativeTarget section */ 210 | 211 | /* Begin PBXProject section */ 212 | 607FACC81AFB9204008FA782 /* Project object */ = { 213 | isa = PBXProject; 214 | attributes = { 215 | LastSwiftUpdateCheck = 0720; 216 | LastUpgradeCheck = 0720; 217 | ORGANIZATIONNAME = Fantageek; 218 | TargetAttributes = { 219 | 607FACCF1AFB9204008FA782 = { 220 | CreatedOnToolsVersion = 6.3.1; 221 | }; 222 | 607FACE41AFB9204008FA782 = { 223 | CreatedOnToolsVersion = 6.3.1; 224 | TestTargetID = 607FACCF1AFB9204008FA782; 225 | }; 226 | }; 227 | }; 228 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "LighterAppDelegate" */; 229 | compatibilityVersion = "Xcode 3.2"; 230 | developmentRegion = English; 231 | hasScannedForEncodings = 0; 232 | knownRegions = ( 233 | en, 234 | Base, 235 | ); 236 | mainGroup = 607FACC71AFB9204008FA782; 237 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 238 | projectDirPath = ""; 239 | projectRoot = ""; 240 | targets = ( 241 | 607FACCF1AFB9204008FA782 /* LighterAppDelegate_Example */, 242 | 607FACE41AFB9204008FA782 /* LighterAppDelegate_Tests */, 243 | ); 244 | }; 245 | /* End PBXProject section */ 246 | 247 | /* Begin PBXResourcesBuildPhase section */ 248 | 607FACCE1AFB9204008FA782 /* Resources */ = { 249 | isa = PBXResourcesBuildPhase; 250 | buildActionMask = 2147483647; 251 | files = ( 252 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, 253 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 254 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 255 | ); 256 | runOnlyForDeploymentPostprocessing = 0; 257 | }; 258 | 607FACE31AFB9204008FA782 /* Resources */ = { 259 | isa = PBXResourcesBuildPhase; 260 | buildActionMask = 2147483647; 261 | files = ( 262 | ); 263 | runOnlyForDeploymentPostprocessing = 0; 264 | }; 265 | /* End PBXResourcesBuildPhase section */ 266 | 267 | /* Begin PBXShellScriptBuildPhase section */ 268 | 083C1A8D5578F2138766ACAB /* Copy Pods Resources */ = { 269 | isa = PBXShellScriptBuildPhase; 270 | buildActionMask = 2147483647; 271 | files = ( 272 | ); 273 | inputPaths = ( 274 | ); 275 | name = "Copy Pods Resources"; 276 | outputPaths = ( 277 | ); 278 | runOnlyForDeploymentPostprocessing = 0; 279 | shellPath = /bin/sh; 280 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-resources.sh\"\n"; 281 | showEnvVarsInLog = 0; 282 | }; 283 | 0B2A67E4C1B912CEF9FD0A95 /* Embed Pods Frameworks */ = { 284 | isa = PBXShellScriptBuildPhase; 285 | buildActionMask = 2147483647; 286 | files = ( 287 | ); 288 | inputPaths = ( 289 | ); 290 | name = "Embed Pods Frameworks"; 291 | outputPaths = ( 292 | ); 293 | runOnlyForDeploymentPostprocessing = 0; 294 | shellPath = /bin/sh; 295 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-frameworks.sh\"\n"; 296 | showEnvVarsInLog = 0; 297 | }; 298 | 67A766A8B581D4AAA4F9D765 /* Embed Pods Frameworks */ = { 299 | isa = PBXShellScriptBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | ); 303 | inputPaths = ( 304 | ); 305 | name = "Embed Pods Frameworks"; 306 | outputPaths = ( 307 | ); 308 | runOnlyForDeploymentPostprocessing = 0; 309 | shellPath = /bin/sh; 310 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-frameworks.sh\"\n"; 311 | showEnvVarsInLog = 0; 312 | }; 313 | 984672B7DC4B3A7AF17156A5 /* Check Pods Manifest.lock */ = { 314 | isa = PBXShellScriptBuildPhase; 315 | buildActionMask = 2147483647; 316 | files = ( 317 | ); 318 | inputPaths = ( 319 | ); 320 | name = "Check Pods Manifest.lock"; 321 | outputPaths = ( 322 | ); 323 | runOnlyForDeploymentPostprocessing = 0; 324 | shellPath = /bin/sh; 325 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 326 | showEnvVarsInLog = 0; 327 | }; 328 | ACED7916F7D44020A82576E0 /* Check Pods Manifest.lock */ = { 329 | isa = PBXShellScriptBuildPhase; 330 | buildActionMask = 2147483647; 331 | files = ( 332 | ); 333 | inputPaths = ( 334 | ); 335 | name = "Check Pods Manifest.lock"; 336 | outputPaths = ( 337 | ); 338 | runOnlyForDeploymentPostprocessing = 0; 339 | shellPath = /bin/sh; 340 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 341 | showEnvVarsInLog = 0; 342 | }; 343 | F0CE81A12A93726E433DD4BB /* Copy Pods Resources */ = { 344 | isa = PBXShellScriptBuildPhase; 345 | buildActionMask = 2147483647; 346 | files = ( 347 | ); 348 | inputPaths = ( 349 | ); 350 | name = "Copy Pods Resources"; 351 | outputPaths = ( 352 | ); 353 | runOnlyForDeploymentPostprocessing = 0; 354 | shellPath = /bin/sh; 355 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-resources.sh\"\n"; 356 | showEnvVarsInLog = 0; 357 | }; 358 | /* End PBXShellScriptBuildPhase section */ 359 | 360 | /* Begin PBXSourcesBuildPhase section */ 361 | 607FACCC1AFB9204008FA782 /* Sources */ = { 362 | isa = PBXSourcesBuildPhase; 363 | buildActionMask = 2147483647; 364 | files = ( 365 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 366 | D27CC1C01C4961AF001EC083 /* RootService.swift in Sources */, 367 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 368 | ); 369 | runOnlyForDeploymentPostprocessing = 0; 370 | }; 371 | 607FACE11AFB9204008FA782 /* Sources */ = { 372 | isa = PBXSourcesBuildPhase; 373 | buildActionMask = 2147483647; 374 | files = ( 375 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, 376 | ); 377 | runOnlyForDeploymentPostprocessing = 0; 378 | }; 379 | /* End PBXSourcesBuildPhase section */ 380 | 381 | /* Begin PBXTargetDependency section */ 382 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { 383 | isa = PBXTargetDependency; 384 | target = 607FACCF1AFB9204008FA782 /* LighterAppDelegate_Example */; 385 | targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; 386 | }; 387 | /* End PBXTargetDependency section */ 388 | 389 | /* Begin PBXVariantGroup section */ 390 | 607FACD91AFB9204008FA782 /* Main.storyboard */ = { 391 | isa = PBXVariantGroup; 392 | children = ( 393 | 607FACDA1AFB9204008FA782 /* Base */, 394 | ); 395 | name = Main.storyboard; 396 | sourceTree = ""; 397 | }; 398 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { 399 | isa = PBXVariantGroup; 400 | children = ( 401 | 607FACDF1AFB9204008FA782 /* Base */, 402 | ); 403 | name = LaunchScreen.xib; 404 | sourceTree = ""; 405 | }; 406 | /* End PBXVariantGroup section */ 407 | 408 | /* Begin XCBuildConfiguration section */ 409 | 607FACED1AFB9204008FA782 /* Debug */ = { 410 | isa = XCBuildConfiguration; 411 | buildSettings = { 412 | ALWAYS_SEARCH_USER_PATHS = NO; 413 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 414 | CLANG_CXX_LIBRARY = "libc++"; 415 | CLANG_ENABLE_MODULES = YES; 416 | CLANG_ENABLE_OBJC_ARC = YES; 417 | CLANG_WARN_BOOL_CONVERSION = YES; 418 | CLANG_WARN_CONSTANT_CONVERSION = YES; 419 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 420 | CLANG_WARN_EMPTY_BODY = YES; 421 | CLANG_WARN_ENUM_CONVERSION = YES; 422 | CLANG_WARN_INT_CONVERSION = YES; 423 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 424 | CLANG_WARN_UNREACHABLE_CODE = YES; 425 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 426 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 427 | COPY_PHASE_STRIP = NO; 428 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 429 | ENABLE_STRICT_OBJC_MSGSEND = YES; 430 | ENABLE_TESTABILITY = YES; 431 | GCC_C_LANGUAGE_STANDARD = gnu99; 432 | GCC_DYNAMIC_NO_PIC = NO; 433 | GCC_NO_COMMON_BLOCKS = YES; 434 | GCC_OPTIMIZATION_LEVEL = 0; 435 | GCC_PREPROCESSOR_DEFINITIONS = ( 436 | "DEBUG=1", 437 | "$(inherited)", 438 | ); 439 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 440 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 441 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 442 | GCC_WARN_UNDECLARED_SELECTOR = YES; 443 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 444 | GCC_WARN_UNUSED_FUNCTION = YES; 445 | GCC_WARN_UNUSED_VARIABLE = YES; 446 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 447 | MTL_ENABLE_DEBUG_INFO = YES; 448 | ONLY_ACTIVE_ARCH = YES; 449 | SDKROOT = iphoneos; 450 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 451 | }; 452 | name = Debug; 453 | }; 454 | 607FACEE1AFB9204008FA782 /* Release */ = { 455 | isa = XCBuildConfiguration; 456 | buildSettings = { 457 | ALWAYS_SEARCH_USER_PATHS = NO; 458 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 459 | CLANG_CXX_LIBRARY = "libc++"; 460 | CLANG_ENABLE_MODULES = YES; 461 | CLANG_ENABLE_OBJC_ARC = YES; 462 | CLANG_WARN_BOOL_CONVERSION = YES; 463 | CLANG_WARN_CONSTANT_CONVERSION = YES; 464 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 465 | CLANG_WARN_EMPTY_BODY = YES; 466 | CLANG_WARN_ENUM_CONVERSION = YES; 467 | CLANG_WARN_INT_CONVERSION = YES; 468 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 469 | CLANG_WARN_UNREACHABLE_CODE = YES; 470 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 471 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 472 | COPY_PHASE_STRIP = NO; 473 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 474 | ENABLE_NS_ASSERTIONS = NO; 475 | ENABLE_STRICT_OBJC_MSGSEND = YES; 476 | GCC_C_LANGUAGE_STANDARD = gnu99; 477 | GCC_NO_COMMON_BLOCKS = YES; 478 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 479 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 480 | GCC_WARN_UNDECLARED_SELECTOR = YES; 481 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 482 | GCC_WARN_UNUSED_FUNCTION = YES; 483 | GCC_WARN_UNUSED_VARIABLE = YES; 484 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 485 | MTL_ENABLE_DEBUG_INFO = NO; 486 | SDKROOT = iphoneos; 487 | VALIDATE_PRODUCT = YES; 488 | }; 489 | name = Release; 490 | }; 491 | 607FACF01AFB9204008FA782 /* Debug */ = { 492 | isa = XCBuildConfiguration; 493 | baseConfigurationReference = E549994AACA16F98F3B23F3D /* Pods-LighterAppDelegate_Example.debug.xcconfig */; 494 | buildSettings = { 495 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 496 | INFOPLIST_FILE = LighterAppDelegate/Info.plist; 497 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 498 | MODULE_NAME = ExampleApp; 499 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 500 | PRODUCT_NAME = "$(TARGET_NAME)"; 501 | }; 502 | name = Debug; 503 | }; 504 | 607FACF11AFB9204008FA782 /* Release */ = { 505 | isa = XCBuildConfiguration; 506 | baseConfigurationReference = C7B48B4A35AAC0B6BDE8B522 /* Pods-LighterAppDelegate_Example.release.xcconfig */; 507 | buildSettings = { 508 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 509 | INFOPLIST_FILE = LighterAppDelegate/Info.plist; 510 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 511 | MODULE_NAME = ExampleApp; 512 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 513 | PRODUCT_NAME = "$(TARGET_NAME)"; 514 | }; 515 | name = Release; 516 | }; 517 | 607FACF31AFB9204008FA782 /* Debug */ = { 518 | isa = XCBuildConfiguration; 519 | baseConfigurationReference = 861CFE7D47210D6B77A32DD3 /* Pods-LighterAppDelegate_Tests.debug.xcconfig */; 520 | buildSettings = { 521 | BUNDLE_LOADER = "$(TEST_HOST)"; 522 | FRAMEWORK_SEARCH_PATHS = ( 523 | "$(SDKROOT)/Developer/Library/Frameworks", 524 | "$(inherited)", 525 | ); 526 | GCC_PREPROCESSOR_DEFINITIONS = ( 527 | "DEBUG=1", 528 | "$(inherited)", 529 | ); 530 | INFOPLIST_FILE = Tests/Info.plist; 531 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 532 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 533 | PRODUCT_NAME = "$(TARGET_NAME)"; 534 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LighterAppDelegate_Example.app/LighterAppDelegate_Example"; 535 | }; 536 | name = Debug; 537 | }; 538 | 607FACF41AFB9204008FA782 /* Release */ = { 539 | isa = XCBuildConfiguration; 540 | baseConfigurationReference = 98B475F79F0CEE9F10513809 /* Pods-LighterAppDelegate_Tests.release.xcconfig */; 541 | buildSettings = { 542 | BUNDLE_LOADER = "$(TEST_HOST)"; 543 | FRAMEWORK_SEARCH_PATHS = ( 544 | "$(SDKROOT)/Developer/Library/Frameworks", 545 | "$(inherited)", 546 | ); 547 | INFOPLIST_FILE = Tests/Info.plist; 548 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 549 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 550 | PRODUCT_NAME = "$(TARGET_NAME)"; 551 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LighterAppDelegate_Example.app/LighterAppDelegate_Example"; 552 | }; 553 | name = Release; 554 | }; 555 | /* End XCBuildConfiguration section */ 556 | 557 | /* Begin XCConfigurationList section */ 558 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "LighterAppDelegate" */ = { 559 | isa = XCConfigurationList; 560 | buildConfigurations = ( 561 | 607FACED1AFB9204008FA782 /* Debug */, 562 | 607FACEE1AFB9204008FA782 /* Release */, 563 | ); 564 | defaultConfigurationIsVisible = 0; 565 | defaultConfigurationName = Release; 566 | }; 567 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LighterAppDelegate_Example" */ = { 568 | isa = XCConfigurationList; 569 | buildConfigurations = ( 570 | 607FACF01AFB9204008FA782 /* Debug */, 571 | 607FACF11AFB9204008FA782 /* Release */, 572 | ); 573 | defaultConfigurationIsVisible = 0; 574 | defaultConfigurationName = Release; 575 | }; 576 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LighterAppDelegate_Tests" */ = { 577 | isa = XCConfigurationList; 578 | buildConfigurations = ( 579 | 607FACF31AFB9204008FA782 /* Debug */, 580 | 607FACF41AFB9204008FA782 /* Release */, 581 | ); 582 | defaultConfigurationIsVisible = 0; 583 | defaultConfigurationName = Release; 584 | }; 585 | /* End XCConfigurationList section */ 586 | }; 587 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 588 | } 589 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate.xcodeproj/xcshareddata/xcschemes/LighterAppDelegate-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 78 | 80 | 86 | 87 | 88 | 89 | 90 | 91 | 97 | 99 | 105 | 106 | 107 | 108 | 110 | 111 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // LighterAppDelegate 4 | // 5 | // Created by Khoa Pham on 01/16/2016. 6 | // Copyright (c) 2016 Khoa Pham. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import LighterAppDelegate 11 | 12 | // Inheritance 13 | @UIApplicationMain 14 | class AppDelegate: LighterAppDelegate { 15 | 16 | var window: UIWindow? 17 | let simpleDispatcher = Dispatcher(services: [RootService()]) 18 | 19 | override func dispatcher() -> Dispatcher { 20 | return simpleDispatcher 21 | } 22 | 23 | func applicationDidReceiveMemoryWarning(application: UIApplication) { 24 | dispatcher().applicationDidReceiveMemoryWarning(application) 25 | } 26 | } 27 | 28 | /* 29 | // Composition 30 | @UIApplicationMain 31 | class AppDelegate: UIResponder, UIApplicationDelegate { 32 | 33 | var window: UIWindow? 34 | let dispatcher = Dispatcher(services: [RootService()]) 35 | 36 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 37 | print(dispatcher) 38 | return dispatcher.application(application, didFinishLaunchingWithOptions: launchOptions) 39 | } 40 | } 41 | */ -------------------------------------------------------------------------------- /Example/LighterAppDelegate/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UIRequiresFullScreen 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Example/LighterAppDelegate/RootService.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RootService.swift 3 | // AppDelegate 4 | // 5 | // Created by Khoa Pham on 1/16/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | class RootService : NSObject, UIApplicationDelegate { 13 | func application(application: UIApplication, 14 | didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 15 | 16 | appDelegate().window = UIWindow(frame: UIScreen.mainScreen().bounds) 17 | showHome() 18 | appDelegate().window?.makeKeyAndVisible() 19 | 20 | return true 21 | } 22 | } 23 | 24 | extension RootService { 25 | func showHome() { 26 | let storyboard = UIStoryboard(name: "Main", bundle: nil) 27 | appDelegate().window?.rootViewController = storyboard.instantiateInitialViewController() 28 | } 29 | } 30 | 31 | extension RootService { 32 | func appDelegate() -> AppDelegate { 33 | return UIApplication.sharedApplication().delegate as! AppDelegate 34 | } 35 | } -------------------------------------------------------------------------------- /Example/LighterAppDelegate/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // LighterAppDelegate 4 | // 5 | // Created by Khoa Pham on 01/16/2016. 6 | // Copyright (c) 2016 Khoa Pham. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | use_frameworks! 3 | 4 | target 'LighterAppDelegate_Example', :exclusive => true do 5 | pod "LighterAppDelegate", :path => "../" 6 | end 7 | 8 | target 'LighterAppDelegate_Tests', :exclusive => true do 9 | pod "LighterAppDelegate", :path => "../" 10 | 11 | 12 | end 13 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - LighterAppDelegate (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - LighterAppDelegate (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | LighterAppDelegate: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | LighterAppDelegate: 3f6a4a9142306e50d8c36b55e65e21e12097e824 13 | 14 | COCOAPODS: 0.39.0 15 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/LighterAppDelegate.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LighterAppDelegate", 3 | "version": "0.1.0", 4 | "summary": "A short description of LighterAppDelegate.", 5 | "description": "", 6 | "homepage": "https://github.com//LighterAppDelegate", 7 | "license": "MIT", 8 | "authors": { 9 | "Khoa Pham": "onmyway133@gmail.com" 10 | }, 11 | "source": { 12 | "git": "https://github.com//LighterAppDelegate.git", 13 | "tag": "0.1.0" 14 | }, 15 | "platforms": { 16 | "ios": "8.0" 17 | }, 18 | "requires_arc": true, 19 | "source_files": "Pod/Classes/**/*", 20 | "resource_bundles": { 21 | "LighterAppDelegate": [ 22 | "Pod/Assets/*.png" 23 | ] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - LighterAppDelegate (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - LighterAppDelegate (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | LighterAppDelegate: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | LighterAppDelegate: 3f6a4a9142306e50d8c36b55e65e21e12097e824 13 | 14 | COCOAPODS: 0.39.0 15 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1B1ABCDC26C475B44A2645FC57F0E63F /* LighterAppDelegate.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 161D5B9A8176DDD86CF94357E747DAA5 /* LighterAppDelegate.bundle */; }; 11 | 32E863A336D357D835935F18F2B4589D /* Pods-LighterAppDelegate_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 346C32F282558BF31CA074D132D91756 /* Pods-LighterAppDelegate_Example-dummy.m */; }; 12 | 39DE159E720300E33198FA4046781C6B /* Pods-LighterAppDelegate_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C61147E0DE94BC529E7ADF9AAB8C911F /* Pods-LighterAppDelegate_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 5E4B4445C23649D133A282C69794940B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; 14 | 8706610D5C2836D406B6D5BE29BAA032 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; 15 | A093EE159BC3078FFC3F2177BC04C86D /* LighterAppDelegate-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C2DB56CC4012AA0A6B2C6E51FB32B64C /* LighterAppDelegate-dummy.m */; }; 16 | C75DEF9E0204EAE241075EA494562E7E /* LighterAppDelegate-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B7DC3FB4A6177BB3DDF6ECA19CD621E7 /* LighterAppDelegate-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | D2223DF9C58636713D4C556C4474706B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; 18 | D27CC1D31C496C04001EC083 /* Dispatcher+AppExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1C51C496C04001EC083 /* Dispatcher+AppExtension.swift */; }; 19 | D27CC1D41C496C04001EC083 /* Dispatcher+AppStateChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1C61C496C04001EC083 /* Dispatcher+AppStateChanges.swift */; }; 20 | D27CC1D51C496C04001EC083 /* Dispatcher+AppStateRestoration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1C71C496C04001EC083 /* Dispatcher+AppStateRestoration.swift */; }; 21 | D27CC1D61C496C04001EC083 /* Dispatcher+Continuity.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1C81C496C04001EC083 /* Dispatcher+Continuity.swift */; }; 22 | D27CC1D71C496C04001EC083 /* Dispatcher+DataInBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1C91C496C04001EC083 /* Dispatcher+DataInBackground.swift */; }; 23 | D27CC1D81C496C04001EC083 /* Dispatcher+HealthKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1CA1C496C04001EC083 /* Dispatcher+HealthKit.swift */; }; 24 | D27CC1D91C496C04001EC083 /* Dispatcher+Interface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1CB1C496C04001EC083 /* Dispatcher+Interface.swift */; }; 25 | D27CC1DA1C496C04001EC083 /* Dispatcher+LocalNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1CC1C496C04001EC083 /* Dispatcher+LocalNotification.swift */; }; 26 | D27CC1DB1C496C04001EC083 /* Dispatcher+QuickAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1CD1C496C04001EC083 /* Dispatcher+QuickAction.swift */; }; 27 | D27CC1DC1C496C04001EC083 /* Dispatcher+RemoteNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1CE1C496C04001EC083 /* Dispatcher+RemoteNotification.swift */; }; 28 | D27CC1DD1C496C04001EC083 /* Dispatcher+SystemEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1CF1C496C04001EC083 /* Dispatcher+SystemEvents.swift */; }; 29 | D27CC1DE1C496C04001EC083 /* Dispatcher+URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1D01C496C04001EC083 /* Dispatcher+URL.swift */; }; 30 | D27CC1DF1C496C04001EC083 /* Dispatcher+WatchKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1D11C496C04001EC083 /* Dispatcher+WatchKit.swift */; }; 31 | D27CC1E01C496C04001EC083 /* Dispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1D21C496C04001EC083 /* Dispatcher.swift */; }; 32 | D27CC1E21C496C15001EC083 /* LighterAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D27CC1E11C496C15001EC083 /* LighterAppDelegate.swift */; }; 33 | F9512119C32C04D8AC0A2AC540AEADEC /* Pods-LighterAppDelegate_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 965E15E2A6AA8583315C94B2DE21A590 /* Pods-LighterAppDelegate_Tests-dummy.m */; }; 34 | FE3515236506A435E589E6B174091829 /* Pods-LighterAppDelegate_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0941600A4B3B748F5272A59359D22B7B /* Pods-LighterAppDelegate_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 35 | /* End PBXBuildFile section */ 36 | 37 | /* Begin PBXContainerItemProxy section */ 38 | 009B79055C23237F66AD381BD664BE17 /* PBXContainerItemProxy */ = { 39 | isa = PBXContainerItemProxy; 40 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 41 | proxyType = 1; 42 | remoteGlobalIDString = 9EE1E5E5EDD1A6A9306E74002AC0AB26; 43 | remoteInfo = LighterAppDelegate; 44 | }; 45 | 76B556713558A48C699EA42364E60A3E /* PBXContainerItemProxy */ = { 46 | isa = PBXContainerItemProxy; 47 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 48 | proxyType = 1; 49 | remoteGlobalIDString = 9EE1E5E5EDD1A6A9306E74002AC0AB26; 50 | remoteInfo = LighterAppDelegate; 51 | }; 52 | D4581DAA696A3E023F3CB1D37D1F569B /* PBXContainerItemProxy */ = { 53 | isa = PBXContainerItemProxy; 54 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 55 | proxyType = 1; 56 | remoteGlobalIDString = 27EEAC4B5F0E08CD182AAF8227ABDDA2; 57 | remoteInfo = "LighterAppDelegate-LighterAppDelegate"; 58 | }; 59 | /* End PBXContainerItemProxy section */ 60 | 61 | /* Begin PBXFileReference section */ 62 | 0941600A4B3B748F5272A59359D22B7B /* Pods-LighterAppDelegate_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LighterAppDelegate_Example-umbrella.h"; sourceTree = ""; }; 63 | 0F69F40F7A0D35E6E6E4B0BCB233FD0E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 64 | 161D5B9A8176DDD86CF94357E747DAA5 /* LighterAppDelegate.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LighterAppDelegate.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 65 | 346C32F282558BF31CA074D132D91756 /* Pods-LighterAppDelegate_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LighterAppDelegate_Example-dummy.m"; sourceTree = ""; }; 66 | 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 67 | 3F71F15AF281B51291C6A8DA01837552 /* Pods_LighterAppDelegate_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LighterAppDelegate_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 68 | 3FFC5DE110AE9BF5A632738420E1B21C /* Pods-LighterAppDelegate_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LighterAppDelegate_Tests-frameworks.sh"; sourceTree = ""; }; 69 | 5EC30401FFAD4E515D93914E7F547925 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 70 | 677EE935BC9EE5F3C89CAC44C1908638 /* Pods-LighterAppDelegate_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LighterAppDelegate_Tests.release.xcconfig"; sourceTree = ""; }; 71 | 8C0944B6A90628C9C1CF07A0F1687653 /* LighterAppDelegate.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LighterAppDelegate.modulemap; sourceTree = ""; }; 72 | 927A1045AF3167F68FCF9BC450EF4555 /* Pods-LighterAppDelegate_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LighterAppDelegate_Tests.modulemap"; sourceTree = ""; }; 73 | 965E15E2A6AA8583315C94B2DE21A590 /* Pods-LighterAppDelegate_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LighterAppDelegate_Tests-dummy.m"; sourceTree = ""; }; 74 | 967366FF4A196812F19A17F2D436AD17 /* LighterAppDelegate.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LighterAppDelegate.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 75 | 97DEF7A7FD31BD1BB1A6B44D68DA5117 /* Pods-LighterAppDelegate_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LighterAppDelegate_Tests-resources.sh"; sourceTree = ""; }; 76 | A26DA3B2CD48B766B4337279EF6D2294 /* Pods-LighterAppDelegate_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LighterAppDelegate_Example.release.xcconfig"; sourceTree = ""; }; 77 | AF3C2BB3D59CF4DEC87900D07B592661 /* LighterAppDelegate-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LighterAppDelegate-prefix.pch"; sourceTree = ""; }; 78 | B0A81917003AEBEAB42D25F224906D57 /* Pods-LighterAppDelegate_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LighterAppDelegate_Example.modulemap"; sourceTree = ""; }; 79 | B7DC3FB4A6177BB3DDF6ECA19CD621E7 /* LighterAppDelegate-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LighterAppDelegate-umbrella.h"; sourceTree = ""; }; 80 | BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 81 | C093108499CDBB4366831ADED6E884BE /* Pods-LighterAppDelegate_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LighterAppDelegate_Example-resources.sh"; sourceTree = ""; }; 82 | C1509B0AC19F5DDC49CC563BD2C09C10 /* Pods-LighterAppDelegate_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LighterAppDelegate_Tests-acknowledgements.plist"; sourceTree = ""; }; 83 | C2DB56CC4012AA0A6B2C6E51FB32B64C /* LighterAppDelegate-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LighterAppDelegate-dummy.m"; sourceTree = ""; }; 84 | C61147E0DE94BC529E7ADF9AAB8C911F /* Pods-LighterAppDelegate_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LighterAppDelegate_Tests-umbrella.h"; sourceTree = ""; }; 85 | CA72B356FADBDBB727FDB8C63615FA7C /* Pods-LighterAppDelegate_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LighterAppDelegate_Example.debug.xcconfig"; sourceTree = ""; }; 86 | D27CC1C51C496C04001EC083 /* Dispatcher+AppExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+AppExtension.swift"; sourceTree = ""; }; 87 | D27CC1C61C496C04001EC083 /* Dispatcher+AppStateChanges.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+AppStateChanges.swift"; sourceTree = ""; }; 88 | D27CC1C71C496C04001EC083 /* Dispatcher+AppStateRestoration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+AppStateRestoration.swift"; sourceTree = ""; }; 89 | D27CC1C81C496C04001EC083 /* Dispatcher+Continuity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+Continuity.swift"; sourceTree = ""; }; 90 | D27CC1C91C496C04001EC083 /* Dispatcher+DataInBackground.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+DataInBackground.swift"; sourceTree = ""; }; 91 | D27CC1CA1C496C04001EC083 /* Dispatcher+HealthKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+HealthKit.swift"; sourceTree = ""; }; 92 | D27CC1CB1C496C04001EC083 /* Dispatcher+Interface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+Interface.swift"; sourceTree = ""; }; 93 | D27CC1CC1C496C04001EC083 /* Dispatcher+LocalNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+LocalNotification.swift"; sourceTree = ""; }; 94 | D27CC1CD1C496C04001EC083 /* Dispatcher+QuickAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+QuickAction.swift"; sourceTree = ""; }; 95 | D27CC1CE1C496C04001EC083 /* Dispatcher+RemoteNotification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+RemoteNotification.swift"; sourceTree = ""; }; 96 | D27CC1CF1C496C04001EC083 /* Dispatcher+SystemEvents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+SystemEvents.swift"; sourceTree = ""; }; 97 | D27CC1D01C496C04001EC083 /* Dispatcher+URL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+URL.swift"; sourceTree = ""; }; 98 | D27CC1D11C496C04001EC083 /* Dispatcher+WatchKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dispatcher+WatchKit.swift"; sourceTree = ""; }; 99 | D27CC1D21C496C04001EC083 /* Dispatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dispatcher.swift; sourceTree = ""; }; 100 | D27CC1E11C496C15001EC083 /* LighterAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LighterAppDelegate.swift; sourceTree = ""; }; 101 | D282EE06FBBC2600359B907BF2B37FC8 /* Pods-LighterAppDelegate_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LighterAppDelegate_Example-acknowledgements.plist"; sourceTree = ""; }; 102 | DCD89802D863515E95BFCCB45F95E3E5 /* Pods-LighterAppDelegate_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LighterAppDelegate_Example-acknowledgements.markdown"; sourceTree = ""; }; 103 | E1641229C71E1F6D6FAD62C4C2A01136 /* Pods-LighterAppDelegate_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LighterAppDelegate_Example-frameworks.sh"; sourceTree = ""; }; 104 | E4269A891597963ED8C08C5DF2B8B7CB /* Pods-LighterAppDelegate_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LighterAppDelegate_Tests.debug.xcconfig"; sourceTree = ""; }; 105 | E4414C40C2E0C4F34AEDE0B87A332EB8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 106 | E97D430C422646DA0780B3D679E14AB9 /* LighterAppDelegate.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LighterAppDelegate.xcconfig; sourceTree = ""; }; 107 | F2218BD460A8537AEB52E4093B0D6D97 /* Pods_LighterAppDelegate_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LighterAppDelegate_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 108 | FBD091D5B6C7A2E9D7493A31B448A0D3 /* Pods-LighterAppDelegate_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LighterAppDelegate_Tests-acknowledgements.markdown"; sourceTree = ""; }; 109 | /* End PBXFileReference section */ 110 | 111 | /* Begin PBXFrameworksBuildPhase section */ 112 | 25217B8A462BDF6B812C09A6A33BF981 /* Frameworks */ = { 113 | isa = PBXFrameworksBuildPhase; 114 | buildActionMask = 2147483647; 115 | files = ( 116 | 8706610D5C2836D406B6D5BE29BAA032 /* Foundation.framework in Frameworks */, 117 | ); 118 | runOnlyForDeploymentPostprocessing = 0; 119 | }; 120 | 3FF064C07A3F482795D4DCEE4A19C774 /* Frameworks */ = { 121 | isa = PBXFrameworksBuildPhase; 122 | buildActionMask = 2147483647; 123 | files = ( 124 | ); 125 | runOnlyForDeploymentPostprocessing = 0; 126 | }; 127 | AD4EF3EBF7B1B30160D2B01E1A0B8B0E /* Frameworks */ = { 128 | isa = PBXFrameworksBuildPhase; 129 | buildActionMask = 2147483647; 130 | files = ( 131 | D2223DF9C58636713D4C556C4474706B /* Foundation.framework in Frameworks */, 132 | ); 133 | runOnlyForDeploymentPostprocessing = 0; 134 | }; 135 | F9855BF875BA04406BA8E85E311859A1 /* Frameworks */ = { 136 | isa = PBXFrameworksBuildPhase; 137 | buildActionMask = 2147483647; 138 | files = ( 139 | 5E4B4445C23649D133A282C69794940B /* Foundation.framework in Frameworks */, 140 | ); 141 | runOnlyForDeploymentPostprocessing = 0; 142 | }; 143 | /* End PBXFrameworksBuildPhase section */ 144 | 145 | /* Begin PBXGroup section */ 146 | 289779FCCA3B1721601D229B0F1888BB /* Pods-LighterAppDelegate_Example */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | 0F69F40F7A0D35E6E6E4B0BCB233FD0E /* Info.plist */, 150 | B0A81917003AEBEAB42D25F224906D57 /* Pods-LighterAppDelegate_Example.modulemap */, 151 | DCD89802D863515E95BFCCB45F95E3E5 /* Pods-LighterAppDelegate_Example-acknowledgements.markdown */, 152 | D282EE06FBBC2600359B907BF2B37FC8 /* Pods-LighterAppDelegate_Example-acknowledgements.plist */, 153 | 346C32F282558BF31CA074D132D91756 /* Pods-LighterAppDelegate_Example-dummy.m */, 154 | E1641229C71E1F6D6FAD62C4C2A01136 /* Pods-LighterAppDelegate_Example-frameworks.sh */, 155 | C093108499CDBB4366831ADED6E884BE /* Pods-LighterAppDelegate_Example-resources.sh */, 156 | 0941600A4B3B748F5272A59359D22B7B /* Pods-LighterAppDelegate_Example-umbrella.h */, 157 | CA72B356FADBDBB727FDB8C63615FA7C /* Pods-LighterAppDelegate_Example.debug.xcconfig */, 158 | A26DA3B2CD48B766B4337279EF6D2294 /* Pods-LighterAppDelegate_Example.release.xcconfig */, 159 | ); 160 | name = "Pods-LighterAppDelegate_Example"; 161 | path = "Target Support Files/Pods-LighterAppDelegate_Example"; 162 | sourceTree = ""; 163 | }; 164 | 3CB16E982E2AA05F5E410720A045085A /* Classes */ = { 165 | isa = PBXGroup; 166 | children = ( 167 | D27CC1C31C496C04001EC083 /* AppDelegate */, 168 | D27CC1C41C496C04001EC083 /* Dispatcher */, 169 | ); 170 | path = Classes; 171 | sourceTree = ""; 172 | }; 173 | 7638D41E3D2481492A9891852D2FDC1D /* Development Pods */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | D84F536E8FF20BA8BF001F5EDC20CD64 /* LighterAppDelegate */, 177 | ); 178 | name = "Development Pods"; 179 | sourceTree = ""; 180 | }; 181 | 7BDE1A5DEB80167D3D2A3EDC3FF81006 /* Products */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | 161D5B9A8176DDD86CF94357E747DAA5 /* LighterAppDelegate.bundle */, 185 | 967366FF4A196812F19A17F2D436AD17 /* LighterAppDelegate.framework */, 186 | F2218BD460A8537AEB52E4093B0D6D97 /* Pods_LighterAppDelegate_Example.framework */, 187 | 3F71F15AF281B51291C6A8DA01837552 /* Pods_LighterAppDelegate_Tests.framework */, 188 | ); 189 | name = Products; 190 | sourceTree = ""; 191 | }; 192 | 7DB346D0F39D3F0E887471402A8071AB = { 193 | isa = PBXGroup; 194 | children = ( 195 | BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, 196 | 7638D41E3D2481492A9891852D2FDC1D /* Development Pods */, 197 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 198 | 7BDE1A5DEB80167D3D2A3EDC3FF81006 /* Products */, 199 | DF1450983BF52F3D0EAB67626A92071F /* Targets Support Files */, 200 | ); 201 | sourceTree = ""; 202 | }; 203 | 854EF26B50932E60BF082A4A70D41BCA /* Pods-LighterAppDelegate_Tests */ = { 204 | isa = PBXGroup; 205 | children = ( 206 | 5EC30401FFAD4E515D93914E7F547925 /* Info.plist */, 207 | 927A1045AF3167F68FCF9BC450EF4555 /* Pods-LighterAppDelegate_Tests.modulemap */, 208 | FBD091D5B6C7A2E9D7493A31B448A0D3 /* Pods-LighterAppDelegate_Tests-acknowledgements.markdown */, 209 | C1509B0AC19F5DDC49CC563BD2C09C10 /* Pods-LighterAppDelegate_Tests-acknowledgements.plist */, 210 | 965E15E2A6AA8583315C94B2DE21A590 /* Pods-LighterAppDelegate_Tests-dummy.m */, 211 | 3FFC5DE110AE9BF5A632738420E1B21C /* Pods-LighterAppDelegate_Tests-frameworks.sh */, 212 | 97DEF7A7FD31BD1BB1A6B44D68DA5117 /* Pods-LighterAppDelegate_Tests-resources.sh */, 213 | C61147E0DE94BC529E7ADF9AAB8C911F /* Pods-LighterAppDelegate_Tests-umbrella.h */, 214 | E4269A891597963ED8C08C5DF2B8B7CB /* Pods-LighterAppDelegate_Tests.debug.xcconfig */, 215 | 677EE935BC9EE5F3C89CAC44C1908638 /* Pods-LighterAppDelegate_Tests.release.xcconfig */, 216 | ); 217 | name = "Pods-LighterAppDelegate_Tests"; 218 | path = "Target Support Files/Pods-LighterAppDelegate_Tests"; 219 | sourceTree = ""; 220 | }; 221 | A1A94E6C2182337B08766F1F33EF696B /* Pod */ = { 222 | isa = PBXGroup; 223 | children = ( 224 | 3CB16E982E2AA05F5E410720A045085A /* Classes */, 225 | ); 226 | path = Pod; 227 | sourceTree = ""; 228 | }; 229 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 230 | isa = PBXGroup; 231 | children = ( 232 | BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */, 233 | ); 234 | name = Frameworks; 235 | sourceTree = ""; 236 | }; 237 | BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */ = { 238 | isa = PBXGroup; 239 | children = ( 240 | 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */, 241 | ); 242 | name = iOS; 243 | sourceTree = ""; 244 | }; 245 | D27CC1C31C496C04001EC083 /* AppDelegate */ = { 246 | isa = PBXGroup; 247 | children = ( 248 | D27CC1E11C496C15001EC083 /* LighterAppDelegate.swift */, 249 | ); 250 | path = AppDelegate; 251 | sourceTree = ""; 252 | }; 253 | D27CC1C41C496C04001EC083 /* Dispatcher */ = { 254 | isa = PBXGroup; 255 | children = ( 256 | D27CC1C51C496C04001EC083 /* Dispatcher+AppExtension.swift */, 257 | D27CC1C61C496C04001EC083 /* Dispatcher+AppStateChanges.swift */, 258 | D27CC1C71C496C04001EC083 /* Dispatcher+AppStateRestoration.swift */, 259 | D27CC1C81C496C04001EC083 /* Dispatcher+Continuity.swift */, 260 | D27CC1C91C496C04001EC083 /* Dispatcher+DataInBackground.swift */, 261 | D27CC1CA1C496C04001EC083 /* Dispatcher+HealthKit.swift */, 262 | D27CC1CB1C496C04001EC083 /* Dispatcher+Interface.swift */, 263 | D27CC1CC1C496C04001EC083 /* Dispatcher+LocalNotification.swift */, 264 | D27CC1CD1C496C04001EC083 /* Dispatcher+QuickAction.swift */, 265 | D27CC1CE1C496C04001EC083 /* Dispatcher+RemoteNotification.swift */, 266 | D27CC1CF1C496C04001EC083 /* Dispatcher+SystemEvents.swift */, 267 | D27CC1D01C496C04001EC083 /* Dispatcher+URL.swift */, 268 | D27CC1D11C496C04001EC083 /* Dispatcher+WatchKit.swift */, 269 | D27CC1D21C496C04001EC083 /* Dispatcher.swift */, 270 | ); 271 | path = Dispatcher; 272 | sourceTree = ""; 273 | }; 274 | D84F536E8FF20BA8BF001F5EDC20CD64 /* LighterAppDelegate */ = { 275 | isa = PBXGroup; 276 | children = ( 277 | A1A94E6C2182337B08766F1F33EF696B /* Pod */, 278 | F58A28D33E613593325BFDFE79668F22 /* Support Files */, 279 | ); 280 | name = LighterAppDelegate; 281 | path = ../..; 282 | sourceTree = ""; 283 | }; 284 | DF1450983BF52F3D0EAB67626A92071F /* Targets Support Files */ = { 285 | isa = PBXGroup; 286 | children = ( 287 | 289779FCCA3B1721601D229B0F1888BB /* Pods-LighterAppDelegate_Example */, 288 | 854EF26B50932E60BF082A4A70D41BCA /* Pods-LighterAppDelegate_Tests */, 289 | ); 290 | name = "Targets Support Files"; 291 | sourceTree = ""; 292 | }; 293 | F58A28D33E613593325BFDFE79668F22 /* Support Files */ = { 294 | isa = PBXGroup; 295 | children = ( 296 | E4414C40C2E0C4F34AEDE0B87A332EB8 /* Info.plist */, 297 | 8C0944B6A90628C9C1CF07A0F1687653 /* LighterAppDelegate.modulemap */, 298 | E97D430C422646DA0780B3D679E14AB9 /* LighterAppDelegate.xcconfig */, 299 | C2DB56CC4012AA0A6B2C6E51FB32B64C /* LighterAppDelegate-dummy.m */, 300 | AF3C2BB3D59CF4DEC87900D07B592661 /* LighterAppDelegate-prefix.pch */, 301 | B7DC3FB4A6177BB3DDF6ECA19CD621E7 /* LighterAppDelegate-umbrella.h */, 302 | ); 303 | name = "Support Files"; 304 | path = "Example/Pods/Target Support Files/LighterAppDelegate"; 305 | sourceTree = ""; 306 | }; 307 | /* End PBXGroup section */ 308 | 309 | /* Begin PBXHeadersBuildPhase section */ 310 | 209E2ACCBB37E703F3CFDDD7F0A8AE5A /* Headers */ = { 311 | isa = PBXHeadersBuildPhase; 312 | buildActionMask = 2147483647; 313 | files = ( 314 | 39DE159E720300E33198FA4046781C6B /* Pods-LighterAppDelegate_Tests-umbrella.h in Headers */, 315 | ); 316 | runOnlyForDeploymentPostprocessing = 0; 317 | }; 318 | 4CC7E39D0EAA5DCEEA5D209ECDB70BC3 /* Headers */ = { 319 | isa = PBXHeadersBuildPhase; 320 | buildActionMask = 2147483647; 321 | files = ( 322 | FE3515236506A435E589E6B174091829 /* Pods-LighterAppDelegate_Example-umbrella.h in Headers */, 323 | ); 324 | runOnlyForDeploymentPostprocessing = 0; 325 | }; 326 | B39DF0214A5C91182EB458EB10F8C7CD /* Headers */ = { 327 | isa = PBXHeadersBuildPhase; 328 | buildActionMask = 2147483647; 329 | files = ( 330 | C75DEF9E0204EAE241075EA494562E7E /* LighterAppDelegate-umbrella.h in Headers */, 331 | ); 332 | runOnlyForDeploymentPostprocessing = 0; 333 | }; 334 | /* End PBXHeadersBuildPhase section */ 335 | 336 | /* Begin PBXNativeTarget section */ 337 | 13F258EA975417BE0E6772A16F016289 /* Pods-LighterAppDelegate_Tests */ = { 338 | isa = PBXNativeTarget; 339 | buildConfigurationList = 2CB8CB3D2CB692D75E3DB20C42B067E4 /* Build configuration list for PBXNativeTarget "Pods-LighterAppDelegate_Tests" */; 340 | buildPhases = ( 341 | C5DA99C4708353E2CBD798119432E8B7 /* Sources */, 342 | F9855BF875BA04406BA8E85E311859A1 /* Frameworks */, 343 | 209E2ACCBB37E703F3CFDDD7F0A8AE5A /* Headers */, 344 | ); 345 | buildRules = ( 346 | ); 347 | dependencies = ( 348 | BBC7D62167BA37ABF5D248FECAA3F4AF /* PBXTargetDependency */, 349 | ); 350 | name = "Pods-LighterAppDelegate_Tests"; 351 | productName = "Pods-LighterAppDelegate_Tests"; 352 | productReference = 3F71F15AF281B51291C6A8DA01837552 /* Pods_LighterAppDelegate_Tests.framework */; 353 | productType = "com.apple.product-type.framework"; 354 | }; 355 | 27EEAC4B5F0E08CD182AAF8227ABDDA2 /* LighterAppDelegate-LighterAppDelegate */ = { 356 | isa = PBXNativeTarget; 357 | buildConfigurationList = FB8211380C193CCA590C5C21F660E87C /* Build configuration list for PBXNativeTarget "LighterAppDelegate-LighterAppDelegate" */; 358 | buildPhases = ( 359 | 37FA313987E91E7944055FF032F932AC /* Sources */, 360 | 3FF064C07A3F482795D4DCEE4A19C774 /* Frameworks */, 361 | 0A637CC86A603168333B34892F7B5428 /* Resources */, 362 | ); 363 | buildRules = ( 364 | ); 365 | dependencies = ( 366 | ); 367 | name = "LighterAppDelegate-LighterAppDelegate"; 368 | productName = "LighterAppDelegate-LighterAppDelegate"; 369 | productReference = 161D5B9A8176DDD86CF94357E747DAA5 /* LighterAppDelegate.bundle */; 370 | productType = "com.apple.product-type.bundle"; 371 | }; 372 | 9A8594DE27A3E15A42914F7202A36925 /* Pods-LighterAppDelegate_Example */ = { 373 | isa = PBXNativeTarget; 374 | buildConfigurationList = FC7F95C97C861294A6ADF6C284AF00D0 /* Build configuration list for PBXNativeTarget "Pods-LighterAppDelegate_Example" */; 375 | buildPhases = ( 376 | 425FA90EBF0F86A527C939A68FA09F19 /* Sources */, 377 | 25217B8A462BDF6B812C09A6A33BF981 /* Frameworks */, 378 | 4CC7E39D0EAA5DCEEA5D209ECDB70BC3 /* Headers */, 379 | ); 380 | buildRules = ( 381 | ); 382 | dependencies = ( 383 | FB52E301D4EFFA7FDCC948B607B6E43F /* PBXTargetDependency */, 384 | ); 385 | name = "Pods-LighterAppDelegate_Example"; 386 | productName = "Pods-LighterAppDelegate_Example"; 387 | productReference = F2218BD460A8537AEB52E4093B0D6D97 /* Pods_LighterAppDelegate_Example.framework */; 388 | productType = "com.apple.product-type.framework"; 389 | }; 390 | 9EE1E5E5EDD1A6A9306E74002AC0AB26 /* LighterAppDelegate */ = { 391 | isa = PBXNativeTarget; 392 | buildConfigurationList = 2593B7233F8A554FB9257ECA54E925CB /* Build configuration list for PBXNativeTarget "LighterAppDelegate" */; 393 | buildPhases = ( 394 | DE498ADDAF5CA354594FAC131A42E1ED /* Sources */, 395 | AD4EF3EBF7B1B30160D2B01E1A0B8B0E /* Frameworks */, 396 | C4B20DF58CF3229F377D1F5B07F5D274 /* Resources */, 397 | B39DF0214A5C91182EB458EB10F8C7CD /* Headers */, 398 | ); 399 | buildRules = ( 400 | ); 401 | dependencies = ( 402 | 8C25D254ECC3F3328AFCDD6EA0D59E1E /* PBXTargetDependency */, 403 | ); 404 | name = LighterAppDelegate; 405 | productName = LighterAppDelegate; 406 | productReference = 967366FF4A196812F19A17F2D436AD17 /* LighterAppDelegate.framework */; 407 | productType = "com.apple.product-type.framework"; 408 | }; 409 | /* End PBXNativeTarget section */ 410 | 411 | /* Begin PBXProject section */ 412 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 413 | isa = PBXProject; 414 | attributes = { 415 | LastSwiftUpdateCheck = 0700; 416 | LastUpgradeCheck = 0700; 417 | ORGANIZATIONNAME = Fantageek; 418 | }; 419 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 420 | compatibilityVersion = "Xcode 3.2"; 421 | developmentRegion = English; 422 | hasScannedForEncodings = 0; 423 | knownRegions = ( 424 | en, 425 | ); 426 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 427 | productRefGroup = 7BDE1A5DEB80167D3D2A3EDC3FF81006 /* Products */; 428 | projectDirPath = ""; 429 | projectRoot = ""; 430 | targets = ( 431 | 9EE1E5E5EDD1A6A9306E74002AC0AB26 /* LighterAppDelegate */, 432 | 27EEAC4B5F0E08CD182AAF8227ABDDA2 /* LighterAppDelegate-LighterAppDelegate */, 433 | 9A8594DE27A3E15A42914F7202A36925 /* Pods-LighterAppDelegate_Example */, 434 | 13F258EA975417BE0E6772A16F016289 /* Pods-LighterAppDelegate_Tests */, 435 | ); 436 | }; 437 | /* End PBXProject section */ 438 | 439 | /* Begin PBXResourcesBuildPhase section */ 440 | 0A637CC86A603168333B34892F7B5428 /* Resources */ = { 441 | isa = PBXResourcesBuildPhase; 442 | buildActionMask = 2147483647; 443 | files = ( 444 | ); 445 | runOnlyForDeploymentPostprocessing = 0; 446 | }; 447 | C4B20DF58CF3229F377D1F5B07F5D274 /* Resources */ = { 448 | isa = PBXResourcesBuildPhase; 449 | buildActionMask = 2147483647; 450 | files = ( 451 | 1B1ABCDC26C475B44A2645FC57F0E63F /* LighterAppDelegate.bundle in Resources */, 452 | ); 453 | runOnlyForDeploymentPostprocessing = 0; 454 | }; 455 | /* End PBXResourcesBuildPhase section */ 456 | 457 | /* Begin PBXSourcesBuildPhase section */ 458 | 37FA313987E91E7944055FF032F932AC /* Sources */ = { 459 | isa = PBXSourcesBuildPhase; 460 | buildActionMask = 2147483647; 461 | files = ( 462 | ); 463 | runOnlyForDeploymentPostprocessing = 0; 464 | }; 465 | 425FA90EBF0F86A527C939A68FA09F19 /* Sources */ = { 466 | isa = PBXSourcesBuildPhase; 467 | buildActionMask = 2147483647; 468 | files = ( 469 | 32E863A336D357D835935F18F2B4589D /* Pods-LighterAppDelegate_Example-dummy.m in Sources */, 470 | ); 471 | runOnlyForDeploymentPostprocessing = 0; 472 | }; 473 | C5DA99C4708353E2CBD798119432E8B7 /* Sources */ = { 474 | isa = PBXSourcesBuildPhase; 475 | buildActionMask = 2147483647; 476 | files = ( 477 | F9512119C32C04D8AC0A2AC540AEADEC /* Pods-LighterAppDelegate_Tests-dummy.m in Sources */, 478 | ); 479 | runOnlyForDeploymentPostprocessing = 0; 480 | }; 481 | DE498ADDAF5CA354594FAC131A42E1ED /* Sources */ = { 482 | isa = PBXSourcesBuildPhase; 483 | buildActionMask = 2147483647; 484 | files = ( 485 | D27CC1D71C496C04001EC083 /* Dispatcher+DataInBackground.swift in Sources */, 486 | D27CC1DC1C496C04001EC083 /* Dispatcher+RemoteNotification.swift in Sources */, 487 | D27CC1DB1C496C04001EC083 /* Dispatcher+QuickAction.swift in Sources */, 488 | D27CC1DE1C496C04001EC083 /* Dispatcher+URL.swift in Sources */, 489 | D27CC1DA1C496C04001EC083 /* Dispatcher+LocalNotification.swift in Sources */, 490 | A093EE159BC3078FFC3F2177BC04C86D /* LighterAppDelegate-dummy.m in Sources */, 491 | D27CC1D51C496C04001EC083 /* Dispatcher+AppStateRestoration.swift in Sources */, 492 | D27CC1D91C496C04001EC083 /* Dispatcher+Interface.swift in Sources */, 493 | D27CC1D31C496C04001EC083 /* Dispatcher+AppExtension.swift in Sources */, 494 | D27CC1E01C496C04001EC083 /* Dispatcher.swift in Sources */, 495 | D27CC1D81C496C04001EC083 /* Dispatcher+HealthKit.swift in Sources */, 496 | D27CC1DF1C496C04001EC083 /* Dispatcher+WatchKit.swift in Sources */, 497 | D27CC1D61C496C04001EC083 /* Dispatcher+Continuity.swift in Sources */, 498 | D27CC1D41C496C04001EC083 /* Dispatcher+AppStateChanges.swift in Sources */, 499 | D27CC1E21C496C15001EC083 /* LighterAppDelegate.swift in Sources */, 500 | D27CC1DD1C496C04001EC083 /* Dispatcher+SystemEvents.swift in Sources */, 501 | ); 502 | runOnlyForDeploymentPostprocessing = 0; 503 | }; 504 | /* End PBXSourcesBuildPhase section */ 505 | 506 | /* Begin PBXTargetDependency section */ 507 | 8C25D254ECC3F3328AFCDD6EA0D59E1E /* PBXTargetDependency */ = { 508 | isa = PBXTargetDependency; 509 | name = "LighterAppDelegate-LighterAppDelegate"; 510 | target = 27EEAC4B5F0E08CD182AAF8227ABDDA2 /* LighterAppDelegate-LighterAppDelegate */; 511 | targetProxy = D4581DAA696A3E023F3CB1D37D1F569B /* PBXContainerItemProxy */; 512 | }; 513 | BBC7D62167BA37ABF5D248FECAA3F4AF /* PBXTargetDependency */ = { 514 | isa = PBXTargetDependency; 515 | name = LighterAppDelegate; 516 | target = 9EE1E5E5EDD1A6A9306E74002AC0AB26 /* LighterAppDelegate */; 517 | targetProxy = 009B79055C23237F66AD381BD664BE17 /* PBXContainerItemProxy */; 518 | }; 519 | FB52E301D4EFFA7FDCC948B607B6E43F /* PBXTargetDependency */ = { 520 | isa = PBXTargetDependency; 521 | name = LighterAppDelegate; 522 | target = 9EE1E5E5EDD1A6A9306E74002AC0AB26 /* LighterAppDelegate */; 523 | targetProxy = 76B556713558A48C699EA42364E60A3E /* PBXContainerItemProxy */; 524 | }; 525 | /* End PBXTargetDependency section */ 526 | 527 | /* Begin XCBuildConfiguration section */ 528 | 10DE1947DAC0ED28F6C0A9F9BD75D546 /* Release */ = { 529 | isa = XCBuildConfiguration; 530 | buildSettings = { 531 | ALWAYS_SEARCH_USER_PATHS = NO; 532 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 533 | CLANG_CXX_LIBRARY = "libc++"; 534 | CLANG_ENABLE_MODULES = YES; 535 | CLANG_ENABLE_OBJC_ARC = YES; 536 | CLANG_WARN_BOOL_CONVERSION = YES; 537 | CLANG_WARN_CONSTANT_CONVERSION = YES; 538 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 539 | CLANG_WARN_EMPTY_BODY = YES; 540 | CLANG_WARN_ENUM_CONVERSION = YES; 541 | CLANG_WARN_INT_CONVERSION = YES; 542 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 543 | CLANG_WARN_UNREACHABLE_CODE = YES; 544 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 545 | COPY_PHASE_STRIP = YES; 546 | ENABLE_NS_ASSERTIONS = NO; 547 | GCC_C_LANGUAGE_STANDARD = gnu99; 548 | GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; 549 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 550 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 551 | GCC_WARN_UNDECLARED_SELECTOR = YES; 552 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 553 | GCC_WARN_UNUSED_FUNCTION = YES; 554 | GCC_WARN_UNUSED_VARIABLE = YES; 555 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 556 | STRIP_INSTALLED_PRODUCT = NO; 557 | SYMROOT = "${SRCROOT}/../build"; 558 | VALIDATE_PRODUCT = YES; 559 | }; 560 | name = Release; 561 | }; 562 | 1FCD513FC422D4C73317252E77C04BAE /* Release */ = { 563 | isa = XCBuildConfiguration; 564 | baseConfigurationReference = E97D430C422646DA0780B3D679E14AB9 /* LighterAppDelegate.xcconfig */; 565 | buildSettings = { 566 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 567 | CURRENT_PROJECT_VERSION = 1; 568 | DEFINES_MODULE = YES; 569 | DYLIB_COMPATIBILITY_VERSION = 1; 570 | DYLIB_CURRENT_VERSION = 1; 571 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 572 | ENABLE_STRICT_OBJC_MSGSEND = YES; 573 | GCC_PREFIX_HEADER = "Target Support Files/LighterAppDelegate/LighterAppDelegate-prefix.pch"; 574 | INFOPLIST_FILE = "Target Support Files/LighterAppDelegate/Info.plist"; 575 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 576 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 577 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 578 | MODULEMAP_FILE = "Target Support Files/LighterAppDelegate/LighterAppDelegate.modulemap"; 579 | MTL_ENABLE_DEBUG_INFO = NO; 580 | PRODUCT_NAME = LighterAppDelegate; 581 | SDKROOT = iphoneos; 582 | SKIP_INSTALL = YES; 583 | TARGETED_DEVICE_FAMILY = "1,2"; 584 | VERSIONING_SYSTEM = "apple-generic"; 585 | VERSION_INFO_PREFIX = ""; 586 | }; 587 | name = Release; 588 | }; 589 | 39C5CC948DBAA40C2C6BBC4C65F4010F /* Release */ = { 590 | isa = XCBuildConfiguration; 591 | baseConfigurationReference = E97D430C422646DA0780B3D679E14AB9 /* LighterAppDelegate.xcconfig */; 592 | buildSettings = { 593 | ENABLE_STRICT_OBJC_MSGSEND = YES; 594 | PRODUCT_NAME = LighterAppDelegate; 595 | SDKROOT = iphoneos; 596 | SKIP_INSTALL = YES; 597 | WRAPPER_EXTENSION = bundle; 598 | }; 599 | name = Release; 600 | }; 601 | 3FDF2FB5F3E965B39785F9D8984EF819 /* Debug */ = { 602 | isa = XCBuildConfiguration; 603 | baseConfigurationReference = CA72B356FADBDBB727FDB8C63615FA7C /* Pods-LighterAppDelegate_Example.debug.xcconfig */; 604 | buildSettings = { 605 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 606 | CURRENT_PROJECT_VERSION = 1; 607 | DEFINES_MODULE = YES; 608 | DYLIB_COMPATIBILITY_VERSION = 1; 609 | DYLIB_CURRENT_VERSION = 1; 610 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 611 | ENABLE_STRICT_OBJC_MSGSEND = YES; 612 | INFOPLIST_FILE = "Target Support Files/Pods-LighterAppDelegate_Example/Info.plist"; 613 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 614 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 615 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 616 | MACH_O_TYPE = staticlib; 617 | MODULEMAP_FILE = "Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.modulemap"; 618 | MTL_ENABLE_DEBUG_INFO = YES; 619 | OTHER_LDFLAGS = ""; 620 | OTHER_LIBTOOLFLAGS = ""; 621 | PODS_ROOT = "$(SRCROOT)"; 622 | PRODUCT_NAME = Pods_LighterAppDelegate_Example; 623 | SDKROOT = iphoneos; 624 | SKIP_INSTALL = YES; 625 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 626 | TARGETED_DEVICE_FAMILY = "1,2"; 627 | VERSIONING_SYSTEM = "apple-generic"; 628 | VERSION_INFO_PREFIX = ""; 629 | }; 630 | name = Debug; 631 | }; 632 | 45B3C9C79AB6D9478C59CA29AB832E3E /* Release */ = { 633 | isa = XCBuildConfiguration; 634 | baseConfigurationReference = A26DA3B2CD48B766B4337279EF6D2294 /* Pods-LighterAppDelegate_Example.release.xcconfig */; 635 | buildSettings = { 636 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 637 | CURRENT_PROJECT_VERSION = 1; 638 | DEFINES_MODULE = YES; 639 | DYLIB_COMPATIBILITY_VERSION = 1; 640 | DYLIB_CURRENT_VERSION = 1; 641 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 642 | ENABLE_STRICT_OBJC_MSGSEND = YES; 643 | INFOPLIST_FILE = "Target Support Files/Pods-LighterAppDelegate_Example/Info.plist"; 644 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 645 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 646 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 647 | MACH_O_TYPE = staticlib; 648 | MODULEMAP_FILE = "Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.modulemap"; 649 | MTL_ENABLE_DEBUG_INFO = NO; 650 | OTHER_LDFLAGS = ""; 651 | OTHER_LIBTOOLFLAGS = ""; 652 | PODS_ROOT = "$(SRCROOT)"; 653 | PRODUCT_NAME = Pods_LighterAppDelegate_Example; 654 | SDKROOT = iphoneos; 655 | SKIP_INSTALL = YES; 656 | TARGETED_DEVICE_FAMILY = "1,2"; 657 | VERSIONING_SYSTEM = "apple-generic"; 658 | VERSION_INFO_PREFIX = ""; 659 | }; 660 | name = Release; 661 | }; 662 | 552D02D5BA751AC2E8790D2811D496CA /* Debug */ = { 663 | isa = XCBuildConfiguration; 664 | buildSettings = { 665 | ALWAYS_SEARCH_USER_PATHS = NO; 666 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 667 | CLANG_CXX_LIBRARY = "libc++"; 668 | CLANG_ENABLE_MODULES = YES; 669 | CLANG_ENABLE_OBJC_ARC = YES; 670 | CLANG_WARN_BOOL_CONVERSION = YES; 671 | CLANG_WARN_CONSTANT_CONVERSION = YES; 672 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 673 | CLANG_WARN_EMPTY_BODY = YES; 674 | CLANG_WARN_ENUM_CONVERSION = YES; 675 | CLANG_WARN_INT_CONVERSION = YES; 676 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 677 | CLANG_WARN_UNREACHABLE_CODE = YES; 678 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 679 | COPY_PHASE_STRIP = NO; 680 | GCC_C_LANGUAGE_STANDARD = gnu99; 681 | GCC_DYNAMIC_NO_PIC = NO; 682 | GCC_OPTIMIZATION_LEVEL = 0; 683 | GCC_PREPROCESSOR_DEFINITIONS = ( 684 | "DEBUG=1", 685 | "$(inherited)", 686 | ); 687 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 688 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 689 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 690 | GCC_WARN_UNDECLARED_SELECTOR = YES; 691 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 692 | GCC_WARN_UNUSED_FUNCTION = YES; 693 | GCC_WARN_UNUSED_VARIABLE = YES; 694 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 695 | ONLY_ACTIVE_ARCH = YES; 696 | STRIP_INSTALLED_PRODUCT = NO; 697 | SYMROOT = "${SRCROOT}/../build"; 698 | }; 699 | name = Debug; 700 | }; 701 | 7B4D7FF7C2A26AE6C1FAB8E608A0BC8E /* Debug */ = { 702 | isa = XCBuildConfiguration; 703 | baseConfigurationReference = E4269A891597963ED8C08C5DF2B8B7CB /* Pods-LighterAppDelegate_Tests.debug.xcconfig */; 704 | buildSettings = { 705 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 706 | CURRENT_PROJECT_VERSION = 1; 707 | DEFINES_MODULE = YES; 708 | DYLIB_COMPATIBILITY_VERSION = 1; 709 | DYLIB_CURRENT_VERSION = 1; 710 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 711 | ENABLE_STRICT_OBJC_MSGSEND = YES; 712 | INFOPLIST_FILE = "Target Support Files/Pods-LighterAppDelegate_Tests/Info.plist"; 713 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 714 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 715 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 716 | MACH_O_TYPE = staticlib; 717 | MODULEMAP_FILE = "Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.modulemap"; 718 | MTL_ENABLE_DEBUG_INFO = YES; 719 | OTHER_LDFLAGS = ""; 720 | OTHER_LIBTOOLFLAGS = ""; 721 | PODS_ROOT = "$(SRCROOT)"; 722 | PRODUCT_NAME = Pods_LighterAppDelegate_Tests; 723 | SDKROOT = iphoneos; 724 | SKIP_INSTALL = YES; 725 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 726 | TARGETED_DEVICE_FAMILY = "1,2"; 727 | VERSIONING_SYSTEM = "apple-generic"; 728 | VERSION_INFO_PREFIX = ""; 729 | }; 730 | name = Debug; 731 | }; 732 | 8F35246EA19659F4F63DC4ED079FF3E1 /* Debug */ = { 733 | isa = XCBuildConfiguration; 734 | baseConfigurationReference = E97D430C422646DA0780B3D679E14AB9 /* LighterAppDelegate.xcconfig */; 735 | buildSettings = { 736 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 737 | CURRENT_PROJECT_VERSION = 1; 738 | DEFINES_MODULE = YES; 739 | DYLIB_COMPATIBILITY_VERSION = 1; 740 | DYLIB_CURRENT_VERSION = 1; 741 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 742 | ENABLE_STRICT_OBJC_MSGSEND = YES; 743 | GCC_PREFIX_HEADER = "Target Support Files/LighterAppDelegate/LighterAppDelegate-prefix.pch"; 744 | INFOPLIST_FILE = "Target Support Files/LighterAppDelegate/Info.plist"; 745 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 746 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 747 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 748 | MODULEMAP_FILE = "Target Support Files/LighterAppDelegate/LighterAppDelegate.modulemap"; 749 | MTL_ENABLE_DEBUG_INFO = YES; 750 | PRODUCT_NAME = LighterAppDelegate; 751 | SDKROOT = iphoneos; 752 | SKIP_INSTALL = YES; 753 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 754 | TARGETED_DEVICE_FAMILY = "1,2"; 755 | VERSIONING_SYSTEM = "apple-generic"; 756 | VERSION_INFO_PREFIX = ""; 757 | }; 758 | name = Debug; 759 | }; 760 | B82E7ECD30E71155EEB7EC78A2AFB0A8 /* Debug */ = { 761 | isa = XCBuildConfiguration; 762 | baseConfigurationReference = E97D430C422646DA0780B3D679E14AB9 /* LighterAppDelegate.xcconfig */; 763 | buildSettings = { 764 | ENABLE_STRICT_OBJC_MSGSEND = YES; 765 | PRODUCT_NAME = LighterAppDelegate; 766 | SDKROOT = iphoneos; 767 | SKIP_INSTALL = YES; 768 | WRAPPER_EXTENSION = bundle; 769 | }; 770 | name = Debug; 771 | }; 772 | D0BA95B03CE6E09FA5D929A45E0B3D44 /* Release */ = { 773 | isa = XCBuildConfiguration; 774 | baseConfigurationReference = 677EE935BC9EE5F3C89CAC44C1908638 /* Pods-LighterAppDelegate_Tests.release.xcconfig */; 775 | buildSettings = { 776 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 777 | CURRENT_PROJECT_VERSION = 1; 778 | DEFINES_MODULE = YES; 779 | DYLIB_COMPATIBILITY_VERSION = 1; 780 | DYLIB_CURRENT_VERSION = 1; 781 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 782 | ENABLE_STRICT_OBJC_MSGSEND = YES; 783 | INFOPLIST_FILE = "Target Support Files/Pods-LighterAppDelegate_Tests/Info.plist"; 784 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 785 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 786 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 787 | MACH_O_TYPE = staticlib; 788 | MODULEMAP_FILE = "Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.modulemap"; 789 | MTL_ENABLE_DEBUG_INFO = NO; 790 | OTHER_LDFLAGS = ""; 791 | OTHER_LIBTOOLFLAGS = ""; 792 | PODS_ROOT = "$(SRCROOT)"; 793 | PRODUCT_NAME = Pods_LighterAppDelegate_Tests; 794 | SDKROOT = iphoneos; 795 | SKIP_INSTALL = YES; 796 | TARGETED_DEVICE_FAMILY = "1,2"; 797 | VERSIONING_SYSTEM = "apple-generic"; 798 | VERSION_INFO_PREFIX = ""; 799 | }; 800 | name = Release; 801 | }; 802 | /* End XCBuildConfiguration section */ 803 | 804 | /* Begin XCConfigurationList section */ 805 | 2593B7233F8A554FB9257ECA54E925CB /* Build configuration list for PBXNativeTarget "LighterAppDelegate" */ = { 806 | isa = XCConfigurationList; 807 | buildConfigurations = ( 808 | 8F35246EA19659F4F63DC4ED079FF3E1 /* Debug */, 809 | 1FCD513FC422D4C73317252E77C04BAE /* Release */, 810 | ); 811 | defaultConfigurationIsVisible = 0; 812 | defaultConfigurationName = Release; 813 | }; 814 | 2CB8CB3D2CB692D75E3DB20C42B067E4 /* Build configuration list for PBXNativeTarget "Pods-LighterAppDelegate_Tests" */ = { 815 | isa = XCConfigurationList; 816 | buildConfigurations = ( 817 | 7B4D7FF7C2A26AE6C1FAB8E608A0BC8E /* Debug */, 818 | D0BA95B03CE6E09FA5D929A45E0B3D44 /* Release */, 819 | ); 820 | defaultConfigurationIsVisible = 0; 821 | defaultConfigurationName = Release; 822 | }; 823 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 824 | isa = XCConfigurationList; 825 | buildConfigurations = ( 826 | 552D02D5BA751AC2E8790D2811D496CA /* Debug */, 827 | 10DE1947DAC0ED28F6C0A9F9BD75D546 /* Release */, 828 | ); 829 | defaultConfigurationIsVisible = 0; 830 | defaultConfigurationName = Release; 831 | }; 832 | FB8211380C193CCA590C5C21F660E87C /* Build configuration list for PBXNativeTarget "LighterAppDelegate-LighterAppDelegate" */ = { 833 | isa = XCConfigurationList; 834 | buildConfigurations = ( 835 | B82E7ECD30E71155EEB7EC78A2AFB0A8 /* Debug */, 836 | 39C5CC948DBAA40C2C6BBC4C65F4010F /* Release */, 837 | ); 838 | defaultConfigurationIsVisible = 0; 839 | defaultConfigurationName = Release; 840 | }; 841 | FC7F95C97C861294A6ADF6C284AF00D0 /* Build configuration list for PBXNativeTarget "Pods-LighterAppDelegate_Example" */ = { 842 | isa = XCConfigurationList; 843 | buildConfigurations = ( 844 | 3FDF2FB5F3E965B39785F9D8984EF819 /* Debug */, 845 | 45B3C9C79AB6D9478C59CA29AB832E3E /* Release */, 846 | ); 847 | defaultConfigurationIsVisible = 0; 848 | defaultConfigurationName = Release; 849 | }; 850 | /* End XCConfigurationList section */ 851 | }; 852 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 853 | } 854 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LighterAppDelegate.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LighterAppDelegate/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LighterAppDelegate/LighterAppDelegate-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_LighterAppDelegate : NSObject 3 | @end 4 | @implementation PodsDummy_LighterAppDelegate 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LighterAppDelegate/LighterAppDelegate-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LighterAppDelegate/LighterAppDelegate-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double LighterAppDelegateVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char LighterAppDelegateVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LighterAppDelegate/LighterAppDelegate.modulemap: -------------------------------------------------------------------------------- 1 | framework module LighterAppDelegate { 2 | umbrella header "LighterAppDelegate-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LighterAppDelegate/LighterAppDelegate.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/LighterAppDelegate" "${PODS_ROOT}/Headers/Public" 3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## LighterAppDelegate 5 | 6 | Copyright (c) 2016 Khoa Pham 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - http://cocoapods.org 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2016 Khoa Pham <onmyway133@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | Title 38 | LighterAppDelegate 39 | Type 40 | PSGroupSpecifier 41 | 42 | 43 | FooterText 44 | Generated by CocoaPods - http://cocoapods.org 45 | Title 46 | 47 | Type 48 | PSGroupSpecifier 49 | 50 | 51 | StringsTable 52 | Acknowledgements 53 | Title 54 | Acknowledgements 55 | 56 | 57 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LighterAppDelegate_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LighterAppDelegate_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | 86 | if [[ "$CONFIGURATION" == "Debug" ]]; then 87 | install_framework "Pods-LighterAppDelegate_Example/LighterAppDelegate.framework" 88 | fi 89 | if [[ "$CONFIGURATION" == "Release" ]]; then 90 | install_framework "Pods-LighterAppDelegate_Example/LighterAppDelegate.framework" 91 | fi 92 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | realpath() { 12 | DIRECTORY="$(cd "${1%/*}" && pwd)" 13 | FILENAME="${1##*/}" 14 | echo "$DIRECTORY/$FILENAME" 15 | } 16 | 17 | install_resource() 18 | { 19 | case $1 in 20 | *.storyboard) 21 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 22 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 23 | ;; 24 | *.xib) 25 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 26 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 27 | ;; 28 | *.framework) 29 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 30 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 31 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 32 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 33 | ;; 34 | *.xcdatamodel) 35 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 36 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 37 | ;; 38 | *.xcdatamodeld) 39 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 40 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 41 | ;; 42 | *.xcmappingmodel) 43 | echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" 44 | xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" 45 | ;; 46 | *.xcassets) 47 | ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") 48 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 49 | ;; 50 | /*) 51 | echo "$1" 52 | echo "$1" >> "$RESOURCES_TO_COPY" 53 | ;; 54 | *) 55 | echo "${PODS_ROOT}/$1" 56 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 57 | ;; 58 | esac 59 | } 60 | 61 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 62 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 63 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 64 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 65 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 66 | fi 67 | rm -f "$RESOURCES_TO_COPY" 68 | 69 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 70 | then 71 | case "${TARGETED_DEVICE_FAMILY}" in 72 | 1,2) 73 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 74 | ;; 75 | 1) 76 | TARGET_DEVICE_ARGS="--target-device iphone" 77 | ;; 78 | 2) 79 | TARGET_DEVICE_ARGS="--target-device ipad" 80 | ;; 81 | *) 82 | TARGET_DEVICE_ARGS="--target-device mac" 83 | ;; 84 | esac 85 | 86 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 87 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 88 | while read line; do 89 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 90 | XCASSET_FILES+=("$line") 91 | fi 92 | done <<<"$OTHER_XCASSETS" 93 | 94 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 95 | fi 96 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_LighterAppDelegate_ExampleVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_LighterAppDelegate_ExampleVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LighterAppDelegate.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "LighterAppDelegate" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LighterAppDelegate_Example 8 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LighterAppDelegate_Example { 2 | umbrella header "Pods-LighterAppDelegate_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Example/Pods-LighterAppDelegate_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LighterAppDelegate.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "LighterAppDelegate" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LighterAppDelegate_Example 8 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## LighterAppDelegate 5 | 6 | Copyright (c) 2016 Khoa Pham 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - http://cocoapods.org 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2016 Khoa Pham <onmyway133@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | Title 38 | LighterAppDelegate 39 | Type 40 | PSGroupSpecifier 41 | 42 | 43 | FooterText 44 | Generated by CocoaPods - http://cocoapods.org 45 | Title 46 | 47 | Type 48 | PSGroupSpecifier 49 | 50 | 51 | StringsTable 52 | Acknowledgements 53 | Title 54 | Acknowledgements 55 | 56 | 57 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LighterAppDelegate_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LighterAppDelegate_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | 86 | if [[ "$CONFIGURATION" == "Debug" ]]; then 87 | install_framework "Pods-LighterAppDelegate_Tests/LighterAppDelegate.framework" 88 | fi 89 | if [[ "$CONFIGURATION" == "Release" ]]; then 90 | install_framework "Pods-LighterAppDelegate_Tests/LighterAppDelegate.framework" 91 | fi 92 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | realpath() { 12 | DIRECTORY="$(cd "${1%/*}" && pwd)" 13 | FILENAME="${1##*/}" 14 | echo "$DIRECTORY/$FILENAME" 15 | } 16 | 17 | install_resource() 18 | { 19 | case $1 in 20 | *.storyboard) 21 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 22 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 23 | ;; 24 | *.xib) 25 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 26 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 27 | ;; 28 | *.framework) 29 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 30 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 31 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 32 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 33 | ;; 34 | *.xcdatamodel) 35 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 36 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 37 | ;; 38 | *.xcdatamodeld) 39 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 40 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 41 | ;; 42 | *.xcmappingmodel) 43 | echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" 44 | xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" 45 | ;; 46 | *.xcassets) 47 | ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") 48 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 49 | ;; 50 | /*) 51 | echo "$1" 52 | echo "$1" >> "$RESOURCES_TO_COPY" 53 | ;; 54 | *) 55 | echo "${PODS_ROOT}/$1" 56 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 57 | ;; 58 | esac 59 | } 60 | 61 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 62 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 63 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 64 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 65 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 66 | fi 67 | rm -f "$RESOURCES_TO_COPY" 68 | 69 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 70 | then 71 | case "${TARGETED_DEVICE_FAMILY}" in 72 | 1,2) 73 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 74 | ;; 75 | 1) 76 | TARGET_DEVICE_ARGS="--target-device iphone" 77 | ;; 78 | 2) 79 | TARGET_DEVICE_ARGS="--target-device ipad" 80 | ;; 81 | *) 82 | TARGET_DEVICE_ARGS="--target-device mac" 83 | ;; 84 | esac 85 | 86 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 87 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 88 | while read line; do 89 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 90 | XCASSET_FILES+=("$line") 91 | fi 92 | done <<<"$OTHER_XCASSETS" 93 | 94 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 95 | fi 96 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | 4 | FOUNDATION_EXPORT double Pods_LighterAppDelegate_TestsVersionNumber; 5 | FOUNDATION_EXPORT const unsigned char Pods_LighterAppDelegate_TestsVersionString[]; 6 | 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LighterAppDelegate.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "LighterAppDelegate" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LighterAppDelegate_Tests 8 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LighterAppDelegate_Tests { 2 | umbrella header "Pods-LighterAppDelegate_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LighterAppDelegate_Tests/Pods-LighterAppDelegate_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | EMBEDDED_CONTENT_CONTAINS_SWIFT = YES 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LighterAppDelegate.framework/Headers" 5 | OTHER_LDFLAGS = $(inherited) -framework "LighterAppDelegate" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LighterAppDelegate_Tests 8 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Example/Tests/Tests.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import XCTest 3 | import LighterAppDelegate 4 | 5 | class Tests: XCTestCase { 6 | 7 | override func setUp() { 8 | super.setUp() 9 | // Put setup code here. This method is called before the invocation of each test method in the class. 10 | } 11 | 12 | override func tearDown() { 13 | // Put teardown code here. This method is called after the invocation of each test method in the class. 14 | super.tearDown() 15 | } 16 | 17 | func testExample() { 18 | // This is an example of a functional test case. 19 | XCTAssert(true, "Pass") 20 | } 21 | 22 | func testPerformanceExample() { 23 | // This is an example of a performance test case. 24 | self.measureBlock() { 25 | // Put the code you want to measure the time of here. 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Khoa Pham 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /LighterAppDelegate.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "LighterAppDelegate" 3 | s.version = "0.1.0" 4 | s.summary = "Lighter AppDelegate by dispatching events" 5 | 6 | s.homepage = "https://github.com/onmyway133/LighterAppDelegate" 7 | # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" 8 | s.license = 'MIT' 9 | s.author = { "Khoa Pham" => "onmyway133@gmail.com" } 10 | s.source = { :git => "https://github.com/onmyway133/LighterAppDelegate.git", :tag => s.version.to_s } 11 | s.social_media_url = 'https://twitter.com/onmyway133' 12 | 13 | s.platform = :ios, '8.0' 14 | s.requires_arc = true 15 | 16 | s.source_files = 'Pod/Classes/**/*' 17 | s.resource_bundles = { 18 | 'LighterAppDelegate' => ['Pod/Assets/*.png'] 19 | } 20 | 21 | # s.public_header_files = 'Pod/Classes/**/*.h' 22 | s.frameworks = 'UIKit' 23 | # s.dependency 'AFNetworking', '~> 2.3' 24 | end 25 | -------------------------------------------------------------------------------- /Pod/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/LighterAppDelegate/b5f182371f510364c73e6ce907ca9fdb91153013/Pod/Assets/.gitkeep -------------------------------------------------------------------------------- /Pod/Classes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/LighterAppDelegate/b5f182371f510364c73e6ce907ca9fdb91153013/Pod/Classes/.gitkeep -------------------------------------------------------------------------------- /Pod/Classes/AppDelegate/LighterAppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LighterAppDelegate.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/16/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public class LighterAppDelegate: UIResponder, UIApplicationDelegate { 12 | public func dispatcher() -> Dispatcher { 13 | fatalError("Subclass must override") 14 | } 15 | 16 | // MARK: AppStateChanges 17 | public func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 18 | return dispatcher().application(application, willFinishLaunchingWithOptions: launchOptions) 19 | } 20 | 21 | public func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 22 | return dispatcher().application(application, didFinishLaunchingWithOptions: launchOptions) 23 | } 24 | 25 | public func applicationDidFinishLaunching(application: UIApplication) { 26 | dispatcher().applicationDidFinishLaunching(application) 27 | } 28 | 29 | public func applicationDidBecomeActive(application: UIApplication) { 30 | dispatcher().applicationDidBecomeActive(application) 31 | } 32 | 33 | public func applicationWillResignActive(application: UIApplication) { 34 | dispatcher().applicationWillResignActive(application) 35 | } 36 | 37 | public func applicationDidEnterBackground(application: UIApplication) { 38 | dispatcher().applicationDidEnterBackground(application) 39 | } 40 | 41 | public func applicationWillEnterForeground(application: UIApplication) { 42 | dispatcher().applicationWillEnterForeground(application) 43 | } 44 | 45 | public func applicationWillTerminate(application: UIApplication) { 46 | dispatcher().applicationWillTerminate(application) 47 | } 48 | 49 | // URL 50 | public func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool { 51 | return dispatcher().application(application, handleOpenURL: url) 52 | } 53 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+AppExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+AppExtension.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Disallowing Specified App Extension Types 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: String) -> Bool { 14 | var result = false 15 | 16 | services.forEach { service in 17 | result = service.application?(application, shouldAllowExtensionPointIdentifier: extensionPointIdentifier) ?? false 18 | } 19 | 20 | return result 21 | } 22 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+AppStateChanges.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+AppStateChanges.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // MARK: Responding to App State Changes 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 14 | services.forEach { service in 15 | service.application?(application, willFinishLaunchingWithOptions: launchOptions) 16 | } 17 | 18 | return true 19 | } 20 | 21 | public func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 22 | services.forEach { service in 23 | service.application?(application, didFinishLaunchingWithOptions: launchOptions) 24 | } 25 | 26 | return true 27 | } 28 | 29 | public func applicationDidFinishLaunching(application: UIApplication) { 30 | services.forEach { service in 31 | service.applicationDidFinishLaunching?(application) 32 | } 33 | } 34 | 35 | public func applicationDidBecomeActive(application: UIApplication) { 36 | services.forEach { service in 37 | service.applicationDidBecomeActive?(application) 38 | } 39 | } 40 | 41 | public func applicationWillResignActive(application: UIApplication) { 42 | services.forEach { service in 43 | service.applicationWillResignActive?(application) 44 | } 45 | } 46 | 47 | public func applicationDidEnterBackground(application: UIApplication) { 48 | services.forEach { service in 49 | service.applicationDidEnterBackground?(application) 50 | } 51 | } 52 | 53 | public func applicationWillEnterForeground(application: UIApplication) { 54 | services.forEach { service in 55 | service.applicationWillEnterForeground?(application) 56 | } 57 | } 58 | 59 | public func applicationWillTerminate(application: UIApplication) { 60 | services.forEach { service in 61 | service.applicationWillTerminate?(application) 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+AppStateRestoration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+AppStateRestoration.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Managing App State Restoration 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, shouldSaveApplicationState coder: NSCoder) -> Bool { 14 | 15 | var result = false 16 | 17 | services.forEach { service in 18 | result = service.application?(application, shouldSaveApplicationState: coder) ?? false 19 | } 20 | 21 | return result 22 | } 23 | 24 | public func application(application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool { 25 | 26 | var result = false 27 | 28 | services.forEach { service in 29 | result = service.application?(application, shouldRestoreApplicationState: coder) ?? false 30 | } 31 | 32 | return result 33 | } 34 | 35 | public func application(application: UIApplication, viewControllerWithRestorationIdentifierPath identifierComponents: [AnyObject], coder: NSCoder) -> UIViewController? { 36 | var result: UIViewController? = nil 37 | 38 | services.forEach { service in 39 | result = service.application?(application, viewControllerWithRestorationIdentifierPath: identifierComponents, coder: coder) ?? nil 40 | } 41 | 42 | return result 43 | } 44 | 45 | public func application(application: UIApplication, willEncodeRestorableStateWithCoder coder: NSCoder) { 46 | services.forEach { service in 47 | service.application?(application, willEncodeRestorableStateWithCoder: coder) 48 | } 49 | } 50 | 51 | public func application(application: UIApplication, didDecodeRestorableStateWithCoder coder: NSCoder) { 52 | services.forEach { service in 53 | service.application?(application, didDecodeRestorableStateWithCoder: coder) 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+Continuity.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+Continuity.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Continuing User Activity 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, willContinueUserActivityWithType userActivityType: String) -> Bool { 14 | var result = false 15 | 16 | services.forEach { service in 17 | result = service.application?(application, willContinueUserActivityWithType: userActivityType) ?? false 18 | } 19 | 20 | return result 21 | } 22 | 23 | public func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool { 24 | var result = false 25 | 26 | services.forEach { service in 27 | result = service.application?(application, continueUserActivity: userActivity, restorationHandler: restorationHandler) ?? false 28 | } 29 | 30 | return result 31 | } 32 | 33 | public func application(application: UIApplication, didUpdateUserActivity userActivity: NSUserActivity) { 34 | services.forEach { service in 35 | service.application?(application, didUpdateUserActivity: userActivity) 36 | } 37 | } 38 | 39 | public func application(application: UIApplication, didFailToContinueUserActivityWithType userActivityType: String, error: NSError) { 40 | services.forEach { service in 41 | service.application?(application, didFailToContinueUserActivityWithType: userActivityType, error: error) 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+DataInBackground.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+DataInBackground.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Downloading Data in the Background 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 14 | services.forEach { service in 15 | service.application?(application, performFetchWithCompletionHandler: completionHandler) 16 | } 17 | } 18 | 19 | public func application(application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: () -> Void) { 20 | services.forEach { service in 21 | service.application?(application, handleEventsForBackgroundURLSession: identifier, completionHandler: completionHandler) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+HealthKit.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+HealthKit.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Interacting With HealthKit 12 | public extension Dispatcher { 13 | @available(iOS 9.0, *) 14 | public func applicationShouldRequestHealthAuthorization(application: UIApplication) { 15 | services.forEach { service in 16 | service.applicationShouldRequestHealthAuthorization?(application) 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+Interface.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+Interface.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Managing Interface Geometry 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { 14 | var result: UIInterfaceOrientationMask = .Portrait 15 | 16 | services.forEach { service in 17 | result = service.application?(application, supportedInterfaceOrientationsForWindow: window) ?? .Portrait 18 | } 19 | 20 | return result 21 | } 22 | 23 | public func application(application: UIApplication, willChangeStatusBarOrientation newStatusBarOrientation: UIInterfaceOrientation, duration: NSTimeInterval) { 24 | services.forEach { service in 25 | service.application?(application, willChangeStatusBarOrientation: newStatusBarOrientation, duration: duration) 26 | } 27 | } 28 | 29 | public func application(application: UIApplication, didChangeStatusBarOrientation oldStatusBarOrientation: UIInterfaceOrientation) { 30 | services.forEach { service in 31 | service.application?(application, didChangeStatusBarOrientation: oldStatusBarOrientation) 32 | } 33 | } 34 | 35 | // This causes build problem 36 | // public func application(application: UIApplication, willChangeStatusBarFrame newStatusBarFrame: CGRect) { 37 | // services.forEach { service in 38 | // service.application?(application, willChangeStatusBarFrame: newStatusBarFrame) 39 | // } 40 | // } 41 | // 42 | // public func application(application: UIApplication, didChangeStatusBarFrame oldStatusBarFrame: CGRect) { 43 | // services.forEach { service in 44 | // service.application?(application, didChangeStatusBarFrame: oldStatusBarFrame) 45 | // } 46 | // } 47 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+LocalNotification.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+LocalNotification.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Handling Local Notifications 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) { 14 | services.forEach { service in 15 | service.application?(application, didRegisterUserNotificationSettings: notificationSettings) 16 | } 17 | } 18 | 19 | public func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { 20 | services.forEach { service in 21 | service.application?(application, didReceiveLocalNotification: notification) 22 | } 23 | } 24 | 25 | public func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) { 26 | services.forEach { service in 27 | service.application?(application, handleActionWithIdentifier: identifier, forLocalNotification: notification, completionHandler: completionHandler) 28 | } 29 | } 30 | 31 | @available(iOS 9.0, *) 32 | public func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [NSObject : AnyObject], completionHandler: () -> Void) { 33 | services.forEach { service in 34 | service.application?(application, handleActionWithIdentifier: identifier, forLocalNotification: notification, withResponseInfo: responseInfo, completionHandler: completionHandler) 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+QuickAction.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+QuickAction.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Handling Quick Actions 12 | public extension Dispatcher { 13 | @available(iOS 9.0, *) 14 | public func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) { 15 | services.forEach { service in 16 | service.application?(application, performActionForShortcutItem: shortcutItem, completionHandler: completionHandler) 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+RemoteNotification.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+RemoteNotification.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Handling Remote Notifications 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { 14 | services.forEach { service in 15 | service.application?(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken) 16 | } 17 | } 18 | 19 | public func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) { 20 | services.forEach { service in 21 | service.application?(application, didFailToRegisterForRemoteNotificationsWithError: error) 22 | } 23 | } 24 | 25 | public func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 26 | services.forEach { service in 27 | service.application?(application, didReceiveRemoteNotification: userInfo) 28 | } 29 | } 30 | 31 | public func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 32 | services.forEach { service in 33 | service.application?(application, didReceiveRemoteNotification: userInfo, fetchCompletionHandler: completionHandler) 34 | } 35 | } 36 | 37 | public func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], completionHandler: () -> Void) { 38 | services.forEach { service in 39 | service.application?(application, handleActionWithIdentifier: identifier, forRemoteNotification: userInfo, completionHandler: completionHandler) 40 | } 41 | } 42 | 43 | @available(iOS 9.0, *) 44 | public func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], withResponseInfo responseInfo: [NSObject : AnyObject], completionHandler: () -> Void) { 45 | services.forEach { service in 46 | service.application?(application, handleActionWithIdentifier: identifier, forRemoteNotification: userInfo, withResponseInfo: responseInfo, completionHandler: completionHandler) 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+SystemEvents.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+SystemEvents.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Responding to System Events 12 | public extension Dispatcher { 13 | public func applicationProtectedDataWillBecomeUnavailable(application: UIApplication) { 14 | services.forEach { service in 15 | service.applicationProtectedDataWillBecomeUnavailable?(application) 16 | } 17 | } 18 | 19 | public func applicationProtectedDataDidBecomeAvailable(application: UIApplication) { 20 | services.forEach { service in 21 | service.applicationProtectedDataDidBecomeAvailable?(application) 22 | } 23 | } 24 | 25 | public func applicationDidReceiveMemoryWarning(application: UIApplication) { 26 | services.forEach { service in 27 | service.applicationDidReceiveMemoryWarning?(application) 28 | } 29 | } 30 | 31 | public func applicationSignificantTimeChange(application: UIApplication) { 32 | services.forEach { service in 33 | service.applicationSignificantTimeChange?(application) 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+URL.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+URL.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Opening a URL-Specified Resource 12 | public extension Dispatcher { 13 | public func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool { 14 | var result = false 15 | 16 | services.forEach { service in 17 | result = service.application?(application, handleOpenURL: url) ?? false 18 | } 19 | 20 | return result 21 | } 22 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher+WatchKit.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher+WatchKit.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Interacting With WatchKit 12 | public extension Dispatcher { 13 | @available(iOS 8.2, *) 14 | public func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: ([NSObject : AnyObject]?) -> Void) { 15 | services.forEach { service in 16 | service.application?(application, handleWatchKitExtensionRequest: userInfo, reply: reply) 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Pod/Classes/Dispatcher/Dispatcher.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Dispatcher.swift 3 | // Pods 4 | // 5 | // Created by Khoa Pham on 1/15/16. 6 | // Copyright © 2016 Fantageek. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // Reference: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html?hl=ar#//apple_ref/occ/intfm/ 12 | 13 | public class Dispatcher : NSObject, UIApplicationDelegate { 14 | public let services: [UIApplicationDelegate] 15 | 16 | public init(services: [UIApplicationDelegate]) { 17 | self.services = services 18 | } 19 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LighterAppDelegate 2 | Lighter AppDelegate by dispatching events 3 | 4 | [![CI Status](http://img.shields.io/travis/Khoa Pham/LighterAppDelegate.svg?style=flat)](https://travis-ci.org/Khoa Pham/LighterAppDelegate) 5 | [![Version](https://img.shields.io/cocoapods/v/LighterAppDelegate.svg?style=flat)](http://cocoapods.org/pods/LighterAppDelegate) 6 | [![License](https://img.shields.io/cocoapods/l/LighterAppDelegate.svg?style=flat)](http://cocoapods.org/pods/LighterAppDelegate) 7 | [![Platform](https://img.shields.io/cocoapods/p/LighterAppDelegate.svg?style=flat)](http://cocoapods.org/pods/LighterAppDelegate) 8 | 9 | ## Usage 10 | 11 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 12 | 13 | ## Features 14 | 15 | ### Dispatching events 16 | 17 | - See [Lighter AppDelegate](http://www.fantageek.com/blog/2015/10/31/lighter-appdelegate/) 18 | - You can use either by composition or inheritance 19 | - Dispatching `UIApplicationDelegate` events into specific `Service` class. We can have RootService, DebugService, AnalyticsService, ... 20 | 21 | ```swift 22 | class RootService : NSObject, UIApplicationDelegate { 23 | func application(application: UIApplication, 24 | didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 25 | 26 | appDelegate().window = UIWindow(frame: UIScreen.mainScreen().bounds) 27 | showHome() 28 | appDelegate().window?.makeKeyAndVisible() 29 | 30 | return true 31 | } 32 | } 33 | 34 | extension RootService { 35 | func showHome() { 36 | let storyboard = UIStoryboard(name: "Main", bundle: nil) 37 | appDelegate().window?.rootViewController = storyboard.instantiateInitialViewController() 38 | } 39 | } 40 | 41 | extension RootService { 42 | func appDelegate() -> AppDelegate { 43 | return UIApplication.sharedApplication().delegate as! AppDelegate 44 | } 45 | } 46 | ``` 47 | 48 | ### Composition 49 | 50 | - Initialize `Dispatcher` with your list of services 51 | - Dispatch interested `UIApplicationDelegate` events to `Dispatcher` 52 | 53 | ```swift 54 | @UIApplicationMain 55 | class AppDelegate: UIResponder, UIApplicationDelegate { 56 | 57 | var window: UIWindow? 58 | let dispatcher = Dispatcher(services: [RootService()]) 59 | 60 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 61 | return dispatcher.application(application, didFinishLaunchingWithOptions: launchOptions) 62 | } 63 | } 64 | ``` 65 | 66 | ### Inheritance 67 | 68 | - Inherite from `LighterAppDelegate` 69 | - Override `dispatcher()` 70 | - `LighterAppDelegate` has default implementations for `App State Changes` and `URL` events, which is suitable for common usage. 71 | - If you want to receive more events, add more functions inside your AppDelegate and dispatch to your `Dispatcher` 72 | 73 | ```swift 74 | @UIApplicationMain 75 | class AppDelegate: LighterAppDelegate { 76 | 77 | var window: UIWindow? 78 | let simpleDispatcher = Dispatcher(services: [RootService()]) 79 | 80 | override func dispatcher() -> Dispatcher { 81 | return simpleDispatcher 82 | } 83 | 84 | func applicationDidReceiveMemoryWarning(application: UIApplication) { 85 | dispatcher().applicationDidReceiveMemoryWarning(application) 86 | } 87 | } 88 | ``` 89 | 90 | ### Warning 91 | 92 | - Only implement `UIApplicationDelegate` functions in case you truly need. Unnecessary functions can cause problems 93 | 94 | > You've implemented -[ application:performFetchWithCompletionHandler:], but you still need to add "fetch" to the list of your supported UIBackgroundModes in your Info.plist. 95 | 96 | > You've implemented -[ application:didReceiveRemoteNotification:fetchCompletionHandler:], but you still need to add "remote-notification" to the list of your supported UIBackgroundModes in your Info.plist. 97 | 98 | - Involving `remoteNotification` events also consider your app to [support Push Notification](https://forums.developer.apple.com/thread/15011) 99 | 100 | > Your app appears to include API used to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement 101 | 102 | - I 'd like `LighterAppDelegate` to be protocol with default implementations in its extension, but for now we can't provide default implementations for Objective-C protocols. 103 | 104 | ## Installation 105 | 106 | LighterAppDelegate is available through [CocoaPods](http://cocoapods.org). To install 107 | it, simply add the following line to your Podfile: 108 | 109 | ```ruby 110 | pod "LighterAppDelegate" 111 | ``` 112 | 113 | ## Credit 114 | Credit goes to http://sizeof.io/service-oriented-appdelegate/ 115 | 116 | ## Author 117 | 118 | Khoa Pham, onmyway133@gmail.com 119 | 120 | ## License 121 | 122 | LighterAppDelegate is available under the MIT license. See the LICENSE file for more info. 123 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj --------------------------------------------------------------------------------