├── .gitignore ├── GeekPark.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ └── lan.xcuserdatad │ └── UserInterfaceState.xcuserstate ├── GeekPark.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── GeekPark.xcscmblueprint │ └── IDEWorkspaceChecks.plist ├── GeekPark ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── iconMacHuge_512pt.png │ │ ├── iconMacHuge_512pt@2x.png │ │ ├── iconMacLarge_256pt.png │ │ ├── iconMacLarge_256pt@2x.png │ │ ├── iconMacMedium_128pt.png │ │ ├── iconMacMedium_128pt@2x.png │ │ ├── iconMacMicro_16pt.png │ │ ├── iconMacMicro_16pt@2x.png │ │ ├── iconMacSmall_32pt.png │ │ └── iconMacSmall_32pt@2x.png │ ├── Contents.json │ ├── icon-settings.imageset │ │ ├── Contents.json │ │ └── icon-settings.png │ ├── icon.imageset │ │ ├── Contents.json │ │ └── icon.png │ ├── statusIcon.imageset │ │ ├── Contents.json │ │ ├── statusIcon.png │ │ └── statusIcon@2x.png │ └── test.imageset │ │ ├── Contents.json │ │ └── test.jpg ├── Base.lproj │ └── MainMenu.xib ├── Controller │ ├── MainViewController.swift │ ├── PopViewController.swift │ └── PopViewController.xib ├── Info.plist ├── Model │ └── GPModel.swift ├── Network │ └── HttpHelper.swift └── Views │ └── GPCell.swift ├── GeekParkTests ├── GeekParkTests.swift └── Info.plist ├── GeekParkUITests ├── GeekParkUITests.swift └── Info.plist ├── LICENSE ├── Pod ├── Podfile ├── Podfile.lock ├── Pods ├── Manifest.lock └── Pods.xcodeproj │ └── project.pbxproj ├── README.md └── resources └── screenshot.png /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | ## Playgrounds 31 | timeline.xctimeline 32 | playground.xcworkspace 33 | 34 | # Swift Package Manager 35 | # 36 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 37 | # Packages/ 38 | .build/ 39 | 40 | # CocoaPods 41 | # 42 | # We recommend against adding the Pods directory to your .gitignore. However 43 | # you should judge for yourself, the pros and cons are mentioned at: 44 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 45 | # 46 | Pods/ 47 | 48 | # Carthage 49 | # 50 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 51 | # Carthage/Checkouts 52 | 53 | Carthage/Build 54 | 55 | # fastlane 56 | # 57 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 58 | # screenshots whenever they are needed. 59 | # For more information about the recommended setup visit: 60 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 61 | 62 | fastlane/report.xml 63 | fastlane/Preview.html 64 | fastlane/screenshots 65 | fastlane/test_output 66 | -------------------------------------------------------------------------------- /GeekPark.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3F0502BD1D6EE4F900EA24F0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F0502BC1D6EE4F900EA24F0 /* AppDelegate.swift */; }; 11 | 3F0502BF1D6EE4FA00EA24F0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3F0502BE1D6EE4FA00EA24F0 /* Assets.xcassets */; }; 12 | 3F0502C21D6EE4FA00EA24F0 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3F0502C01D6EE4FA00EA24F0 /* MainMenu.xib */; }; 13 | 3F0502CD1D6EE4FA00EA24F0 /* GeekParkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F0502CC1D6EE4FA00EA24F0 /* GeekParkTests.swift */; }; 14 | 3F0502D81D6EE4FA00EA24F0 /* GeekParkUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F0502D71D6EE4FA00EA24F0 /* GeekParkUITests.swift */; }; 15 | 3F0502FB1D6FD41900EA24F0 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F0502FA1D6FD41900EA24F0 /* MainViewController.swift */; }; 16 | 3F0502FD1D6FD41F00EA24F0 /* PopViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F0502FC1D6FD41F00EA24F0 /* PopViewController.swift */; }; 17 | 3F0502FF1D6FD42400EA24F0 /* PopViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3F0502FE1D6FD42400EA24F0 /* PopViewController.xib */; }; 18 | 3F0503011D6FD45E00EA24F0 /* HttpHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F0503001D6FD45E00EA24F0 /* HttpHelper.swift */; }; 19 | 3F8BA9491D7157EE00DD032C /* GPModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8BA9481D7157EE00DD032C /* GPModel.swift */; }; 20 | 3F8BA94D1D717F5000DD032C /* GPCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F8BA94C1D717F5000DD032C /* GPCell.swift */; }; 21 | 91210F0B144CD21438E8EC11 /* Pods_GeekPark.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D64DF004FFDDA52E8DBFAA35 /* Pods_GeekPark.framework */; }; 22 | /* End PBXBuildFile section */ 23 | 24 | /* Begin PBXContainerItemProxy section */ 25 | 3F0502C91D6EE4FA00EA24F0 /* PBXContainerItemProxy */ = { 26 | isa = PBXContainerItemProxy; 27 | containerPortal = 3F0502B11D6EE4F900EA24F0 /* Project object */; 28 | proxyType = 1; 29 | remoteGlobalIDString = 3F0502B81D6EE4F900EA24F0; 30 | remoteInfo = GeekPark; 31 | }; 32 | 3F0502D41D6EE4FA00EA24F0 /* PBXContainerItemProxy */ = { 33 | isa = PBXContainerItemProxy; 34 | containerPortal = 3F0502B11D6EE4F900EA24F0 /* Project object */; 35 | proxyType = 1; 36 | remoteGlobalIDString = 3F0502B81D6EE4F900EA24F0; 37 | remoteInfo = GeekPark; 38 | }; 39 | /* End PBXContainerItemProxy section */ 40 | 41 | /* Begin PBXFileReference section */ 42 | 3F0502B91D6EE4F900EA24F0 /* GeekPark.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GeekPark.app; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 3F0502BC1D6EE4F900EA24F0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 44 | 3F0502BE1D6EE4FA00EA24F0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 45 | 3F0502C11D6EE4FA00EA24F0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 46 | 3F0502C31D6EE4FA00EA24F0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 47 | 3F0502C81D6EE4FA00EA24F0 /* GeekParkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GeekParkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | 3F0502CC1D6EE4FA00EA24F0 /* GeekParkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeekParkTests.swift; sourceTree = ""; }; 49 | 3F0502CE1D6EE4FA00EA24F0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 50 | 3F0502D31D6EE4FA00EA24F0 /* GeekParkUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GeekParkUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 51 | 3F0502D71D6EE4FA00EA24F0 /* GeekParkUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeekParkUITests.swift; sourceTree = ""; }; 52 | 3F0502D91D6EE4FA00EA24F0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 53 | 3F0502FA1D6FD41900EA24F0 /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; 54 | 3F0502FC1D6FD41F00EA24F0 /* PopViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PopViewController.swift; sourceTree = ""; }; 55 | 3F0502FE1D6FD42400EA24F0 /* PopViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PopViewController.xib; sourceTree = ""; }; 56 | 3F0503001D6FD45E00EA24F0 /* HttpHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HttpHelper.swift; sourceTree = ""; }; 57 | 3F7750021F0BCD8D002CF8A6 /* libxml2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.tbd; path = usr/lib/libxml2.tbd; sourceTree = SDKROOT; }; 58 | 3F7750041F0BCD9D002CF8A6 /* libxml2.2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libxml2.2.tbd; path = usr/lib/libxml2.2.tbd; sourceTree = SDKROOT; }; 59 | 3F8BA9481D7157EE00DD032C /* GPModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GPModel.swift; sourceTree = ""; }; 60 | 3F8BA94C1D717F5000DD032C /* GPCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GPCell.swift; sourceTree = ""; }; 61 | 805A7607F982DFC2B6EB926F /* Pods-GeekPark.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GeekPark.release.xcconfig"; path = "Pods/Target Support Files/Pods-GeekPark/Pods-GeekPark.release.xcconfig"; sourceTree = ""; }; 62 | A0990BF6E61650AFB14C5D8F /* Pods-GeekPark.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GeekPark.debug.xcconfig"; path = "Pods/Target Support Files/Pods-GeekPark/Pods-GeekPark.debug.xcconfig"; sourceTree = ""; }; 63 | D64DF004FFDDA52E8DBFAA35 /* Pods_GeekPark.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_GeekPark.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 64 | /* End PBXFileReference section */ 65 | 66 | /* Begin PBXFrameworksBuildPhase section */ 67 | 3F0502B61D6EE4F900EA24F0 /* Frameworks */ = { 68 | isa = PBXFrameworksBuildPhase; 69 | buildActionMask = 2147483647; 70 | files = ( 71 | 91210F0B144CD21438E8EC11 /* Pods_GeekPark.framework in Frameworks */, 72 | ); 73 | runOnlyForDeploymentPostprocessing = 0; 74 | }; 75 | 3F0502C51D6EE4FA00EA24F0 /* Frameworks */ = { 76 | isa = PBXFrameworksBuildPhase; 77 | buildActionMask = 2147483647; 78 | files = ( 79 | ); 80 | runOnlyForDeploymentPostprocessing = 0; 81 | }; 82 | 3F0502D01D6EE4FA00EA24F0 /* Frameworks */ = { 83 | isa = PBXFrameworksBuildPhase; 84 | buildActionMask = 2147483647; 85 | files = ( 86 | ); 87 | runOnlyForDeploymentPostprocessing = 0; 88 | }; 89 | /* End PBXFrameworksBuildPhase section */ 90 | 91 | /* Begin PBXGroup section */ 92 | 3F0502B01D6EE4F900EA24F0 = { 93 | isa = PBXGroup; 94 | children = ( 95 | 3F0502BB1D6EE4F900EA24F0 /* GeekPark */, 96 | 3F0502CB1D6EE4FA00EA24F0 /* GeekParkTests */, 97 | 3F0502D61D6EE4FA00EA24F0 /* GeekParkUITests */, 98 | 3F0502BA1D6EE4F900EA24F0 /* Products */, 99 | BF9CEDC0687F38EE20FE1D4B /* Pods */, 100 | 525661BCAB0A2D0386C318EF /* Frameworks */, 101 | ); 102 | sourceTree = ""; 103 | }; 104 | 3F0502BA1D6EE4F900EA24F0 /* Products */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | 3F0502B91D6EE4F900EA24F0 /* GeekPark.app */, 108 | 3F0502C81D6EE4FA00EA24F0 /* GeekParkTests.xctest */, 109 | 3F0502D31D6EE4FA00EA24F0 /* GeekParkUITests.xctest */, 110 | ); 111 | name = Products; 112 | sourceTree = ""; 113 | }; 114 | 3F0502BB1D6EE4F900EA24F0 /* GeekPark */ = { 115 | isa = PBXGroup; 116 | children = ( 117 | 3F0502EF1D6F452600EA24F0 /* Network */, 118 | 3F0502ED1D6F449400EA24F0 /* Controller */, 119 | 3F0502EC1D6F448800EA24F0 /* Model */, 120 | 3F0502EB1D6F447500EA24F0 /* Views */, 121 | 3F0502BC1D6EE4F900EA24F0 /* AppDelegate.swift */, 122 | 3F0502BE1D6EE4FA00EA24F0 /* Assets.xcassets */, 123 | 3F0502C01D6EE4FA00EA24F0 /* MainMenu.xib */, 124 | 3F0502C31D6EE4FA00EA24F0 /* Info.plist */, 125 | ); 126 | path = GeekPark; 127 | sourceTree = ""; 128 | }; 129 | 3F0502CB1D6EE4FA00EA24F0 /* GeekParkTests */ = { 130 | isa = PBXGroup; 131 | children = ( 132 | 3F0502CC1D6EE4FA00EA24F0 /* GeekParkTests.swift */, 133 | 3F0502CE1D6EE4FA00EA24F0 /* Info.plist */, 134 | ); 135 | path = GeekParkTests; 136 | sourceTree = ""; 137 | }; 138 | 3F0502D61D6EE4FA00EA24F0 /* GeekParkUITests */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | 3F0502D71D6EE4FA00EA24F0 /* GeekParkUITests.swift */, 142 | 3F0502D91D6EE4FA00EA24F0 /* Info.plist */, 143 | ); 144 | path = GeekParkUITests; 145 | sourceTree = ""; 146 | }; 147 | 3F0502EB1D6F447500EA24F0 /* Views */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | 3F8BA94C1D717F5000DD032C /* GPCell.swift */, 151 | ); 152 | path = Views; 153 | sourceTree = ""; 154 | }; 155 | 3F0502EC1D6F448800EA24F0 /* Model */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | 3F8BA9481D7157EE00DD032C /* GPModel.swift */, 159 | ); 160 | path = Model; 161 | sourceTree = ""; 162 | }; 163 | 3F0502ED1D6F449400EA24F0 /* Controller */ = { 164 | isa = PBXGroup; 165 | children = ( 166 | 3F0502FA1D6FD41900EA24F0 /* MainViewController.swift */, 167 | 3F0502FC1D6FD41F00EA24F0 /* PopViewController.swift */, 168 | 3F0502FE1D6FD42400EA24F0 /* PopViewController.xib */, 169 | ); 170 | path = Controller; 171 | sourceTree = ""; 172 | }; 173 | 3F0502EF1D6F452600EA24F0 /* Network */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 3F0503001D6FD45E00EA24F0 /* HttpHelper.swift */, 177 | ); 178 | path = Network; 179 | sourceTree = ""; 180 | }; 181 | 525661BCAB0A2D0386C318EF /* Frameworks */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | 3F7750041F0BCD9D002CF8A6 /* libxml2.2.tbd */, 185 | 3F7750021F0BCD8D002CF8A6 /* libxml2.tbd */, 186 | D64DF004FFDDA52E8DBFAA35 /* Pods_GeekPark.framework */, 187 | ); 188 | name = Frameworks; 189 | sourceTree = ""; 190 | }; 191 | BF9CEDC0687F38EE20FE1D4B /* Pods */ = { 192 | isa = PBXGroup; 193 | children = ( 194 | A0990BF6E61650AFB14C5D8F /* Pods-GeekPark.debug.xcconfig */, 195 | 805A7607F982DFC2B6EB926F /* Pods-GeekPark.release.xcconfig */, 196 | ); 197 | name = Pods; 198 | sourceTree = ""; 199 | }; 200 | /* End PBXGroup section */ 201 | 202 | /* Begin PBXNativeTarget section */ 203 | 3F0502B81D6EE4F900EA24F0 /* GeekPark */ = { 204 | isa = PBXNativeTarget; 205 | buildConfigurationList = 3F0502DC1D6EE4FA00EA24F0 /* Build configuration list for PBXNativeTarget "GeekPark" */; 206 | buildPhases = ( 207 | C4E5F6AF50313A938434D05D /* [CP] Check Pods Manifest.lock */, 208 | 3F0502B51D6EE4F900EA24F0 /* Sources */, 209 | 3F0502B61D6EE4F900EA24F0 /* Frameworks */, 210 | 3F0502B71D6EE4F900EA24F0 /* Resources */, 211 | 451FD9F70F5FFD5AE954C0C6 /* [CP] Embed Pods Frameworks */, 212 | ); 213 | buildRules = ( 214 | ); 215 | dependencies = ( 216 | ); 217 | name = GeekPark; 218 | productName = GeekPark; 219 | productReference = 3F0502B91D6EE4F900EA24F0 /* GeekPark.app */; 220 | productType = "com.apple.product-type.application"; 221 | }; 222 | 3F0502C71D6EE4FA00EA24F0 /* GeekParkTests */ = { 223 | isa = PBXNativeTarget; 224 | buildConfigurationList = 3F0502DF1D6EE4FA00EA24F0 /* Build configuration list for PBXNativeTarget "GeekParkTests" */; 225 | buildPhases = ( 226 | 3F0502C41D6EE4FA00EA24F0 /* Sources */, 227 | 3F0502C51D6EE4FA00EA24F0 /* Frameworks */, 228 | 3F0502C61D6EE4FA00EA24F0 /* Resources */, 229 | ); 230 | buildRules = ( 231 | ); 232 | dependencies = ( 233 | 3F0502CA1D6EE4FA00EA24F0 /* PBXTargetDependency */, 234 | ); 235 | name = GeekParkTests; 236 | productName = GeekParkTests; 237 | productReference = 3F0502C81D6EE4FA00EA24F0 /* GeekParkTests.xctest */; 238 | productType = "com.apple.product-type.bundle.unit-test"; 239 | }; 240 | 3F0502D21D6EE4FA00EA24F0 /* GeekParkUITests */ = { 241 | isa = PBXNativeTarget; 242 | buildConfigurationList = 3F0502E21D6EE4FA00EA24F0 /* Build configuration list for PBXNativeTarget "GeekParkUITests" */; 243 | buildPhases = ( 244 | 3F0502CF1D6EE4FA00EA24F0 /* Sources */, 245 | 3F0502D01D6EE4FA00EA24F0 /* Frameworks */, 246 | 3F0502D11D6EE4FA00EA24F0 /* Resources */, 247 | ); 248 | buildRules = ( 249 | ); 250 | dependencies = ( 251 | 3F0502D51D6EE4FA00EA24F0 /* PBXTargetDependency */, 252 | ); 253 | name = GeekParkUITests; 254 | productName = GeekParkUITests; 255 | productReference = 3F0502D31D6EE4FA00EA24F0 /* GeekParkUITests.xctest */; 256 | productType = "com.apple.product-type.bundle.ui-testing"; 257 | }; 258 | /* End PBXNativeTarget section */ 259 | 260 | /* Begin PBXProject section */ 261 | 3F0502B11D6EE4F900EA24F0 /* Project object */ = { 262 | isa = PBXProject; 263 | attributes = { 264 | LastSwiftUpdateCheck = 0730; 265 | LastUpgradeCheck = 1240; 266 | ORGANIZATIONNAME = lan; 267 | TargetAttributes = { 268 | 3F0502B81D6EE4F900EA24F0 = { 269 | CreatedOnToolsVersion = 7.3.1; 270 | LastSwiftMigration = 0830; 271 | }; 272 | 3F0502C71D6EE4FA00EA24F0 = { 273 | CreatedOnToolsVersion = 7.3.1; 274 | LastSwiftMigration = 0830; 275 | TestTargetID = 3F0502B81D6EE4F900EA24F0; 276 | }; 277 | 3F0502D21D6EE4FA00EA24F0 = { 278 | CreatedOnToolsVersion = 7.3.1; 279 | LastSwiftMigration = 0830; 280 | TestTargetID = 3F0502B81D6EE4F900EA24F0; 281 | }; 282 | }; 283 | }; 284 | buildConfigurationList = 3F0502B41D6EE4F900EA24F0 /* Build configuration list for PBXProject "GeekPark" */; 285 | compatibilityVersion = "Xcode 3.2"; 286 | developmentRegion = en; 287 | hasScannedForEncodings = 0; 288 | knownRegions = ( 289 | en, 290 | Base, 291 | ); 292 | mainGroup = 3F0502B01D6EE4F900EA24F0; 293 | productRefGroup = 3F0502BA1D6EE4F900EA24F0 /* Products */; 294 | projectDirPath = ""; 295 | projectRoot = ""; 296 | targets = ( 297 | 3F0502B81D6EE4F900EA24F0 /* GeekPark */, 298 | 3F0502C71D6EE4FA00EA24F0 /* GeekParkTests */, 299 | 3F0502D21D6EE4FA00EA24F0 /* GeekParkUITests */, 300 | ); 301 | }; 302 | /* End PBXProject section */ 303 | 304 | /* Begin PBXResourcesBuildPhase section */ 305 | 3F0502B71D6EE4F900EA24F0 /* Resources */ = { 306 | isa = PBXResourcesBuildPhase; 307 | buildActionMask = 2147483647; 308 | files = ( 309 | 3F0502FF1D6FD42400EA24F0 /* PopViewController.xib in Resources */, 310 | 3F0502BF1D6EE4FA00EA24F0 /* Assets.xcassets in Resources */, 311 | 3F0502C21D6EE4FA00EA24F0 /* MainMenu.xib in Resources */, 312 | ); 313 | runOnlyForDeploymentPostprocessing = 0; 314 | }; 315 | 3F0502C61D6EE4FA00EA24F0 /* Resources */ = { 316 | isa = PBXResourcesBuildPhase; 317 | buildActionMask = 2147483647; 318 | files = ( 319 | ); 320 | runOnlyForDeploymentPostprocessing = 0; 321 | }; 322 | 3F0502D11D6EE4FA00EA24F0 /* Resources */ = { 323 | isa = PBXResourcesBuildPhase; 324 | buildActionMask = 2147483647; 325 | files = ( 326 | ); 327 | runOnlyForDeploymentPostprocessing = 0; 328 | }; 329 | /* End PBXResourcesBuildPhase section */ 330 | 331 | /* Begin PBXShellScriptBuildPhase section */ 332 | 451FD9F70F5FFD5AE954C0C6 /* [CP] Embed Pods Frameworks */ = { 333 | isa = PBXShellScriptBuildPhase; 334 | buildActionMask = 2147483647; 335 | files = ( 336 | ); 337 | inputPaths = ( 338 | "${PODS_ROOT}/Target Support Files/Pods-GeekPark/Pods-GeekPark-frameworks.sh", 339 | "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework", 340 | "${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework", 341 | "${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework", 342 | ); 343 | name = "[CP] Embed Pods Frameworks"; 344 | outputPaths = ( 345 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework", 346 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework", 347 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework", 348 | ); 349 | runOnlyForDeploymentPostprocessing = 0; 350 | shellPath = /bin/sh; 351 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-GeekPark/Pods-GeekPark-frameworks.sh\"\n"; 352 | showEnvVarsInLog = 0; 353 | }; 354 | C4E5F6AF50313A938434D05D /* [CP] Check Pods Manifest.lock */ = { 355 | isa = PBXShellScriptBuildPhase; 356 | buildActionMask = 2147483647; 357 | files = ( 358 | ); 359 | inputPaths = ( 360 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 361 | "${PODS_ROOT}/Manifest.lock", 362 | ); 363 | name = "[CP] Check Pods Manifest.lock"; 364 | outputPaths = ( 365 | "$(DERIVED_FILE_DIR)/Pods-GeekPark-checkManifestLockResult.txt", 366 | ); 367 | runOnlyForDeploymentPostprocessing = 0; 368 | shellPath = /bin/sh; 369 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 370 | showEnvVarsInLog = 0; 371 | }; 372 | /* End PBXShellScriptBuildPhase section */ 373 | 374 | /* Begin PBXSourcesBuildPhase section */ 375 | 3F0502B51D6EE4F900EA24F0 /* Sources */ = { 376 | isa = PBXSourcesBuildPhase; 377 | buildActionMask = 2147483647; 378 | files = ( 379 | 3F0502FD1D6FD41F00EA24F0 /* PopViewController.swift in Sources */, 380 | 3F0502FB1D6FD41900EA24F0 /* MainViewController.swift in Sources */, 381 | 3F0502BD1D6EE4F900EA24F0 /* AppDelegate.swift in Sources */, 382 | 3F8BA9491D7157EE00DD032C /* GPModel.swift in Sources */, 383 | 3F8BA94D1D717F5000DD032C /* GPCell.swift in Sources */, 384 | 3F0503011D6FD45E00EA24F0 /* HttpHelper.swift in Sources */, 385 | ); 386 | runOnlyForDeploymentPostprocessing = 0; 387 | }; 388 | 3F0502C41D6EE4FA00EA24F0 /* Sources */ = { 389 | isa = PBXSourcesBuildPhase; 390 | buildActionMask = 2147483647; 391 | files = ( 392 | 3F0502CD1D6EE4FA00EA24F0 /* GeekParkTests.swift in Sources */, 393 | ); 394 | runOnlyForDeploymentPostprocessing = 0; 395 | }; 396 | 3F0502CF1D6EE4FA00EA24F0 /* Sources */ = { 397 | isa = PBXSourcesBuildPhase; 398 | buildActionMask = 2147483647; 399 | files = ( 400 | 3F0502D81D6EE4FA00EA24F0 /* GeekParkUITests.swift in Sources */, 401 | ); 402 | runOnlyForDeploymentPostprocessing = 0; 403 | }; 404 | /* End PBXSourcesBuildPhase section */ 405 | 406 | /* Begin PBXTargetDependency section */ 407 | 3F0502CA1D6EE4FA00EA24F0 /* PBXTargetDependency */ = { 408 | isa = PBXTargetDependency; 409 | target = 3F0502B81D6EE4F900EA24F0 /* GeekPark */; 410 | targetProxy = 3F0502C91D6EE4FA00EA24F0 /* PBXContainerItemProxy */; 411 | }; 412 | 3F0502D51D6EE4FA00EA24F0 /* PBXTargetDependency */ = { 413 | isa = PBXTargetDependency; 414 | target = 3F0502B81D6EE4F900EA24F0 /* GeekPark */; 415 | targetProxy = 3F0502D41D6EE4FA00EA24F0 /* PBXContainerItemProxy */; 416 | }; 417 | /* End PBXTargetDependency section */ 418 | 419 | /* Begin PBXVariantGroup section */ 420 | 3F0502C01D6EE4FA00EA24F0 /* MainMenu.xib */ = { 421 | isa = PBXVariantGroup; 422 | children = ( 423 | 3F0502C11D6EE4FA00EA24F0 /* Base */, 424 | ); 425 | name = MainMenu.xib; 426 | sourceTree = ""; 427 | }; 428 | /* End PBXVariantGroup section */ 429 | 430 | /* Begin XCBuildConfiguration section */ 431 | 3F0502DA1D6EE4FA00EA24F0 /* Debug */ = { 432 | isa = XCBuildConfiguration; 433 | buildSettings = { 434 | ALWAYS_SEARCH_USER_PATHS = NO; 435 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 436 | CLANG_ANALYZER_NONNULL = YES; 437 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 438 | CLANG_CXX_LIBRARY = "libc++"; 439 | CLANG_ENABLE_MODULES = YES; 440 | CLANG_ENABLE_OBJC_ARC = YES; 441 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 442 | CLANG_WARN_BOOL_CONVERSION = YES; 443 | CLANG_WARN_COMMA = YES; 444 | CLANG_WARN_CONSTANT_CONVERSION = YES; 445 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 446 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 447 | CLANG_WARN_EMPTY_BODY = YES; 448 | CLANG_WARN_ENUM_CONVERSION = YES; 449 | CLANG_WARN_INFINITE_RECURSION = YES; 450 | CLANG_WARN_INT_CONVERSION = YES; 451 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 452 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 453 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 454 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 455 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 456 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 457 | CLANG_WARN_STRICT_PROTOTYPES = YES; 458 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 459 | CLANG_WARN_UNREACHABLE_CODE = YES; 460 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 461 | CODE_SIGN_IDENTITY = "-"; 462 | COPY_PHASE_STRIP = NO; 463 | DEBUG_INFORMATION_FORMAT = dwarf; 464 | ENABLE_STRICT_OBJC_MSGSEND = YES; 465 | ENABLE_TESTABILITY = YES; 466 | GCC_C_LANGUAGE_STANDARD = gnu99; 467 | GCC_DYNAMIC_NO_PIC = NO; 468 | GCC_NO_COMMON_BLOCKS = YES; 469 | GCC_OPTIMIZATION_LEVEL = 0; 470 | GCC_PREPROCESSOR_DEFINITIONS = ( 471 | "DEBUG=1", 472 | "$(inherited)", 473 | ); 474 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 475 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 476 | GCC_WARN_UNDECLARED_SELECTOR = YES; 477 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 478 | GCC_WARN_UNUSED_FUNCTION = YES; 479 | GCC_WARN_UNUSED_VARIABLE = YES; 480 | MACOSX_DEPLOYMENT_TARGET = 10.12; 481 | MTL_ENABLE_DEBUG_INFO = YES; 482 | ONLY_ACTIVE_ARCH = YES; 483 | SDKROOT = macosx; 484 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 485 | SWIFT_VERSION = 5.0; 486 | }; 487 | name = Debug; 488 | }; 489 | 3F0502DB1D6EE4FA00EA24F0 /* Release */ = { 490 | isa = XCBuildConfiguration; 491 | buildSettings = { 492 | ALWAYS_SEARCH_USER_PATHS = NO; 493 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 494 | CLANG_ANALYZER_NONNULL = YES; 495 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 496 | CLANG_CXX_LIBRARY = "libc++"; 497 | CLANG_ENABLE_MODULES = YES; 498 | CLANG_ENABLE_OBJC_ARC = YES; 499 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 500 | CLANG_WARN_BOOL_CONVERSION = YES; 501 | CLANG_WARN_COMMA = YES; 502 | CLANG_WARN_CONSTANT_CONVERSION = YES; 503 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 504 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 505 | CLANG_WARN_EMPTY_BODY = YES; 506 | CLANG_WARN_ENUM_CONVERSION = YES; 507 | CLANG_WARN_INFINITE_RECURSION = YES; 508 | CLANG_WARN_INT_CONVERSION = YES; 509 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 510 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 511 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 512 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 513 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 514 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 515 | CLANG_WARN_STRICT_PROTOTYPES = YES; 516 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 517 | CLANG_WARN_UNREACHABLE_CODE = YES; 518 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 519 | CODE_SIGN_IDENTITY = "-"; 520 | COPY_PHASE_STRIP = NO; 521 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 522 | ENABLE_NS_ASSERTIONS = NO; 523 | ENABLE_STRICT_OBJC_MSGSEND = YES; 524 | GCC_C_LANGUAGE_STANDARD = gnu99; 525 | GCC_NO_COMMON_BLOCKS = YES; 526 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 527 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 528 | GCC_WARN_UNDECLARED_SELECTOR = YES; 529 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 530 | GCC_WARN_UNUSED_FUNCTION = YES; 531 | GCC_WARN_UNUSED_VARIABLE = YES; 532 | MACOSX_DEPLOYMENT_TARGET = 10.12; 533 | MTL_ENABLE_DEBUG_INFO = NO; 534 | SDKROOT = macosx; 535 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 536 | SWIFT_VERSION = 5.0; 537 | }; 538 | name = Release; 539 | }; 540 | 3F0502DD1D6EE4FA00EA24F0 /* Debug */ = { 541 | isa = XCBuildConfiguration; 542 | baseConfigurationReference = A0990BF6E61650AFB14C5D8F /* Pods-GeekPark.debug.xcconfig */; 543 | buildSettings = { 544 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 545 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 546 | CODE_SIGN_IDENTITY = "-"; 547 | COMBINE_HIDPI_IMAGES = YES; 548 | INFOPLIST_FILE = GeekPark/Info.plist; 549 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; 550 | PRODUCT_BUNDLE_IDENTIFIER = lan.GeekPark; 551 | PRODUCT_NAME = "$(TARGET_NAME)"; 552 | SWIFT_VERSION = 5.0; 553 | }; 554 | name = Debug; 555 | }; 556 | 3F0502DE1D6EE4FA00EA24F0 /* Release */ = { 557 | isa = XCBuildConfiguration; 558 | baseConfigurationReference = 805A7607F982DFC2B6EB926F /* Pods-GeekPark.release.xcconfig */; 559 | buildSettings = { 560 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 561 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 562 | CODE_SIGN_IDENTITY = "-"; 563 | COMBINE_HIDPI_IMAGES = YES; 564 | INFOPLIST_FILE = GeekPark/Info.plist; 565 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; 566 | PRODUCT_BUNDLE_IDENTIFIER = lan.GeekPark; 567 | PRODUCT_NAME = "$(TARGET_NAME)"; 568 | SWIFT_VERSION = 5.0; 569 | }; 570 | name = Release; 571 | }; 572 | 3F0502E01D6EE4FA00EA24F0 /* Debug */ = { 573 | isa = XCBuildConfiguration; 574 | buildSettings = { 575 | BUNDLE_LOADER = "$(TEST_HOST)"; 576 | COMBINE_HIDPI_IMAGES = YES; 577 | HEADER_SEARCH_PATHS = /usr/include/libxml2; 578 | INFOPLIST_FILE = GeekParkTests/Info.plist; 579 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 580 | PRODUCT_BUNDLE_IDENTIFIER = lan.GeekParkTests; 581 | PRODUCT_NAME = "$(TARGET_NAME)"; 582 | SWIFT_VERSION = 5.0; 583 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/GeekPark.app/Contents/MacOS/GeekPark"; 584 | }; 585 | name = Debug; 586 | }; 587 | 3F0502E11D6EE4FA00EA24F0 /* Release */ = { 588 | isa = XCBuildConfiguration; 589 | buildSettings = { 590 | BUNDLE_LOADER = "$(TEST_HOST)"; 591 | COMBINE_HIDPI_IMAGES = YES; 592 | HEADER_SEARCH_PATHS = /usr/include/libxml2; 593 | INFOPLIST_FILE = GeekParkTests/Info.plist; 594 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 595 | PRODUCT_BUNDLE_IDENTIFIER = lan.GeekParkTests; 596 | PRODUCT_NAME = "$(TARGET_NAME)"; 597 | SWIFT_VERSION = 5.0; 598 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/GeekPark.app/Contents/MacOS/GeekPark"; 599 | }; 600 | name = Release; 601 | }; 602 | 3F0502E31D6EE4FA00EA24F0 /* Debug */ = { 603 | isa = XCBuildConfiguration; 604 | buildSettings = { 605 | COMBINE_HIDPI_IMAGES = YES; 606 | INFOPLIST_FILE = GeekParkUITests/Info.plist; 607 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 608 | PRODUCT_BUNDLE_IDENTIFIER = lan.GeekParkUITests; 609 | PRODUCT_NAME = "$(TARGET_NAME)"; 610 | SWIFT_VERSION = 5.0; 611 | TEST_TARGET_NAME = GeekPark; 612 | }; 613 | name = Debug; 614 | }; 615 | 3F0502E41D6EE4FA00EA24F0 /* Release */ = { 616 | isa = XCBuildConfiguration; 617 | buildSettings = { 618 | COMBINE_HIDPI_IMAGES = YES; 619 | INFOPLIST_FILE = GeekParkUITests/Info.plist; 620 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 621 | PRODUCT_BUNDLE_IDENTIFIER = lan.GeekParkUITests; 622 | PRODUCT_NAME = "$(TARGET_NAME)"; 623 | SWIFT_VERSION = 5.0; 624 | TEST_TARGET_NAME = GeekPark; 625 | }; 626 | name = Release; 627 | }; 628 | /* End XCBuildConfiguration section */ 629 | 630 | /* Begin XCConfigurationList section */ 631 | 3F0502B41D6EE4F900EA24F0 /* Build configuration list for PBXProject "GeekPark" */ = { 632 | isa = XCConfigurationList; 633 | buildConfigurations = ( 634 | 3F0502DA1D6EE4FA00EA24F0 /* Debug */, 635 | 3F0502DB1D6EE4FA00EA24F0 /* Release */, 636 | ); 637 | defaultConfigurationIsVisible = 0; 638 | defaultConfigurationName = Release; 639 | }; 640 | 3F0502DC1D6EE4FA00EA24F0 /* Build configuration list for PBXNativeTarget "GeekPark" */ = { 641 | isa = XCConfigurationList; 642 | buildConfigurations = ( 643 | 3F0502DD1D6EE4FA00EA24F0 /* Debug */, 644 | 3F0502DE1D6EE4FA00EA24F0 /* Release */, 645 | ); 646 | defaultConfigurationIsVisible = 0; 647 | defaultConfigurationName = Release; 648 | }; 649 | 3F0502DF1D6EE4FA00EA24F0 /* Build configuration list for PBXNativeTarget "GeekParkTests" */ = { 650 | isa = XCConfigurationList; 651 | buildConfigurations = ( 652 | 3F0502E01D6EE4FA00EA24F0 /* Debug */, 653 | 3F0502E11D6EE4FA00EA24F0 /* Release */, 654 | ); 655 | defaultConfigurationIsVisible = 0; 656 | defaultConfigurationName = Release; 657 | }; 658 | 3F0502E21D6EE4FA00EA24F0 /* Build configuration list for PBXNativeTarget "GeekParkUITests" */ = { 659 | isa = XCConfigurationList; 660 | buildConfigurations = ( 661 | 3F0502E31D6EE4FA00EA24F0 /* Debug */, 662 | 3F0502E41D6EE4FA00EA24F0 /* Release */, 663 | ); 664 | defaultConfigurationIsVisible = 0; 665 | defaultConfigurationName = Release; 666 | }; 667 | /* End XCConfigurationList section */ 668 | }; 669 | rootObject = 3F0502B11D6EE4F900EA24F0 /* Project object */; 670 | } 671 | -------------------------------------------------------------------------------- /GeekPark.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GeekPark.xcodeproj/project.xcworkspace/xcuserdata/lan.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark.xcodeproj/project.xcworkspace/xcuserdata/lan.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /GeekPark.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /GeekPark.xcworkspace/xcshareddata/GeekPark.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "06CD60D3BE803B2CFCA6FB89C759482C314CF386", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "06CD60D3BE803B2CFCA6FB89C759482C314CF386" : 0, 8 | "17DA2C14A2C1114F778E20B7CBE4B91773D897AA" : 0 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "BDDAAB10-D44C-471A-A520-03D104370EE4", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "06CD60D3BE803B2CFCA6FB89C759482C314CF386" : "GeekPark\/", 13 | "17DA2C14A2C1114F778E20B7CBE4B91773D897AA" : ".." 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "GeekPark", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "GeekPark.xcworkspace", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/tzshlyt\/GeekPark-mac.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "06CD60D3BE803B2CFCA6FB89C759482C314CF386" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "bitbucket.org:lanyutao\/test.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "17DA2C14A2C1114F778E20B7CBE4B91773D897AA" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /GeekPark.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /GeekPark/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // GeekPark 4 | // 5 | // Created by lan on 16/8/25. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | @NSApplicationMain 12 | class AppDelegate: NSObject, NSApplicationDelegate { 13 | 14 | @IBOutlet weak var window: NSWindow! 15 | 16 | func applicationDidFinishLaunching(_ aNotification: Notification) { 17 | // Insert code here to initialize your application 18 | } 19 | 20 | func applicationWillTerminate(_ aNotification: Notification) { 21 | // Insert code here to tear down your application 22 | } 23 | 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "16x16", 5 | "idiom" : "mac", 6 | "filename" : "iconMacMicro_16pt.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "16x16", 11 | "idiom" : "mac", 12 | "filename" : "iconMacMicro_16pt@2x.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "32x32", 17 | "idiom" : "mac", 18 | "filename" : "iconMacSmall_32pt.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "32x32", 23 | "idiom" : "mac", 24 | "filename" : "iconMacSmall_32pt@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "128x128", 29 | "idiom" : "mac", 30 | "filename" : "iconMacMedium_128pt.png", 31 | "scale" : "1x" 32 | }, 33 | { 34 | "size" : "128x128", 35 | "idiom" : "mac", 36 | "filename" : "iconMacMedium_128pt@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "256x256", 41 | "idiom" : "mac", 42 | "filename" : "iconMacLarge_256pt.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "256x256", 47 | "idiom" : "mac", 48 | "filename" : "iconMacLarge_256pt@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "512x512", 53 | "idiom" : "mac", 54 | "filename" : "iconMacHuge_512pt.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "512x512", 59 | "idiom" : "mac", 60 | "filename" : "iconMacHuge_512pt@2x.png", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacHuge_512pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacHuge_512pt.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacHuge_512pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacHuge_512pt@2x.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacLarge_256pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacLarge_256pt.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacLarge_256pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacLarge_256pt@2x.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMedium_128pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMedium_128pt.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMedium_128pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMedium_128pt@2x.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMicro_16pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMicro_16pt.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMicro_16pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacMicro_16pt@2x.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacSmall_32pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacSmall_32pt.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacSmall_32pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/AppIcon.appiconset/iconMacSmall_32pt@2x.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/icon-settings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-settings.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/icon-settings.imageset/icon-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/icon-settings.imageset/icon-settings.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/icon.imageset/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/icon.imageset/icon.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/statusIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "statusIcon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "statusIcon@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/statusIcon.imageset/statusIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/statusIcon.imageset/statusIcon.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/statusIcon.imageset/statusIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/statusIcon.imageset/statusIcon@2x.png -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/test.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "test.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /GeekPark/Assets.xcassets/test.imageset/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/GeekPark/Assets.xcassets/test.imageset/test.jpg -------------------------------------------------------------------------------- /GeekPark/Base.lproj/MainMenu.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /GeekPark/Controller/MainViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.swift 3 | // GeekPark 4 | // 5 | // Created by lan on 16/8/25. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class MainViewController: NSViewController { 12 | 13 | private lazy var statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength) 14 | private let popover = NSPopover() 15 | 16 | override func awakeFromNib() { 17 | statusItem.image = NSImage(named:"statusIcon") 18 | statusItem.action = #selector(MainViewController.statusItemClicked(_:)) 19 | 20 | popover.contentViewController = PopViewController(nibName: "PopViewController", bundle: nil) 21 | } 22 | 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | // Do view setup here. 26 | } 27 | 28 | @objc func statusItemClicked(_ sender: AnyObject) -> Void{ 29 | if(popover.isShown) { 30 | closePopover(sender) 31 | }else { 32 | showPopover(sender) 33 | } 34 | } 35 | 36 | func closePopover(_ sender: AnyObject?) -> Void { 37 | popover.performClose(sender) 38 | } 39 | 40 | func showPopover(_ sender: AnyObject?) -> Void { 41 | popover.show(relativeTo: (statusItem.button?.bounds)!, of: statusItem.button!, preferredEdge: NSRectEdge.minY) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /GeekPark/Controller/PopViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PopViewController.swift 3 | // GeekPark 4 | // 5 | // Created by lan on 16/8/25. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class PopViewController: NSViewController { 12 | 13 | @IBOutlet weak var tableView: NSTableView! 14 | @IBOutlet weak var uptimeTextView: NSTextField! 15 | 16 | private let httphelper = HttpHelper() 17 | private var models = [GPModel]() 18 | 19 | override func viewDidLoad() { 20 | super.viewDidLoad() 21 | 22 | httphelper.getNews { [weak self] result in 23 | self?.models = result 24 | self?.tableView.reloadData() 25 | self?.setTime() 26 | } 27 | } 28 | 29 | func setTime() { 30 | let formatter = DateFormatter() 31 | formatter.timeStyle = .medium 32 | let timeStr = formatter.string(from: Date()) 33 | uptimeTextView.stringValue = "更新时间 \(timeStr)" 34 | } 35 | 36 | @IBAction func settingBtnClick(_ sender: AnyObject) { 37 | let menu = NSMenu() 38 | menu.addItem(NSMenuItem(title: "退出", action: #selector(quit), keyEquivalent: "q")) 39 | 40 | NSMenu.popUpContextMenu(menu, with: NSApp.currentEvent!, for: sender as! NSView) 41 | } 42 | 43 | @objc func quit() { 44 | NSApplication.shared.terminate(self) 45 | } 46 | } 47 | 48 | extension PopViewController: NSTableViewDataSource { 49 | func numberOfRows(in tableView: NSTableView) -> Int { 50 | return models.count; 51 | } 52 | 53 | func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { 54 | let cellView = tableView.makeView(withIdentifier: tableColumn!.identifier, owner: tableView) as! GPCell 55 | 56 | if tableColumn!.identifier.rawValue == "GeekParkCell" { 57 | let model = self.models[row] 58 | cellView.setupModel(model) 59 | return cellView 60 | } 61 | return cellView 62 | } 63 | } 64 | 65 | extension PopViewController: NSTableViewDelegate { 66 | func tableViewSelectionDidChange(_ notification: Notification) { 67 | let table = notification.object as! NSTableView 68 | NSWorkspace.shared.open(URL(string: models[table.selectedRow].href)!) 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /GeekPark/Controller/PopViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 150 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | -------------------------------------------------------------------------------- /GeekPark/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSHumanReadableCopyright 28 | Copyright © 2016年 lan. All rights reserved. 29 | NSMainNibFile 30 | MainMenu 31 | NSPrincipalClass 32 | NSApplication 33 | NSAppTransportSecurity 34 | 35 | NSAllowsArbitraryLoads 36 | 37 | 38 | LSUIElement 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /GeekPark/Model/GPModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GPModel.swift 3 | // GeekPark 4 | // 5 | // Created by lan on 16/8/27. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct GPModel { 12 | var title: String 13 | var imgUrl: String 14 | var category: String 15 | var time: String 16 | var href: String 17 | } 18 | -------------------------------------------------------------------------------- /GeekPark/Network/HttpHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HttpHelper.swift 3 | // GeekPark 4 | // 5 | // Created by lan on 16/8/25. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import Alamofire 11 | import SwiftyJSON 12 | 13 | class HttpHelper: NSObject { 14 | private let url = "http://main_test.geekpark.net/api/v1/?page=1" 15 | 16 | func getNews(_ handle: @escaping (_ models: [GPModel]) -> ()) { 17 | 18 | AF.request(url, method: .get).responseJSON { response in 19 | switch response.result { 20 | case .failure(let error): 21 | print("获取接口数据出错", error) 22 | case .success: 23 | print("Load data success") 24 | 25 | guard let value = response.value else { 26 | return 27 | } 28 | 29 | var models = [GPModel]() 30 | let json = JSON(value), results = json["homepage_posts"] 31 | for result in results.arrayValue { 32 | let datas = result["data"] 33 | for data in datas.arrayValue { 34 | 35 | guard let title = data["post"]["title"].string, 36 | let imgUrl = data["post"]["cover_url"].string, 37 | let category = data["post"]["column"]["title"].string, 38 | let published_timestamp = data["post"]["published_timestamp"].int, 39 | let id = data["post"]["id"].int 40 | else { 41 | return 42 | } 43 | 44 | let href = "http://www.geekpark.net/news/\(id)" 45 | let timeInterval = TimeInterval(published_timestamp) 46 | let date = Date(timeIntervalSince1970: timeInterval) 47 | let dformatter = DateFormatter() 48 | dformatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 49 | let time = dformatter.string(from: date) 50 | 51 | let model = GPModel( 52 | title: title, 53 | imgUrl: imgUrl, 54 | category: category, 55 | time: time, 56 | href: href 57 | ) 58 | models.append(model) 59 | } 60 | } 61 | handle(models) 62 | } 63 | } 64 | 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /GeekPark/Views/GPCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GPCell.swift 3 | // GeekPark 4 | // 5 | // Created by lan on 16/8/27. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import Kingfisher 11 | 12 | class GPCell: NSTableCellView { 13 | @IBOutlet weak var imgView:NSImageView! 14 | @IBOutlet weak var titleText: NSTextField! 15 | @IBOutlet weak var categoryText: NSTextField! 16 | @IBOutlet weak var timeText: NSTextField! 17 | 18 | func setupModel(_ model: GPModel) { 19 | self.titleText.stringValue = model.title 20 | self.categoryText.stringValue = model.category 21 | self.timeText.stringValue = model.time 22 | self.imgView.kf.setImage(with: URL(string: model.imgUrl), 23 | placeholder: NSImage(named: "test"), 24 | options:nil, progressBlock: nil, completionHandler: nil) 25 | } 26 | 27 | override func draw(_ dirtyRect: NSRect) { 28 | super.draw(dirtyRect) 29 | 30 | // Drawing code here. 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /GeekParkTests/GeekParkTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeekParkTests.swift 3 | // GeekParkTests 4 | // 5 | // Created by lan on 16/8/25. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import GeekPark 11 | 12 | class GeekParkTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /GeekParkTests/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 | -------------------------------------------------------------------------------- /GeekParkUITests/GeekParkUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeekParkUITests.swift 3 | // GeekParkUITests 4 | // 5 | // Created by lan on 16/8/25. 6 | // Copyright © 2016年 lan. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class GeekParkUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /GeekParkUITests/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 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 tzshlyt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/Pod -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | use_frameworks! 3 | 4 | target 'GeekPark' do 5 | pod 'Alamofire', '~> 5.0' 6 | pod 'SwiftyJSON', '~> 4.0' 7 | pod 'Kingfisher', '~> 6.0' 8 | end 9 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (5.4.1) 3 | - Kingfisher (6.2.1) 4 | - SwiftyJSON (4.3.0) 5 | 6 | DEPENDENCIES: 7 | - Alamofire (~> 5.0) 8 | - Kingfisher (~> 6.0) 9 | - SwiftyJSON (~> 4.0) 10 | 11 | SPEC REPOS: 12 | https://github.com/CocoaPods/Specs.git: 13 | - Alamofire 14 | - Kingfisher 15 | - SwiftyJSON 16 | 17 | SPEC CHECKSUMS: 18 | Alamofire: 2291f7d21ca607c491dd17642e5d40fdcda0e65c 19 | Kingfisher: e71c6fac2aebb1262888cabc2cb13d313362a48f 20 | SwiftyJSON: 6faa0040f8b59dead0ee07436cbf76b73c08fd08 21 | 22 | PODFILE CHECKSUM: 6034d47493fbba4abfbadeeae2cf32c75c1884af 23 | 24 | COCOAPODS: 1.10.1 25 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (5.4.1) 3 | - Kingfisher (6.2.1) 4 | - SwiftyJSON (4.3.0) 5 | 6 | DEPENDENCIES: 7 | - Alamofire (~> 5.0) 8 | - Kingfisher (~> 6.0) 9 | - SwiftyJSON (~> 4.0) 10 | 11 | SPEC REPOS: 12 | https://github.com/CocoaPods/Specs.git: 13 | - Alamofire 14 | - Kingfisher 15 | - SwiftyJSON 16 | 17 | SPEC CHECKSUMS: 18 | Alamofire: 2291f7d21ca607c491dd17642e5d40fdcda0e65c 19 | Kingfisher: e71c6fac2aebb1262888cabc2cb13d313362a48f 20 | SwiftyJSON: 6faa0040f8b59dead0ee07436cbf76b73c08fd08 21 | 22 | PODFILE CHECKSUM: 6034d47493fbba4abfbadeeae2cf32c75c1884af 23 | 24 | COCOAPODS: 1.10.1 25 | -------------------------------------------------------------------------------- /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 | 013BAC24F7AC722E59517CB110A9E685 /* HTTPMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC7689E48340D2679967C5C18FBE648A /* HTTPMethod.swift */; }; 11 | 0167C8014E2488B83A9F1FD66249D399 /* CallbackQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD2CF06A32D1CA43FC882714FBD4838F /* CallbackQueue.swift */; }; 12 | 031CA4456BCA8423DDDF1E0B8F1E3176 /* KingfisherManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173BACF54EA56DCD504EC69D985FBA0F /* KingfisherManager.swift */; }; 13 | 03601FE8DD8E68F3D64BB8E7C8372099 /* ImageProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 210B8AA9D8582E76FA902AA317D4CFBA /* ImageProcessor.swift */; }; 14 | 049A63D94BC0E530FF440A23B3689649 /* FormatIndicatedCacheSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E2E58A150FB95D5D0EBFE533BDCB87D /* FormatIndicatedCacheSerializer.swift */; }; 15 | 06F4CE9E4328FB3D26839CFB41C38B5C /* Resource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21ABBC2C121A6F74005E0B80AB8968F1 /* Resource.swift */; }; 16 | 0A1849775CF90D514963187D3A771CF8 /* Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15194EBFA8CFE42C748A560A822F4DCD /* Combine.swift */; }; 17 | 0A900DF17E3B64F08AF673E9A0DDD697 /* OperationQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA46F82F945FB5531756442B075E641 /* OperationQueue+Alamofire.swift */; }; 18 | 0AED0C9F5057E4A6769E39C5B70A1D75 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B227CBDF252E94CE3A848A1535BFDDD /* Box.swift */; }; 19 | 10B70622D83EECA653F66E825FDDCC35 /* ImageTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14219697106AB09C34BFB3BAB93A8518 /* ImageTransition.swift */; }; 20 | 1208E81DA8B532D0646D627B50290EB6 /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1062ABA991940561C08B44B25597266 /* AFError.swift */; }; 21 | 1902064537BA2FA45ABAC2D4DAD09A3D /* String+MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A321E9E166334C5D4C13362053ED016 /* String+MD5.swift */; }; 22 | 1942F7D3B7722A5637C3FC0BE44B1E6C /* SwiftyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EEF080BA72F1F7F68F5417E32830D86F /* SwiftyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 23 | 19D605A3233499828FB6B790869F3E9C /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF3D1FDC0288630F68A35119B7A9AE86 /* NetworkReachabilityManager.swift */; }; 24 | 1DDFB0536C2BDCEE5A3446D95B1A50FA /* KingfisherError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E36B472307D00027F49813238789CC8 /* KingfisherError.swift */; }; 25 | 212EDC48B68107BEA9247F3464CE696E /* StringEncoding+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = F56AF2579538EFC461FF430A3A848EA8 /* StringEncoding+Alamofire.swift */; }; 26 | 217DAFD6CFD94567B14D461AA32F942E /* WKInterfaceImage+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = A18AEA433964CC5D0908F0C6AA8CE619 /* WKInterfaceImage+Kingfisher.swift */; }; 27 | 218C14EAE5AA31C30314AE0289B732A0 /* Protected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BF4B7AFDD5370DA7C680178E808D942 /* Protected.swift */; }; 28 | 23249A35AC667260392A056D3375ECFA /* ImageDownloaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F38D16460D453A6D6E4C3E690EB54C /* ImageDownloaderDelegate.swift */; }; 29 | 27E59A11A2743B0595CDE3A08675EAE1 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28E0D2C1F7359354ED76CAE385F22D18 /* DispatchQueue+Alamofire.swift */; }; 30 | 2AB39E2673F7A94F72BD84CD093E318E /* SizeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C73CC030284C001D9347AA703CE6EBE /* SizeExtensions.swift */; }; 31 | 2BF6FBC0A64BF107C5D64C61F1397770 /* SwiftyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C7A0B2906D9E8CD6F0075042523F35E /* SwiftyJSON-dummy.m */; }; 32 | 2DF2FA14AA5C4257B59F3BE85A46E58C /* KFImageOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CBD9C6D75AAF352EDDEDA82759525E9 /* KFImageOptions.swift */; }; 33 | 2FD28CBD32D86FAD689D4279639DB9A9 /* NSTextAttachment+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 490B6BC6187F25AF312B27B0E8F2D611 /* NSTextAttachment+Kingfisher.swift */; }; 34 | 377875E506706BC611D0A60BCB336399 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3714E2561BD0F3275C6698C3D09A8F9E /* Cocoa.framework */; }; 35 | 37F604F7FB515AB9A39AFB44D151C17A /* ImagePrefetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = B142EA2EBCC5391E9477EA3D82062616 /* ImagePrefetcher.swift */; }; 36 | 381FF05F8B4F611EE9C2FDBE4457BB89 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60FD6CCEFF2F065ED63F43113E7CA2EA /* SessionDelegate.swift */; }; 37 | 4123E3708902448156969FCCE197D198 /* Pods-GeekPark-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 63AE07B6CC30DA4868D0054C8A8FFFED /* Pods-GeekPark-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 38 | 421FCFB7ED11E370A145226ABF1B6C54 /* NSButton+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C764926406CF5EC5DC6F76ADA8773542 /* NSButton+Kingfisher.swift */; }; 39 | 453B1D6CBC4121C35496C31822FDA21C /* ImageDrawing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44D8A001EB9CF47B9C588F15C690065E /* ImageDrawing.swift */; }; 40 | 45B8CC1C61E7A0BB28CFA8CE7C12FEBC /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCBD5614DB12B5261B96E2BAB5199FA1 /* MultipartFormData.swift */; }; 41 | 467D228281A8C56F90B030AE6A94CE6B /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA9EB12F3184D56A2C6E7E662C8A4C21 /* CFNetwork.framework */; }; 42 | 47FDBBBD2704901588C3A7C56BBC502D /* ServerTrustEvaluation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1FA46000D064E98BA938A7BADD8C1A7 /* ServerTrustEvaluation.swift */; }; 43 | 4AEC050FA7D5ED52FDA9DF50EA3560DF /* ParameterEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D65335167413E903EAF510F1D080181 /* ParameterEncoder.swift */; }; 44 | 4C3A9F4F5A688009D660C0FA5E5D81BB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3714E2561BD0F3275C6698C3D09A8F9E /* Cocoa.framework */; }; 45 | 4C86DED25F5BA43AD08F8075D4C439E0 /* MemoryStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D59D1939F538E48669931AE7BA3EA78 /* MemoryStorage.swift */; }; 46 | 50DB394FACBAB9A3C3E2564755863017 /* ImageFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90722FF5F37E25731B105EC4C3E89181 /* ImageFormat.swift */; }; 47 | 53503D72BBAF11C3000699557A1CE7E9 /* ImageDataProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C30927FA084D95CF078FC6380025BA6A /* ImageDataProcessor.swift */; }; 48 | 5674FCA42AD2006C1317B8A5993CCDFD /* AuthenticationChallengeResponsable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D5EBC7A8EA4669352A9F380868989D2 /* AuthenticationChallengeResponsable.swift */; }; 49 | 59D5E59A9D00987AE776255C0759C507 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A60B02674518133C92C66ACF954D9E2 /* Image.swift */; }; 50 | 5CEDBE035FD33D7EF1A7E6940BE8FC07 /* ImageView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA7282CC7AB15F7DD82A05C5B7FAF45A /* ImageView+Kingfisher.swift */; }; 51 | 6007105B236BA7BEDCEE05C7D123B07E /* AnimatedImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F27E17A35F518217D241F54823362C7F /* AnimatedImageView.swift */; }; 52 | 63BF03E6F0AB27AE4D0C6D0850EC7556 /* ImageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = B388E60446F618C1AEFD3F6E7F2DBFBC /* ImageCache.swift */; }; 53 | 6546D728B69398F93B506845141EBD61 /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA10077FF60B204A01F90B2B3C339648 /* EventMonitor.swift */; }; 54 | 666EC5C8356E6D4448A2FE7BEE77AD88 /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3830092B3D799BA77E84DCCDBF71D69 /* RedirectHandler.swift */; }; 55 | 66B26C6CAE737EC21F4BA1F1851B69C5 /* Result+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8CD72E0C619EE78DC80F7D655893707 /* Result+Alamofire.swift */; }; 56 | 6AE407A4FB6C3D6ADD862CC6E3067A17 /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C0DDA65896DF38CC06B673FE5697BFA /* Session.swift */; }; 57 | 6C08F6A77889651626583100F560153D /* RequestTaskMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516572B1B9853DA1E51FC55297D7E6E4 /* RequestTaskMap.swift */; }; 58 | 6E54F64E8DA73F4B0B46C216F9F93F63 /* RequestInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34A2D8D545BBD125FD17703F3B3958E2 /* RequestInterceptor.swift */; }; 59 | 72EC2712926E6D28B52360D9AC41668F /* AlamofireExtended.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0D2A6945EDD533F78C40446822C11A0 /* AlamofireExtended.swift */; }; 60 | 74CF96D94F4C9388EA1A02F04A924FB9 /* AVAssetImageDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = B95052DD50367851D79699044A7DAF05 /* AVAssetImageDataProvider.swift */; }; 61 | 7B4CE5C84161E2BFE477F42DFD634382 /* SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 657DCC54DFE74083A21B1342A77A9EBB /* SwiftyJSON.swift */; }; 62 | 7D3DD4A8BB36733BA15868F7FB8C56CE /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 52754ABC687F3747783155874EFBA4BD /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 63 | 81664B7EB0A191C769C2911FAE80EABB /* Source.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4258528C8899FA7817F29E99F334ADBB /* Source.swift */; }; 64 | 818C9DFFAEFA9FF9099EEF7296189A03 /* ImageDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45033986A08E9F1F43B0827FAF000CAC /* ImageDownloader.swift */; }; 65 | 831D803491D1A9131B3204B29CC4BC8A /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E2DB361CFF35D35C91D15EF63BEC60A /* Result.swift */; }; 66 | 83AC0D424CCA3F2269567E4CCBE6008D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3714E2561BD0F3275C6698C3D09A8F9E /* Cocoa.framework */; }; 67 | 847D63F8ABA6B9C466B27DC92C745502 /* ImageDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4A8EE26C0067B0FB350732736407CD /* ImageDataProvider.swift */; }; 68 | 8586724C257074B48F36D6D9301D367B /* Kingfisher-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B31B66AF9BBCA7331D3E3001363D69 /* Kingfisher-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 69 | 8AA937910F87915DE700CAB6C868689E /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75E478FDF0F20AA33CFF824619EC00CC /* Notifications.swift */; }; 70 | 8B0E48E01C53D243F23AB1DA47B62E24 /* Runtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = E099BE668C14CF71CA15C34ACF934DB6 /* Runtime.swift */; }; 71 | 8D4DBE82E61A80299C526B0AFF4FD107 /* CacheSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EB75688ED1B36F71B2E9E0FC75DFDF9 /* CacheSerializer.swift */; }; 72 | 911448B2EDA2FF880108F77642797A88 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55F47AA0328EB96E4E726F74CD45EB94 /* ResponseSerialization.swift */; }; 73 | 91B837CE0DCD8EDB300FCDFFA1279162 /* HTTPHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC51F5EE33AC9CA8386A426D88F7582 /* HTTPHeaders.swift */; }; 74 | 923D73A0EF1E8C7E6CBA320703A711B7 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE7499CEA2D889A7B52264C5BC87959 /* SessionDelegate.swift */; }; 75 | 93C5E506150CBB77C67BD528AE63B128 /* UIButton+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DA75DF694D2E853C77330D9DD8DA736 /* UIButton+Kingfisher.swift */; }; 76 | 94DD6422B1C38180EF762668BDD80C1A /* ExtensionHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C7DA39943C68190EF392ACBA8A287EA /* ExtensionHelpers.swift */; }; 77 | 98C78D31E7288D49FE55EE08E670AFA7 /* DiskStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CD53648CFFFA927F8E5A3ED91FD05AC /* DiskStorage.swift */; }; 78 | 99671A0F3D6AF135D305284731A594BB /* RedirectHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BB81ABB2D62292C75E98C78B153C7CE /* RedirectHandler.swift */; }; 79 | 99EEF59393B0D096BC2B00AF6AE92D37 /* ImageModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = F72B6A81C76FC723E69A9BBAC52FAE4C /* ImageModifier.swift */; }; 80 | 9A1CDAE2E9AFFFDBC654855D4A8C6D36 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA9EB12F3184D56A2C6E7E662C8A4C21 /* CFNetwork.framework */; }; 81 | 9B1D8A7798D8A6F518FC9AF9725431D0 /* URLConvertible+URLRequestConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D4C09DE1979419ACF541220FD9313B /* URLConvertible+URLRequestConvertible.swift */; }; 82 | 9B2FC14D2BA23D8681BE88BE7A699E06 /* TVMonogramView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E7765E4C251F74A5D6BE98BD1078DD8 /* TVMonogramView+Kingfisher.swift */; }; 83 | 9FED70D1E1FBFB80E974E999EF732258 /* RetryPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05FBA231516D2CD48316FCDC5E458B42 /* RetryPolicy.swift */; }; 84 | A01B208EB6C223564DF09799933E463B /* RetryStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4299506090F01B4CDE2431536A868585 /* RetryStrategy.swift */; }; 85 | ABA85887A41495358C83CE3F3030EDEA /* CachedResponseHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E3234AFA1C6318AB209EB2C8EC92841 /* CachedResponseHandler.swift */; }; 86 | B0BA2279FC0FDA3F2211AADB31E7B7F5 /* KingfisherOptionsInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C448CCC0BDEA01599721623BA43D052 /* KingfisherOptionsInfo.swift */; }; 87 | B17EB685290C5AE0832DEEE48AC1AE49 /* RequestModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBDE1C1288AB784DEDC65BB0EFB3C80B /* RequestModifier.swift */; }; 88 | B36E07B0D326E1B9E83C2868BC30E313 /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DB1BC57BADD910F0346C360F9E31EC5 /* Delegate.swift */; }; 89 | B8BFC7F433641ABD2AA61264E66C6F24 /* Kingfisher-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB795B45315F10D3B28019233025DAB /* Kingfisher-dummy.m */; }; 90 | BB78CC0BC73E37BCE860EB5CEDAFB7E6 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 680755157B7123F193DB32CA31A4BD11 /* Accelerate.framework */; }; 91 | C1C5B050B55C15103ABC81769551A283 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A1A7CD5D220F43A101CC9B0C9C0571C /* Response.swift */; }; 92 | C1F1DB6A9CBDE584D09BA1613AAD4F9D /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F553A6E4C96E0551089B54AE67CFD33 /* Alamofire.swift */; }; 93 | C20E3A534598709617D33774E0524CAF /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEFC14C72EF88E190AC06E0AA74E3C83 /* Filter.swift */; }; 94 | C6412BD3494708FF9F948ECE5CE7A2E1 /* Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7265DAA53437CC7695F8EC7A49E99032 /* Kingfisher.swift */; }; 95 | C667DC6BB83C05C146908E6DF56D771C /* Placeholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2E6E5F89C860248B265052E77D75D98 /* Placeholder.swift */; }; 96 | C693E10B4FB6293FE9762254DD99B31E /* KFImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 746DD198140D8E306E7FC97DC74A5B7A /* KFImage.swift */; }; 97 | C6D5A4B4028B2C43380C9FA58BD5C8CA /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C5ED2F4B0F602F1A984B8B25C97CA873 /* Alamofire-dummy.m */; }; 98 | D0264D77EB7762752352B6FEBCDE7FD3 /* Indicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 257001073EEB4EBADA515805A34A45D1 /* Indicator.swift */; }; 99 | D03F1F02DE8606E6057D57866611BEBF /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82CE30AA4DA525F0D2233AAC1B785B35 /* MultipartUpload.swift */; }; 100 | D0C7718D27835BFEC296D3B05D7748A5 /* KF.swift in Sources */ = {isa = PBXBuildFile; fileRef = A77415F66BFA21656CE50B38CB7DAC05 /* KF.swift */; }; 101 | D14066FAE94E304798E43651E5886D13 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D65E2C327106DF5BC3B2A31065952FE /* ParameterEncoding.swift */; }; 102 | D31FC7FDD450C4CDD633ECBAD27C6221 /* URLEncodedFormEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0316F0673DD0286C1E8028547D824FB1 /* URLEncodedFormEncoder.swift */; }; 103 | D5EAAFB6FAD77A8F0699345149BA3CBB /* URLRequest+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF37457B0D2E1B71EF07684D34D467BC /* URLRequest+Alamofire.swift */; }; 104 | D7D668C8E8467384227D2F78AA925220 /* GIFAnimatedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6706A789CE17CCED00917C1BB61A2E25 /* GIFAnimatedImage.swift */; }; 105 | DC627AFC5B585686898B014184AFCABD /* AuthenticationInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6690788ABFA5182F9E98C45410C7F7F1 /* AuthenticationInterceptor.swift */; }; 106 | E1C12AC2798EF84CA1E03E63DEBCB51B /* ImageProgressive.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52858C300DE69FFCC0B13DF9F89590D /* ImageProgressive.swift */; }; 107 | E43360AE019883A148FF1CA5AB1F79CF /* SessionDataTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 102CCC4FD0B4997B066457C4D4A17483 /* SessionDataTask.swift */; }; 108 | E6EC64ABA3B69C1316B447981949BADE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3714E2561BD0F3275C6698C3D09A8F9E /* Cocoa.framework */; }; 109 | EDC93BD7B9262119AE145E4C7A9D0212 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A2694CEF1BD53BF179FE0299613A624 /* Request.swift */; }; 110 | F0F3224FF592F9BA2A044A2FC2BD4CCD /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B955D74BEE8625177B4193FD0A57EDB /* Validation.swift */; }; 111 | F1435F4D19772B0839478794E4343DEF /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4452E929AB07E888F79A305DB85B4E9 /* Storage.swift */; }; 112 | F70EF854395CDE981A8336E4FF0310FE /* URLSessionConfiguration+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBBBB9F6F11FB5CE6FDE7C6C7102B954 /* URLSessionConfiguration+Alamofire.swift */; }; 113 | F7616C3642A0687F26B6830854FD3A0C /* Pods-GeekPark-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AC4AF9F22827857D4648B4C81C1DE212 /* Pods-GeekPark-dummy.m */; }; 114 | FAA16B6785F3FA87658C77202922CD1D /* ImageBinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B6BE1629C5332AB50A5599A129F74A /* ImageBinder.swift */; }; 115 | FB9DC4EAA99AFE08B4744D70EF9379EB /* KFOptionsSetter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CF89B989552672D051FCD96D03DD692 /* KFOptionsSetter.swift */; }; 116 | /* End PBXBuildFile section */ 117 | 118 | /* Begin PBXContainerItemProxy section */ 119 | 300239114D6EDB4C7FDDE76C9FC07B65 /* PBXContainerItemProxy */ = { 120 | isa = PBXContainerItemProxy; 121 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 122 | proxyType = 1; 123 | remoteGlobalIDString = EAAA1AD3A8A1B59AB91319EE40752C6D; 124 | remoteInfo = Alamofire; 125 | }; 126 | 4D04A8BF4CC416E1819CC6B7BE47F9B5 /* PBXContainerItemProxy */ = { 127 | isa = PBXContainerItemProxy; 128 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 129 | proxyType = 1; 130 | remoteGlobalIDString = D118A6A04828FD3CDA8640CD2B6796D2; 131 | remoteInfo = SwiftyJSON; 132 | }; 133 | 93E0330F76B418F1BCEFBCA5256353AD /* PBXContainerItemProxy */ = { 134 | isa = PBXContainerItemProxy; 135 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 136 | proxyType = 1; 137 | remoteGlobalIDString = E8022D22FAA6690B5E1C379C1BCE1491; 138 | remoteInfo = Kingfisher; 139 | }; 140 | /* End PBXContainerItemProxy section */ 141 | 142 | /* Begin PBXFileReference section */ 143 | 0283B71B8232C5B28535762A07F4B6E6 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; 144 | 0316F0673DD0286C1E8028547D824FB1 /* URLEncodedFormEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = URLEncodedFormEncoder.swift; path = Source/URLEncodedFormEncoder.swift; sourceTree = ""; }; 145 | 05FBA231516D2CD48316FCDC5E458B42 /* RetryPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryPolicy.swift; path = Source/RetryPolicy.swift; sourceTree = ""; }; 146 | 07EF80C8F5F53727D99A6BE48CF30E30 /* Alamofire.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.debug.xcconfig; sourceTree = ""; }; 147 | 0A321E9E166334C5D4C13362053ED016 /* String+MD5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+MD5.swift"; path = "Sources/Utility/String+MD5.swift"; sourceTree = ""; }; 148 | 0C73CC030284C001D9347AA703CE6EBE /* SizeExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SizeExtensions.swift; path = Sources/Utility/SizeExtensions.swift; sourceTree = ""; }; 149 | 0CD53648CFFFA927F8E5A3ED91FD05AC /* DiskStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DiskStorage.swift; path = Sources/Cache/DiskStorage.swift; sourceTree = ""; }; 150 | 0D65E2C327106DF5BC3B2A31065952FE /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; 151 | 102CCC4FD0B4997B066457C4D4A17483 /* SessionDataTask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDataTask.swift; path = Sources/Networking/SessionDataTask.swift; sourceTree = ""; }; 152 | 14219697106AB09C34BFB3BAB93A8518 /* ImageTransition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageTransition.swift; path = Sources/Image/ImageTransition.swift; sourceTree = ""; }; 153 | 15194EBFA8CFE42C748A560A822F4DCD /* Combine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Combine.swift; path = Source/Combine.swift; sourceTree = ""; }; 154 | 15F38D16460D453A6D6E4C3E690EB54C /* ImageDownloaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDownloaderDelegate.swift; path = Sources/Networking/ImageDownloaderDelegate.swift; sourceTree = ""; }; 155 | 173BACF54EA56DCD504EC69D985FBA0F /* KingfisherManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherManager.swift; path = Sources/General/KingfisherManager.swift; sourceTree = ""; }; 156 | 1CBD9C6D75AAF352EDDEDA82759525E9 /* KFImageOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImageOptions.swift; path = Sources/SwiftUI/KFImageOptions.swift; sourceTree = ""; }; 157 | 1CF89B989552672D051FCD96D03DD692 /* KFOptionsSetter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFOptionsSetter.swift; path = Sources/General/KFOptionsSetter.swift; sourceTree = ""; }; 158 | 1E36B472307D00027F49813238789CC8 /* KingfisherError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherError.swift; path = Sources/General/KingfisherError.swift; sourceTree = ""; }; 159 | 210B8AA9D8582E76FA902AA317D4CFBA /* ImageProcessor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProcessor.swift; path = Sources/Image/ImageProcessor.swift; sourceTree = ""; }; 160 | 21ABBC2C121A6F74005E0B80AB8968F1 /* Resource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Resource.swift; path = Sources/General/ImageSource/Resource.swift; sourceTree = ""; }; 161 | 244680EEFF632A231FABC8F367E7628D /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; 162 | 257001073EEB4EBADA515805A34A45D1 /* Indicator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Indicator.swift; path = Sources/Views/Indicator.swift; sourceTree = ""; }; 163 | 28E0D2C1F7359354ED76CAE385F22D18 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; 164 | 2BB81ABB2D62292C75E98C78B153C7CE /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Sources/Networking/RedirectHandler.swift; sourceTree = ""; }; 165 | 2C0DDA65896DF38CC06B673FE5697BFA /* Session.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Session.swift; path = Source/Session.swift; sourceTree = ""; }; 166 | 2C7DA39943C68190EF392ACBA8A287EA /* ExtensionHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExtensionHelpers.swift; path = Sources/Utility/ExtensionHelpers.swift; sourceTree = ""; }; 167 | 34A2D8D545BBD125FD17703F3B3958E2 /* RequestInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestInterceptor.swift; path = Source/RequestInterceptor.swift; sourceTree = ""; }; 168 | 35BC877FD72E33B0D941763BE6EBBB79 /* Alamofire.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.release.xcconfig; sourceTree = ""; }; 169 | 3714E2561BD0F3275C6698C3D09A8F9E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; 170 | 3A60B02674518133C92C66ACF954D9E2 /* Image.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Image.swift; path = Sources/Image/Image.swift; sourceTree = ""; }; 171 | 3D59D1939F538E48669931AE7BA3EA78 /* MemoryStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MemoryStorage.swift; path = Sources/Cache/MemoryStorage.swift; sourceTree = ""; }; 172 | 3DB1BC57BADD910F0346C360F9E31EC5 /* Delegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Delegate.swift; path = Sources/Utility/Delegate.swift; sourceTree = ""; }; 173 | 3E2E58A150FB95D5D0EBFE533BDCB87D /* FormatIndicatedCacheSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FormatIndicatedCacheSerializer.swift; path = Sources/Cache/FormatIndicatedCacheSerializer.swift; sourceTree = ""; }; 174 | 3EC5216FF7DB7199C59DDE99A4D745AF /* SwiftyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftyJSON.modulemap; sourceTree = ""; }; 175 | 41B6BE1629C5332AB50A5599A129F74A /* ImageBinder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageBinder.swift; path = Sources/SwiftUI/ImageBinder.swift; sourceTree = ""; }; 176 | 4258528C8899FA7817F29E99F334ADBB /* Source.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Source.swift; path = Sources/General/ImageSource/Source.swift; sourceTree = ""; }; 177 | 4299506090F01B4CDE2431536A868585 /* RetryStrategy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RetryStrategy.swift; path = Sources/Networking/RetryStrategy.swift; sourceTree = ""; }; 178 | 43031DC0BF1A5657B17080039A269C5A /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; 179 | 44D8A001EB9CF47B9C588F15C690065E /* ImageDrawing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDrawing.swift; path = Sources/Image/ImageDrawing.swift; sourceTree = ""; }; 180 | 45033986A08E9F1F43B0827FAF000CAC /* ImageDownloader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDownloader.swift; path = Sources/Networking/ImageDownloader.swift; sourceTree = ""; }; 181 | 490B6BC6187F25AF312B27B0E8F2D611 /* NSTextAttachment+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSTextAttachment+Kingfisher.swift"; path = "Sources/Extensions/NSTextAttachment+Kingfisher.swift"; sourceTree = ""; }; 182 | 4949755FDDB531E29503917434494102 /* Pods-GeekPark-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-GeekPark-acknowledgements.markdown"; sourceTree = ""; }; 183 | 4D5EBC7A8EA4669352A9F380868989D2 /* AuthenticationChallengeResponsable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationChallengeResponsable.swift; path = Sources/Networking/AuthenticationChallengeResponsable.swift; sourceTree = ""; }; 184 | 516572B1B9853DA1E51FC55297D7E6E4 /* RequestTaskMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTaskMap.swift; path = Source/RequestTaskMap.swift; sourceTree = ""; }; 185 | 52754ABC687F3747783155874EFBA4BD /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; 186 | 55F47AA0328EB96E4E726F74CD45EB94 /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; 187 | 5B955D74BEE8625177B4193FD0A57EDB /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; 188 | 5BF4B7AFDD5370DA7C680178E808D942 /* Protected.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Protected.swift; path = Source/Protected.swift; sourceTree = ""; }; 189 | 5C448CCC0BDEA01599721623BA43D052 /* KingfisherOptionsInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KingfisherOptionsInfo.swift; path = Sources/General/KingfisherOptionsInfo.swift; sourceTree = ""; }; 190 | 5C7A0B2906D9E8CD6F0075042523F35E /* SwiftyJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftyJSON-dummy.m"; sourceTree = ""; }; 191 | 5D65335167413E903EAF510F1D080181 /* ParameterEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoder.swift; path = Source/ParameterEncoder.swift; sourceTree = ""; }; 192 | 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 193 | 60FD6CCEFF2F065ED63F43113E7CA2EA /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; 194 | 62767E9725EE72CBA42ABC44831BD3B0 /* Kingfisher.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Kingfisher.modulemap; sourceTree = ""; }; 195 | 63AE07B6CC30DA4868D0054C8A8FFFED /* Pods-GeekPark-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-GeekPark-umbrella.h"; sourceTree = ""; }; 196 | 657DCC54DFE74083A21B1342A77A9EBB /* SwiftyJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftyJSON.swift; path = Source/SwiftyJSON/SwiftyJSON.swift; sourceTree = ""; }; 197 | 6690788ABFA5182F9E98C45410C7F7F1 /* AuthenticationInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AuthenticationInterceptor.swift; path = Source/AuthenticationInterceptor.swift; sourceTree = ""; }; 198 | 6706A789CE17CCED00917C1BB61A2E25 /* GIFAnimatedImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GIFAnimatedImage.swift; path = Sources/Image/GIFAnimatedImage.swift; sourceTree = ""; }; 199 | 680755157B7123F193DB32CA31A4BD11 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; 200 | 6A2694CEF1BD53BF179FE0299613A624 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; 201 | 6B227CBDF252E94CE3A848A1535BFDDD /* Box.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Box.swift; path = Sources/Utility/Box.swift; sourceTree = ""; }; 202 | 6EA46F82F945FB5531756442B075E641 /* OperationQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "OperationQueue+Alamofire.swift"; path = "Source/OperationQueue+Alamofire.swift"; sourceTree = ""; }; 203 | 6FE7499CEA2D889A7B52264C5BC87959 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Sources/Networking/SessionDelegate.swift; sourceTree = ""; }; 204 | 7265DAA53437CC7695F8EC7A49E99032 /* Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Kingfisher.swift; path = Sources/General/Kingfisher.swift; sourceTree = ""; }; 205 | 746DD198140D8E306E7FC97DC74A5B7A /* KFImage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KFImage.swift; path = Sources/SwiftUI/KFImage.swift; sourceTree = ""; }; 206 | 75E478FDF0F20AA33CFF824619EC00CC /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; 207 | 7825D11551E5495C6E2996F02601FDE3 /* SwiftyJSON-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SwiftyJSON-Info.plist"; sourceTree = ""; }; 208 | 7A1A7CD5D220F43A101CC9B0C9C0571C /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; 209 | 7C35199008DCD30479BA38F616F2295C /* Kingfisher-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kingfisher-prefix.pch"; sourceTree = ""; }; 210 | 7E2DB361CFF35D35C91D15EF63BEC60A /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Sources/Utility/Result.swift; sourceTree = ""; }; 211 | 7EB75688ED1B36F71B2E9E0FC75DFDF9 /* CacheSerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CacheSerializer.swift; path = Sources/Cache/CacheSerializer.swift; sourceTree = ""; }; 212 | 7F553A6E4C96E0551089B54AE67CFD33 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; 213 | 82CE30AA4DA525F0D2233AAC1B785B35 /* MultipartUpload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartUpload.swift; path = Source/MultipartUpload.swift; sourceTree = ""; }; 214 | 850AB4EC1590A9917BABF355C40151EF /* Pods-GeekPark.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GeekPark.release.xcconfig"; sourceTree = ""; }; 215 | 86B31B66AF9BBCA7331D3E3001363D69 /* Kingfisher-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Kingfisher-umbrella.h"; sourceTree = ""; }; 216 | 89936DCB21DB455F1174B64DF9C25E8B /* Pods-GeekPark.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-GeekPark.modulemap"; sourceTree = ""; }; 217 | 8DA75DF694D2E853C77330D9DD8DA736 /* UIButton+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIButton+Kingfisher.swift"; path = "Sources/Extensions/UIButton+Kingfisher.swift"; sourceTree = ""; }; 218 | 8E3234AFA1C6318AB209EB2C8EC92841 /* CachedResponseHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CachedResponseHandler.swift; path = Source/CachedResponseHandler.swift; sourceTree = ""; }; 219 | 8E7765E4C251F74A5D6BE98BD1078DD8 /* TVMonogramView+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "TVMonogramView+Kingfisher.swift"; path = "Sources/Extensions/TVMonogramView+Kingfisher.swift"; sourceTree = ""; }; 220 | 90722FF5F37E25731B105EC4C3E89181 /* ImageFormat.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageFormat.swift; path = Sources/Image/ImageFormat.swift; sourceTree = ""; }; 221 | 969BE834E52CFDD70FB628AB0C97CFFD /* Pods-GeekPark-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GeekPark-Info.plist"; sourceTree = ""; }; 222 | 9BA044B4A476101CE2209055420E6082 /* Pods_GeekPark.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_GeekPark.framework; path = "Pods-GeekPark.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 223 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 224 | 9E316532161A42B5EA08A2CAD2B2D258 /* SwiftyJSON.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftyJSON.release.xcconfig; sourceTree = ""; }; 225 | A18AEA433964CC5D0908F0C6AA8CE619 /* WKInterfaceImage+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "WKInterfaceImage+Kingfisher.swift"; path = "Sources/Extensions/WKInterfaceImage+Kingfisher.swift"; sourceTree = ""; }; 226 | A2E6E5F89C860248B265052E77D75D98 /* Placeholder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Placeholder.swift; path = Sources/Image/Placeholder.swift; sourceTree = ""; }; 227 | A3830092B3D799BA77E84DCCDBF71D69 /* RedirectHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedirectHandler.swift; path = Source/RedirectHandler.swift; sourceTree = ""; }; 228 | A77415F66BFA21656CE50B38CB7DAC05 /* KF.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KF.swift; path = Sources/General/KF.swift; sourceTree = ""; }; 229 | AA9EB12F3184D56A2C6E7E662C8A4C21 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; 230 | AC4AF9F22827857D4648B4C81C1DE212 /* Pods-GeekPark-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-GeekPark-dummy.m"; sourceTree = ""; }; 231 | B142EA2EBCC5391E9477EA3D82062616 /* ImagePrefetcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImagePrefetcher.swift; path = Sources/Networking/ImagePrefetcher.swift; sourceTree = ""; }; 232 | B388E60446F618C1AEFD3F6E7F2DBFBC /* ImageCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageCache.swift; path = Sources/Cache/ImageCache.swift; sourceTree = ""; }; 233 | B52858C300DE69FFCC0B13DF9F89590D /* ImageProgressive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageProgressive.swift; path = Sources/Image/ImageProgressive.swift; sourceTree = ""; }; 234 | B95052DD50367851D79699044A7DAF05 /* AVAssetImageDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AVAssetImageDataProvider.swift; path = Sources/General/ImageSource/AVAssetImageDataProvider.swift; sourceTree = ""; }; 235 | BA10077FF60B204A01F90B2B3C339648 /* EventMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EventMonitor.swift; path = Source/EventMonitor.swift; sourceTree = ""; }; 236 | BB4A8EE26C0067B0FB350732736407CD /* ImageDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDataProvider.swift; path = Sources/General/ImageSource/ImageDataProvider.swift; sourceTree = ""; }; 237 | BBDE1C1288AB784DEDC65BB0EFB3C80B /* RequestModifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModifier.swift; path = Sources/Networking/RequestModifier.swift; sourceTree = ""; }; 238 | BC7689E48340D2679967C5C18FBE648A /* HTTPMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPMethod.swift; path = Source/HTTPMethod.swift; sourceTree = ""; }; 239 | BDB795B45315F10D3B28019233025DAB /* Kingfisher-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Kingfisher-dummy.m"; sourceTree = ""; }; 240 | BF3D1FDC0288630F68A35119B7A9AE86 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; 241 | C1FA46000D064E98BA938A7BADD8C1A7 /* ServerTrustEvaluation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustEvaluation.swift; path = Source/ServerTrustEvaluation.swift; sourceTree = ""; }; 242 | C30927FA084D95CF078FC6380025BA6A /* ImageDataProcessor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageDataProcessor.swift; path = Sources/Networking/ImageDataProcessor.swift; sourceTree = ""; }; 243 | C3F44C782D64D7EB20B61CE3844EBFAD /* Kingfisher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Kingfisher.framework; path = Kingfisher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 244 | C5D26F37B1E78887F72B5892994CF53C /* SwiftyJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-prefix.pch"; sourceTree = ""; }; 245 | C5ED2F4B0F602F1A984B8B25C97CA873 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; 246 | C764926406CF5EC5DC6F76ADA8773542 /* NSButton+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSButton+Kingfisher.swift"; path = "Sources/Extensions/NSButton+Kingfisher.swift"; sourceTree = ""; }; 247 | C8CD72E0C619EE78DC80F7D655893707 /* Result+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Result+Alamofire.swift"; path = "Source/Result+Alamofire.swift"; sourceTree = ""; }; 248 | CCAE5792EA2701C003E473776E4F9642 /* Pods-GeekPark-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-GeekPark-frameworks.sh"; sourceTree = ""; }; 249 | CCBD5614DB12B5261B96E2BAB5199FA1 /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; 250 | DA7282CC7AB15F7DD82A05C5B7FAF45A /* ImageView+Kingfisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ImageView+Kingfisher.swift"; path = "Sources/Extensions/ImageView+Kingfisher.swift"; sourceTree = ""; }; 251 | DBBBB9F6F11FB5CE6FDE7C6C7102B954 /* URLSessionConfiguration+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLSessionConfiguration+Alamofire.swift"; path = "Source/URLSessionConfiguration+Alamofire.swift"; sourceTree = ""; }; 252 | DD2CF06A32D1CA43FC882714FBD4838F /* CallbackQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CallbackQueue.swift; path = Sources/Utility/CallbackQueue.swift; sourceTree = ""; }; 253 | DEFC14C72EF88E190AC06E0AA74E3C83 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Image/Filter.swift; sourceTree = ""; }; 254 | E099BE668C14CF71CA15C34ACF934DB6 /* Runtime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Runtime.swift; path = Sources/Utility/Runtime.swift; sourceTree = ""; }; 255 | E0D2A6945EDD533F78C40446822C11A0 /* AlamofireExtended.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AlamofireExtended.swift; path = Source/AlamofireExtended.swift; sourceTree = ""; }; 256 | E1062ABA991940561C08B44B25597266 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; 257 | E2145B91D05CE84ABA4D0470C7D9066B /* Kingfisher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Kingfisher.debug.xcconfig; sourceTree = ""; }; 258 | E23C076BA70925415F490FEDB215DA92 /* SwiftyJSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SwiftyJSON.framework; path = SwiftyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 259 | E4452E929AB07E888F79A305DB85B4E9 /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = Sources/Cache/Storage.swift; sourceTree = ""; }; 260 | E4BBBB04183C97FC2F644862EEA8BC46 /* Pods-GeekPark.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-GeekPark.debug.xcconfig"; sourceTree = ""; }; 261 | E9D008DDFDE9265FAD4E4F3A988C347F /* SwiftyJSON.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftyJSON.debug.xcconfig; sourceTree = ""; }; 262 | EAC51F5EE33AC9CA8386A426D88F7582 /* HTTPHeaders.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HTTPHeaders.swift; path = Source/HTTPHeaders.swift; sourceTree = ""; }; 263 | EEB4490B92B20392A9F14003BA778928 /* Kingfisher.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Kingfisher.release.xcconfig; sourceTree = ""; }; 264 | EEF080BA72F1F7F68F5417E32830D86F /* SwiftyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-umbrella.h"; sourceTree = ""; }; 265 | F27E17A35F518217D241F54823362C7F /* AnimatedImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnimatedImageView.swift; path = Sources/Views/AnimatedImageView.swift; sourceTree = ""; }; 266 | F479F5E901AE86BCFB7D859AF0AAD957 /* Kingfisher-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Kingfisher-Info.plist"; sourceTree = ""; }; 267 | F56AF2579538EFC461FF430A3A848EA8 /* StringEncoding+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "StringEncoding+Alamofire.swift"; path = "Source/StringEncoding+Alamofire.swift"; sourceTree = ""; }; 268 | F6D4C09DE1979419ACF541220FD9313B /* URLConvertible+URLRequestConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLConvertible+URLRequestConvertible.swift"; path = "Source/URLConvertible+URLRequestConvertible.swift"; sourceTree = ""; }; 269 | F72B6A81C76FC723E69A9BBAC52FAE4C /* ImageModifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ImageModifier.swift; path = Sources/Networking/ImageModifier.swift; sourceTree = ""; }; 270 | FC2A31DDE46325511800259AE1AD5B1B /* Pods-GeekPark-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-GeekPark-acknowledgements.plist"; sourceTree = ""; }; 271 | FF37457B0D2E1B71EF07684D34D467BC /* URLRequest+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URLRequest+Alamofire.swift"; path = "Source/URLRequest+Alamofire.swift"; sourceTree = ""; }; 272 | /* End PBXFileReference section */ 273 | 274 | /* Begin PBXFrameworksBuildPhase section */ 275 | 7818606FA4B725242E9811C494383EDD /* Frameworks */ = { 276 | isa = PBXFrameworksBuildPhase; 277 | buildActionMask = 2147483647; 278 | files = ( 279 | E6EC64ABA3B69C1316B447981949BADE /* Cocoa.framework in Frameworks */, 280 | ); 281 | runOnlyForDeploymentPostprocessing = 0; 282 | }; 283 | 91E53082963B6D2C9A6BF79BDEF6E17D /* Frameworks */ = { 284 | isa = PBXFrameworksBuildPhase; 285 | buildActionMask = 2147483647; 286 | files = ( 287 | BB78CC0BC73E37BCE860EB5CEDAFB7E6 /* Accelerate.framework in Frameworks */, 288 | 467D228281A8C56F90B030AE6A94CE6B /* CFNetwork.framework in Frameworks */, 289 | 83AC0D424CCA3F2269567E4CCBE6008D /* Cocoa.framework in Frameworks */, 290 | ); 291 | runOnlyForDeploymentPostprocessing = 0; 292 | }; 293 | D9B502FF1804B7562A7B8349A0FBAB7B /* Frameworks */ = { 294 | isa = PBXFrameworksBuildPhase; 295 | buildActionMask = 2147483647; 296 | files = ( 297 | 377875E506706BC611D0A60BCB336399 /* Cocoa.framework in Frameworks */, 298 | ); 299 | runOnlyForDeploymentPostprocessing = 0; 300 | }; 301 | E4B8CC1E36A98FF4D8BDAC84442F0DCE /* Frameworks */ = { 302 | isa = PBXFrameworksBuildPhase; 303 | buildActionMask = 2147483647; 304 | files = ( 305 | 9A1CDAE2E9AFFFDBC654855D4A8C6D36 /* CFNetwork.framework in Frameworks */, 306 | 4C3A9F4F5A688009D660C0FA5E5D81BB /* Cocoa.framework in Frameworks */, 307 | ); 308 | runOnlyForDeploymentPostprocessing = 0; 309 | }; 310 | /* End PBXFrameworksBuildPhase section */ 311 | 312 | /* Begin PBXGroup section */ 313 | 00BAA296CD73765EFDA71306309F3DF1 /* Targets Support Files */ = { 314 | isa = PBXGroup; 315 | children = ( 316 | 04A92DEFF3088BDB0B8F0A12A4854633 /* Pods-GeekPark */, 317 | ); 318 | name = "Targets Support Files"; 319 | sourceTree = ""; 320 | }; 321 | 04A92DEFF3088BDB0B8F0A12A4854633 /* Pods-GeekPark */ = { 322 | isa = PBXGroup; 323 | children = ( 324 | 89936DCB21DB455F1174B64DF9C25E8B /* Pods-GeekPark.modulemap */, 325 | 4949755FDDB531E29503917434494102 /* Pods-GeekPark-acknowledgements.markdown */, 326 | FC2A31DDE46325511800259AE1AD5B1B /* Pods-GeekPark-acknowledgements.plist */, 327 | AC4AF9F22827857D4648B4C81C1DE212 /* Pods-GeekPark-dummy.m */, 328 | CCAE5792EA2701C003E473776E4F9642 /* Pods-GeekPark-frameworks.sh */, 329 | 969BE834E52CFDD70FB628AB0C97CFFD /* Pods-GeekPark-Info.plist */, 330 | 63AE07B6CC30DA4868D0054C8A8FFFED /* Pods-GeekPark-umbrella.h */, 331 | E4BBBB04183C97FC2F644862EEA8BC46 /* Pods-GeekPark.debug.xcconfig */, 332 | 850AB4EC1590A9917BABF355C40151EF /* Pods-GeekPark.release.xcconfig */, 333 | ); 334 | name = "Pods-GeekPark"; 335 | path = "Target Support Files/Pods-GeekPark"; 336 | sourceTree = ""; 337 | }; 338 | 1E8D44C2D3502C0BC7E666EC8142B62C /* Support Files */ = { 339 | isa = PBXGroup; 340 | children = ( 341 | 244680EEFF632A231FABC8F367E7628D /* Alamofire.modulemap */, 342 | C5ED2F4B0F602F1A984B8B25C97CA873 /* Alamofire-dummy.m */, 343 | 43031DC0BF1A5657B17080039A269C5A /* Alamofire-Info.plist */, 344 | 0283B71B8232C5B28535762A07F4B6E6 /* Alamofire-prefix.pch */, 345 | 52754ABC687F3747783155874EFBA4BD /* Alamofire-umbrella.h */, 346 | 07EF80C8F5F53727D99A6BE48CF30E30 /* Alamofire.debug.xcconfig */, 347 | 35BC877FD72E33B0D941763BE6EBBB79 /* Alamofire.release.xcconfig */, 348 | ); 349 | name = "Support Files"; 350 | path = "../Target Support Files/Alamofire"; 351 | sourceTree = ""; 352 | }; 353 | 451127929649A1852741DB34362FAEC5 /* Products */ = { 354 | isa = PBXGroup; 355 | children = ( 356 | 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire.framework */, 357 | C3F44C782D64D7EB20B61CE3844EBFAD /* Kingfisher.framework */, 358 | 9BA044B4A476101CE2209055420E6082 /* Pods_GeekPark.framework */, 359 | E23C076BA70925415F490FEDB215DA92 /* SwiftyJSON.framework */, 360 | ); 361 | name = Products; 362 | sourceTree = ""; 363 | }; 364 | 6DC38250DCB4BA680358C045135AD942 /* OS X */ = { 365 | isa = PBXGroup; 366 | children = ( 367 | 680755157B7123F193DB32CA31A4BD11 /* Accelerate.framework */, 368 | AA9EB12F3184D56A2C6E7E662C8A4C21 /* CFNetwork.framework */, 369 | 3714E2561BD0F3275C6698C3D09A8F9E /* Cocoa.framework */, 370 | ); 371 | name = "OS X"; 372 | sourceTree = ""; 373 | }; 374 | 9B89ECAFFE2A8FE1EC186617145C59D3 /* Kingfisher */ = { 375 | isa = PBXGroup; 376 | children = ( 377 | F27E17A35F518217D241F54823362C7F /* AnimatedImageView.swift */, 378 | 4D5EBC7A8EA4669352A9F380868989D2 /* AuthenticationChallengeResponsable.swift */, 379 | B95052DD50367851D79699044A7DAF05 /* AVAssetImageDataProvider.swift */, 380 | 6B227CBDF252E94CE3A848A1535BFDDD /* Box.swift */, 381 | 7EB75688ED1B36F71B2E9E0FC75DFDF9 /* CacheSerializer.swift */, 382 | DD2CF06A32D1CA43FC882714FBD4838F /* CallbackQueue.swift */, 383 | 3DB1BC57BADD910F0346C360F9E31EC5 /* Delegate.swift */, 384 | 0CD53648CFFFA927F8E5A3ED91FD05AC /* DiskStorage.swift */, 385 | 2C7DA39943C68190EF392ACBA8A287EA /* ExtensionHelpers.swift */, 386 | DEFC14C72EF88E190AC06E0AA74E3C83 /* Filter.swift */, 387 | 3E2E58A150FB95D5D0EBFE533BDCB87D /* FormatIndicatedCacheSerializer.swift */, 388 | 6706A789CE17CCED00917C1BB61A2E25 /* GIFAnimatedImage.swift */, 389 | 3A60B02674518133C92C66ACF954D9E2 /* Image.swift */, 390 | 41B6BE1629C5332AB50A5599A129F74A /* ImageBinder.swift */, 391 | B388E60446F618C1AEFD3F6E7F2DBFBC /* ImageCache.swift */, 392 | C30927FA084D95CF078FC6380025BA6A /* ImageDataProcessor.swift */, 393 | BB4A8EE26C0067B0FB350732736407CD /* ImageDataProvider.swift */, 394 | 45033986A08E9F1F43B0827FAF000CAC /* ImageDownloader.swift */, 395 | 15F38D16460D453A6D6E4C3E690EB54C /* ImageDownloaderDelegate.swift */, 396 | 44D8A001EB9CF47B9C588F15C690065E /* ImageDrawing.swift */, 397 | 90722FF5F37E25731B105EC4C3E89181 /* ImageFormat.swift */, 398 | F72B6A81C76FC723E69A9BBAC52FAE4C /* ImageModifier.swift */, 399 | B142EA2EBCC5391E9477EA3D82062616 /* ImagePrefetcher.swift */, 400 | 210B8AA9D8582E76FA902AA317D4CFBA /* ImageProcessor.swift */, 401 | B52858C300DE69FFCC0B13DF9F89590D /* ImageProgressive.swift */, 402 | 14219697106AB09C34BFB3BAB93A8518 /* ImageTransition.swift */, 403 | DA7282CC7AB15F7DD82A05C5B7FAF45A /* ImageView+Kingfisher.swift */, 404 | 257001073EEB4EBADA515805A34A45D1 /* Indicator.swift */, 405 | A77415F66BFA21656CE50B38CB7DAC05 /* KF.swift */, 406 | 746DD198140D8E306E7FC97DC74A5B7A /* KFImage.swift */, 407 | 1CBD9C6D75AAF352EDDEDA82759525E9 /* KFImageOptions.swift */, 408 | 1CF89B989552672D051FCD96D03DD692 /* KFOptionsSetter.swift */, 409 | 7265DAA53437CC7695F8EC7A49E99032 /* Kingfisher.swift */, 410 | 1E36B472307D00027F49813238789CC8 /* KingfisherError.swift */, 411 | 173BACF54EA56DCD504EC69D985FBA0F /* KingfisherManager.swift */, 412 | 5C448CCC0BDEA01599721623BA43D052 /* KingfisherOptionsInfo.swift */, 413 | 3D59D1939F538E48669931AE7BA3EA78 /* MemoryStorage.swift */, 414 | C764926406CF5EC5DC6F76ADA8773542 /* NSButton+Kingfisher.swift */, 415 | 490B6BC6187F25AF312B27B0E8F2D611 /* NSTextAttachment+Kingfisher.swift */, 416 | A2E6E5F89C860248B265052E77D75D98 /* Placeholder.swift */, 417 | 2BB81ABB2D62292C75E98C78B153C7CE /* RedirectHandler.swift */, 418 | BBDE1C1288AB784DEDC65BB0EFB3C80B /* RequestModifier.swift */, 419 | 21ABBC2C121A6F74005E0B80AB8968F1 /* Resource.swift */, 420 | 7E2DB361CFF35D35C91D15EF63BEC60A /* Result.swift */, 421 | 4299506090F01B4CDE2431536A868585 /* RetryStrategy.swift */, 422 | E099BE668C14CF71CA15C34ACF934DB6 /* Runtime.swift */, 423 | 102CCC4FD0B4997B066457C4D4A17483 /* SessionDataTask.swift */, 424 | 6FE7499CEA2D889A7B52264C5BC87959 /* SessionDelegate.swift */, 425 | 0C73CC030284C001D9347AA703CE6EBE /* SizeExtensions.swift */, 426 | 4258528C8899FA7817F29E99F334ADBB /* Source.swift */, 427 | E4452E929AB07E888F79A305DB85B4E9 /* Storage.swift */, 428 | 0A321E9E166334C5D4C13362053ED016 /* String+MD5.swift */, 429 | 8E7765E4C251F74A5D6BE98BD1078DD8 /* TVMonogramView+Kingfisher.swift */, 430 | 8DA75DF694D2E853C77330D9DD8DA736 /* UIButton+Kingfisher.swift */, 431 | A18AEA433964CC5D0908F0C6AA8CE619 /* WKInterfaceImage+Kingfisher.swift */, 432 | ED095245438AC10ABFA30B41755EBA0A /* Support Files */, 433 | ); 434 | name = Kingfisher; 435 | path = Kingfisher; 436 | sourceTree = ""; 437 | }; 438 | 9C1B9F554CC5B92334818D8676BAEAB0 /* Support Files */ = { 439 | isa = PBXGroup; 440 | children = ( 441 | 3EC5216FF7DB7199C59DDE99A4D745AF /* SwiftyJSON.modulemap */, 442 | 5C7A0B2906D9E8CD6F0075042523F35E /* SwiftyJSON-dummy.m */, 443 | 7825D11551E5495C6E2996F02601FDE3 /* SwiftyJSON-Info.plist */, 444 | C5D26F37B1E78887F72B5892994CF53C /* SwiftyJSON-prefix.pch */, 445 | EEF080BA72F1F7F68F5417E32830D86F /* SwiftyJSON-umbrella.h */, 446 | E9D008DDFDE9265FAD4E4F3A988C347F /* SwiftyJSON.debug.xcconfig */, 447 | 9E316532161A42B5EA08A2CAD2B2D258 /* SwiftyJSON.release.xcconfig */, 448 | ); 449 | name = "Support Files"; 450 | path = "../Target Support Files/SwiftyJSON"; 451 | sourceTree = ""; 452 | }; 453 | A3CDB250FFEFB42CA2C68F1FBD92997D /* Frameworks */ = { 454 | isa = PBXGroup; 455 | children = ( 456 | 6DC38250DCB4BA680358C045135AD942 /* OS X */, 457 | ); 458 | name = Frameworks; 459 | sourceTree = ""; 460 | }; 461 | C2F620045CD8E166A93BC309A2A1AB1C /* Alamofire */ = { 462 | isa = PBXGroup; 463 | children = ( 464 | E1062ABA991940561C08B44B25597266 /* AFError.swift */, 465 | 7F553A6E4C96E0551089B54AE67CFD33 /* Alamofire.swift */, 466 | E0D2A6945EDD533F78C40446822C11A0 /* AlamofireExtended.swift */, 467 | 6690788ABFA5182F9E98C45410C7F7F1 /* AuthenticationInterceptor.swift */, 468 | 8E3234AFA1C6318AB209EB2C8EC92841 /* CachedResponseHandler.swift */, 469 | 15194EBFA8CFE42C748A560A822F4DCD /* Combine.swift */, 470 | 28E0D2C1F7359354ED76CAE385F22D18 /* DispatchQueue+Alamofire.swift */, 471 | BA10077FF60B204A01F90B2B3C339648 /* EventMonitor.swift */, 472 | EAC51F5EE33AC9CA8386A426D88F7582 /* HTTPHeaders.swift */, 473 | BC7689E48340D2679967C5C18FBE648A /* HTTPMethod.swift */, 474 | CCBD5614DB12B5261B96E2BAB5199FA1 /* MultipartFormData.swift */, 475 | 82CE30AA4DA525F0D2233AAC1B785B35 /* MultipartUpload.swift */, 476 | BF3D1FDC0288630F68A35119B7A9AE86 /* NetworkReachabilityManager.swift */, 477 | 75E478FDF0F20AA33CFF824619EC00CC /* Notifications.swift */, 478 | 6EA46F82F945FB5531756442B075E641 /* OperationQueue+Alamofire.swift */, 479 | 5D65335167413E903EAF510F1D080181 /* ParameterEncoder.swift */, 480 | 0D65E2C327106DF5BC3B2A31065952FE /* ParameterEncoding.swift */, 481 | 5BF4B7AFDD5370DA7C680178E808D942 /* Protected.swift */, 482 | A3830092B3D799BA77E84DCCDBF71D69 /* RedirectHandler.swift */, 483 | 6A2694CEF1BD53BF179FE0299613A624 /* Request.swift */, 484 | 34A2D8D545BBD125FD17703F3B3958E2 /* RequestInterceptor.swift */, 485 | 516572B1B9853DA1E51FC55297D7E6E4 /* RequestTaskMap.swift */, 486 | 7A1A7CD5D220F43A101CC9B0C9C0571C /* Response.swift */, 487 | 55F47AA0328EB96E4E726F74CD45EB94 /* ResponseSerialization.swift */, 488 | C8CD72E0C619EE78DC80F7D655893707 /* Result+Alamofire.swift */, 489 | 05FBA231516D2CD48316FCDC5E458B42 /* RetryPolicy.swift */, 490 | C1FA46000D064E98BA938A7BADD8C1A7 /* ServerTrustEvaluation.swift */, 491 | 2C0DDA65896DF38CC06B673FE5697BFA /* Session.swift */, 492 | 60FD6CCEFF2F065ED63F43113E7CA2EA /* SessionDelegate.swift */, 493 | F56AF2579538EFC461FF430A3A848EA8 /* StringEncoding+Alamofire.swift */, 494 | F6D4C09DE1979419ACF541220FD9313B /* URLConvertible+URLRequestConvertible.swift */, 495 | 0316F0673DD0286C1E8028547D824FB1 /* URLEncodedFormEncoder.swift */, 496 | FF37457B0D2E1B71EF07684D34D467BC /* URLRequest+Alamofire.swift */, 497 | DBBBB9F6F11FB5CE6FDE7C6C7102B954 /* URLSessionConfiguration+Alamofire.swift */, 498 | 5B955D74BEE8625177B4193FD0A57EDB /* Validation.swift */, 499 | 1E8D44C2D3502C0BC7E666EC8142B62C /* Support Files */, 500 | ); 501 | name = Alamofire; 502 | path = Alamofire; 503 | sourceTree = ""; 504 | }; 505 | CF1408CF629C7361332E53B88F7BD30C = { 506 | isa = PBXGroup; 507 | children = ( 508 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 509 | A3CDB250FFEFB42CA2C68F1FBD92997D /* Frameworks */, 510 | EC41E2B90834D5D1467B9FF7F51B38B4 /* Pods */, 511 | 451127929649A1852741DB34362FAEC5 /* Products */, 512 | 00BAA296CD73765EFDA71306309F3DF1 /* Targets Support Files */, 513 | ); 514 | sourceTree = ""; 515 | }; 516 | E53B4BC7D441E013392C8A82431B4020 /* SwiftyJSON */ = { 517 | isa = PBXGroup; 518 | children = ( 519 | 657DCC54DFE74083A21B1342A77A9EBB /* SwiftyJSON.swift */, 520 | 9C1B9F554CC5B92334818D8676BAEAB0 /* Support Files */, 521 | ); 522 | name = SwiftyJSON; 523 | path = SwiftyJSON; 524 | sourceTree = ""; 525 | }; 526 | EC41E2B90834D5D1467B9FF7F51B38B4 /* Pods */ = { 527 | isa = PBXGroup; 528 | children = ( 529 | C2F620045CD8E166A93BC309A2A1AB1C /* Alamofire */, 530 | 9B89ECAFFE2A8FE1EC186617145C59D3 /* Kingfisher */, 531 | E53B4BC7D441E013392C8A82431B4020 /* SwiftyJSON */, 532 | ); 533 | name = Pods; 534 | sourceTree = ""; 535 | }; 536 | ED095245438AC10ABFA30B41755EBA0A /* Support Files */ = { 537 | isa = PBXGroup; 538 | children = ( 539 | 62767E9725EE72CBA42ABC44831BD3B0 /* Kingfisher.modulemap */, 540 | BDB795B45315F10D3B28019233025DAB /* Kingfisher-dummy.m */, 541 | F479F5E901AE86BCFB7D859AF0AAD957 /* Kingfisher-Info.plist */, 542 | 7C35199008DCD30479BA38F616F2295C /* Kingfisher-prefix.pch */, 543 | 86B31B66AF9BBCA7331D3E3001363D69 /* Kingfisher-umbrella.h */, 544 | E2145B91D05CE84ABA4D0470C7D9066B /* Kingfisher.debug.xcconfig */, 545 | EEB4490B92B20392A9F14003BA778928 /* Kingfisher.release.xcconfig */, 546 | ); 547 | name = "Support Files"; 548 | path = "../Target Support Files/Kingfisher"; 549 | sourceTree = ""; 550 | }; 551 | /* End PBXGroup section */ 552 | 553 | /* Begin PBXHeadersBuildPhase section */ 554 | 2834A7A86201E84844D8CE54EC1299AD /* Headers */ = { 555 | isa = PBXHeadersBuildPhase; 556 | buildActionMask = 2147483647; 557 | files = ( 558 | 8586724C257074B48F36D6D9301D367B /* Kingfisher-umbrella.h in Headers */, 559 | ); 560 | runOnlyForDeploymentPostprocessing = 0; 561 | }; 562 | 3D7DD627DB5C5AD636646E57B685AFB2 /* Headers */ = { 563 | isa = PBXHeadersBuildPhase; 564 | buildActionMask = 2147483647; 565 | files = ( 566 | 1942F7D3B7722A5637C3FC0BE44B1E6C /* SwiftyJSON-umbrella.h in Headers */, 567 | ); 568 | runOnlyForDeploymentPostprocessing = 0; 569 | }; 570 | 5E65E5F1B9C58765E9BB880DA601BC0D /* Headers */ = { 571 | isa = PBXHeadersBuildPhase; 572 | buildActionMask = 2147483647; 573 | files = ( 574 | 4123E3708902448156969FCCE197D198 /* Pods-GeekPark-umbrella.h in Headers */, 575 | ); 576 | runOnlyForDeploymentPostprocessing = 0; 577 | }; 578 | 8070B01910C64B9AFD0DB550EDE38D6B /* Headers */ = { 579 | isa = PBXHeadersBuildPhase; 580 | buildActionMask = 2147483647; 581 | files = ( 582 | 7D3DD4A8BB36733BA15868F7FB8C56CE /* Alamofire-umbrella.h in Headers */, 583 | ); 584 | runOnlyForDeploymentPostprocessing = 0; 585 | }; 586 | /* End PBXHeadersBuildPhase section */ 587 | 588 | /* Begin PBXNativeTarget section */ 589 | D118A6A04828FD3CDA8640CD2B6796D2 /* SwiftyJSON */ = { 590 | isa = PBXNativeTarget; 591 | buildConfigurationList = 62468BF9C7EDA172E951A24083C3ECA7 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */; 592 | buildPhases = ( 593 | 3D7DD627DB5C5AD636646E57B685AFB2 /* Headers */, 594 | 1700C451C98D9DCECBEDFC5E351C5A9E /* Sources */, 595 | 7818606FA4B725242E9811C494383EDD /* Frameworks */, 596 | D098F7F0080A87A1F472C81FC2F85528 /* Resources */, 597 | ); 598 | buildRules = ( 599 | ); 600 | dependencies = ( 601 | ); 602 | name = SwiftyJSON; 603 | productName = SwiftyJSON; 604 | productReference = E23C076BA70925415F490FEDB215DA92 /* SwiftyJSON.framework */; 605 | productType = "com.apple.product-type.framework"; 606 | }; 607 | E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */ = { 608 | isa = PBXNativeTarget; 609 | buildConfigurationList = 632C3FA67581BFD4D8AD5EA50EF27810 /* Build configuration list for PBXNativeTarget "Kingfisher" */; 610 | buildPhases = ( 611 | 2834A7A86201E84844D8CE54EC1299AD /* Headers */, 612 | 26B24D5D7646E2EB56FDD17196467050 /* Sources */, 613 | 91E53082963B6D2C9A6BF79BDEF6E17D /* Frameworks */, 614 | AAC163231050CADCF935790EFF19FD02 /* Resources */, 615 | ); 616 | buildRules = ( 617 | ); 618 | dependencies = ( 619 | ); 620 | name = Kingfisher; 621 | productName = Kingfisher; 622 | productReference = C3F44C782D64D7EB20B61CE3844EBFAD /* Kingfisher.framework */; 623 | productType = "com.apple.product-type.framework"; 624 | }; 625 | EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */ = { 626 | isa = PBXNativeTarget; 627 | buildConfigurationList = 78E219AC01CD5AFED663C9AB28280801 /* Build configuration list for PBXNativeTarget "Alamofire" */; 628 | buildPhases = ( 629 | 8070B01910C64B9AFD0DB550EDE38D6B /* Headers */, 630 | 2C8326877F6A9617C2FBE9BD15D95B59 /* Sources */, 631 | E4B8CC1E36A98FF4D8BDAC84442F0DCE /* Frameworks */, 632 | 9BCA7D105D531AE5DAF34FB86A2E623A /* Resources */, 633 | ); 634 | buildRules = ( 635 | ); 636 | dependencies = ( 637 | ); 638 | name = Alamofire; 639 | productName = Alamofire; 640 | productReference = 5D797E9A5C5782CE845840781FA1CC81 /* Alamofire.framework */; 641 | productType = "com.apple.product-type.framework"; 642 | }; 643 | F62DDEE121DA42D879AA349CEEEBC93E /* Pods-GeekPark */ = { 644 | isa = PBXNativeTarget; 645 | buildConfigurationList = EC18FD67EAD32BC42B081A9049083A59 /* Build configuration list for PBXNativeTarget "Pods-GeekPark" */; 646 | buildPhases = ( 647 | 5E65E5F1B9C58765E9BB880DA601BC0D /* Headers */, 648 | 74BD8DE3DB35B5B5802E48D6C5F555CE /* Sources */, 649 | D9B502FF1804B7562A7B8349A0FBAB7B /* Frameworks */, 650 | 0EFD31B4F828C3D3F2A6DB84D6F93D6A /* Resources */, 651 | ); 652 | buildRules = ( 653 | ); 654 | dependencies = ( 655 | B8D59F888D3BDF4EED69109E52C2BAD3 /* PBXTargetDependency */, 656 | 8274AA8FEFF04824C4D8117B4185E27F /* PBXTargetDependency */, 657 | 7984E4219FE0250C653D272F875835E2 /* PBXTargetDependency */, 658 | ); 659 | name = "Pods-GeekPark"; 660 | productName = "Pods-GeekPark"; 661 | productReference = 9BA044B4A476101CE2209055420E6082 /* Pods_GeekPark.framework */; 662 | productType = "com.apple.product-type.framework"; 663 | }; 664 | /* End PBXNativeTarget section */ 665 | 666 | /* Begin PBXProject section */ 667 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 668 | isa = PBXProject; 669 | attributes = { 670 | LastSwiftUpdateCheck = 1100; 671 | LastUpgradeCheck = 1100; 672 | }; 673 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 674 | compatibilityVersion = "Xcode 3.2"; 675 | developmentRegion = en; 676 | hasScannedForEncodings = 0; 677 | knownRegions = ( 678 | en, 679 | Base, 680 | ); 681 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 682 | productRefGroup = 451127929649A1852741DB34362FAEC5 /* Products */; 683 | projectDirPath = ""; 684 | projectRoot = ""; 685 | targets = ( 686 | EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */, 687 | E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */, 688 | F62DDEE121DA42D879AA349CEEEBC93E /* Pods-GeekPark */, 689 | D118A6A04828FD3CDA8640CD2B6796D2 /* SwiftyJSON */, 690 | ); 691 | }; 692 | /* End PBXProject section */ 693 | 694 | /* Begin PBXResourcesBuildPhase section */ 695 | 0EFD31B4F828C3D3F2A6DB84D6F93D6A /* Resources */ = { 696 | isa = PBXResourcesBuildPhase; 697 | buildActionMask = 2147483647; 698 | files = ( 699 | ); 700 | runOnlyForDeploymentPostprocessing = 0; 701 | }; 702 | 9BCA7D105D531AE5DAF34FB86A2E623A /* Resources */ = { 703 | isa = PBXResourcesBuildPhase; 704 | buildActionMask = 2147483647; 705 | files = ( 706 | ); 707 | runOnlyForDeploymentPostprocessing = 0; 708 | }; 709 | AAC163231050CADCF935790EFF19FD02 /* Resources */ = { 710 | isa = PBXResourcesBuildPhase; 711 | buildActionMask = 2147483647; 712 | files = ( 713 | ); 714 | runOnlyForDeploymentPostprocessing = 0; 715 | }; 716 | D098F7F0080A87A1F472C81FC2F85528 /* Resources */ = { 717 | isa = PBXResourcesBuildPhase; 718 | buildActionMask = 2147483647; 719 | files = ( 720 | ); 721 | runOnlyForDeploymentPostprocessing = 0; 722 | }; 723 | /* End PBXResourcesBuildPhase section */ 724 | 725 | /* Begin PBXSourcesBuildPhase section */ 726 | 1700C451C98D9DCECBEDFC5E351C5A9E /* Sources */ = { 727 | isa = PBXSourcesBuildPhase; 728 | buildActionMask = 2147483647; 729 | files = ( 730 | 2BF6FBC0A64BF107C5D64C61F1397770 /* SwiftyJSON-dummy.m in Sources */, 731 | 7B4CE5C84161E2BFE477F42DFD634382 /* SwiftyJSON.swift in Sources */, 732 | ); 733 | runOnlyForDeploymentPostprocessing = 0; 734 | }; 735 | 26B24D5D7646E2EB56FDD17196467050 /* Sources */ = { 736 | isa = PBXSourcesBuildPhase; 737 | buildActionMask = 2147483647; 738 | files = ( 739 | 6007105B236BA7BEDCEE05C7D123B07E /* AnimatedImageView.swift in Sources */, 740 | 5674FCA42AD2006C1317B8A5993CCDFD /* AuthenticationChallengeResponsable.swift in Sources */, 741 | 74CF96D94F4C9388EA1A02F04A924FB9 /* AVAssetImageDataProvider.swift in Sources */, 742 | 0AED0C9F5057E4A6769E39C5B70A1D75 /* Box.swift in Sources */, 743 | 8D4DBE82E61A80299C526B0AFF4FD107 /* CacheSerializer.swift in Sources */, 744 | 0167C8014E2488B83A9F1FD66249D399 /* CallbackQueue.swift in Sources */, 745 | B36E07B0D326E1B9E83C2868BC30E313 /* Delegate.swift in Sources */, 746 | 98C78D31E7288D49FE55EE08E670AFA7 /* DiskStorage.swift in Sources */, 747 | 94DD6422B1C38180EF762668BDD80C1A /* ExtensionHelpers.swift in Sources */, 748 | C20E3A534598709617D33774E0524CAF /* Filter.swift in Sources */, 749 | 049A63D94BC0E530FF440A23B3689649 /* FormatIndicatedCacheSerializer.swift in Sources */, 750 | D7D668C8E8467384227D2F78AA925220 /* GIFAnimatedImage.swift in Sources */, 751 | 59D5E59A9D00987AE776255C0759C507 /* Image.swift in Sources */, 752 | FAA16B6785F3FA87658C77202922CD1D /* ImageBinder.swift in Sources */, 753 | 63BF03E6F0AB27AE4D0C6D0850EC7556 /* ImageCache.swift in Sources */, 754 | 53503D72BBAF11C3000699557A1CE7E9 /* ImageDataProcessor.swift in Sources */, 755 | 847D63F8ABA6B9C466B27DC92C745502 /* ImageDataProvider.swift in Sources */, 756 | 818C9DFFAEFA9FF9099EEF7296189A03 /* ImageDownloader.swift in Sources */, 757 | 23249A35AC667260392A056D3375ECFA /* ImageDownloaderDelegate.swift in Sources */, 758 | 453B1D6CBC4121C35496C31822FDA21C /* ImageDrawing.swift in Sources */, 759 | 50DB394FACBAB9A3C3E2564755863017 /* ImageFormat.swift in Sources */, 760 | 99EEF59393B0D096BC2B00AF6AE92D37 /* ImageModifier.swift in Sources */, 761 | 37F604F7FB515AB9A39AFB44D151C17A /* ImagePrefetcher.swift in Sources */, 762 | 03601FE8DD8E68F3D64BB8E7C8372099 /* ImageProcessor.swift in Sources */, 763 | E1C12AC2798EF84CA1E03E63DEBCB51B /* ImageProgressive.swift in Sources */, 764 | 10B70622D83EECA653F66E825FDDCC35 /* ImageTransition.swift in Sources */, 765 | 5CEDBE035FD33D7EF1A7E6940BE8FC07 /* ImageView+Kingfisher.swift in Sources */, 766 | D0264D77EB7762752352B6FEBCDE7FD3 /* Indicator.swift in Sources */, 767 | D0C7718D27835BFEC296D3B05D7748A5 /* KF.swift in Sources */, 768 | C693E10B4FB6293FE9762254DD99B31E /* KFImage.swift in Sources */, 769 | 2DF2FA14AA5C4257B59F3BE85A46E58C /* KFImageOptions.swift in Sources */, 770 | FB9DC4EAA99AFE08B4744D70EF9379EB /* KFOptionsSetter.swift in Sources */, 771 | B8BFC7F433641ABD2AA61264E66C6F24 /* Kingfisher-dummy.m in Sources */, 772 | C6412BD3494708FF9F948ECE5CE7A2E1 /* Kingfisher.swift in Sources */, 773 | 1DDFB0536C2BDCEE5A3446D95B1A50FA /* KingfisherError.swift in Sources */, 774 | 031CA4456BCA8423DDDF1E0B8F1E3176 /* KingfisherManager.swift in Sources */, 775 | B0BA2279FC0FDA3F2211AADB31E7B7F5 /* KingfisherOptionsInfo.swift in Sources */, 776 | 4C86DED25F5BA43AD08F8075D4C439E0 /* MemoryStorage.swift in Sources */, 777 | 421FCFB7ED11E370A145226ABF1B6C54 /* NSButton+Kingfisher.swift in Sources */, 778 | 2FD28CBD32D86FAD689D4279639DB9A9 /* NSTextAttachment+Kingfisher.swift in Sources */, 779 | C667DC6BB83C05C146908E6DF56D771C /* Placeholder.swift in Sources */, 780 | 99671A0F3D6AF135D305284731A594BB /* RedirectHandler.swift in Sources */, 781 | B17EB685290C5AE0832DEEE48AC1AE49 /* RequestModifier.swift in Sources */, 782 | 06F4CE9E4328FB3D26839CFB41C38B5C /* Resource.swift in Sources */, 783 | 831D803491D1A9131B3204B29CC4BC8A /* Result.swift in Sources */, 784 | A01B208EB6C223564DF09799933E463B /* RetryStrategy.swift in Sources */, 785 | 8B0E48E01C53D243F23AB1DA47B62E24 /* Runtime.swift in Sources */, 786 | E43360AE019883A148FF1CA5AB1F79CF /* SessionDataTask.swift in Sources */, 787 | 923D73A0EF1E8C7E6CBA320703A711B7 /* SessionDelegate.swift in Sources */, 788 | 2AB39E2673F7A94F72BD84CD093E318E /* SizeExtensions.swift in Sources */, 789 | 81664B7EB0A191C769C2911FAE80EABB /* Source.swift in Sources */, 790 | F1435F4D19772B0839478794E4343DEF /* Storage.swift in Sources */, 791 | 1902064537BA2FA45ABAC2D4DAD09A3D /* String+MD5.swift in Sources */, 792 | 9B2FC14D2BA23D8681BE88BE7A699E06 /* TVMonogramView+Kingfisher.swift in Sources */, 793 | 93C5E506150CBB77C67BD528AE63B128 /* UIButton+Kingfisher.swift in Sources */, 794 | 217DAFD6CFD94567B14D461AA32F942E /* WKInterfaceImage+Kingfisher.swift in Sources */, 795 | ); 796 | runOnlyForDeploymentPostprocessing = 0; 797 | }; 798 | 2C8326877F6A9617C2FBE9BD15D95B59 /* Sources */ = { 799 | isa = PBXSourcesBuildPhase; 800 | buildActionMask = 2147483647; 801 | files = ( 802 | 1208E81DA8B532D0646D627B50290EB6 /* AFError.swift in Sources */, 803 | C6D5A4B4028B2C43380C9FA58BD5C8CA /* Alamofire-dummy.m in Sources */, 804 | C1F1DB6A9CBDE584D09BA1613AAD4F9D /* Alamofire.swift in Sources */, 805 | 72EC2712926E6D28B52360D9AC41668F /* AlamofireExtended.swift in Sources */, 806 | DC627AFC5B585686898B014184AFCABD /* AuthenticationInterceptor.swift in Sources */, 807 | ABA85887A41495358C83CE3F3030EDEA /* CachedResponseHandler.swift in Sources */, 808 | 0A1849775CF90D514963187D3A771CF8 /* Combine.swift in Sources */, 809 | 27E59A11A2743B0595CDE3A08675EAE1 /* DispatchQueue+Alamofire.swift in Sources */, 810 | 6546D728B69398F93B506845141EBD61 /* EventMonitor.swift in Sources */, 811 | 91B837CE0DCD8EDB300FCDFFA1279162 /* HTTPHeaders.swift in Sources */, 812 | 013BAC24F7AC722E59517CB110A9E685 /* HTTPMethod.swift in Sources */, 813 | 45B8CC1C61E7A0BB28CFA8CE7C12FEBC /* MultipartFormData.swift in Sources */, 814 | D03F1F02DE8606E6057D57866611BEBF /* MultipartUpload.swift in Sources */, 815 | 19D605A3233499828FB6B790869F3E9C /* NetworkReachabilityManager.swift in Sources */, 816 | 8AA937910F87915DE700CAB6C868689E /* Notifications.swift in Sources */, 817 | 0A900DF17E3B64F08AF673E9A0DDD697 /* OperationQueue+Alamofire.swift in Sources */, 818 | 4AEC050FA7D5ED52FDA9DF50EA3560DF /* ParameterEncoder.swift in Sources */, 819 | D14066FAE94E304798E43651E5886D13 /* ParameterEncoding.swift in Sources */, 820 | 218C14EAE5AA31C30314AE0289B732A0 /* Protected.swift in Sources */, 821 | 666EC5C8356E6D4448A2FE7BEE77AD88 /* RedirectHandler.swift in Sources */, 822 | EDC93BD7B9262119AE145E4C7A9D0212 /* Request.swift in Sources */, 823 | 6E54F64E8DA73F4B0B46C216F9F93F63 /* RequestInterceptor.swift in Sources */, 824 | 6C08F6A77889651626583100F560153D /* RequestTaskMap.swift in Sources */, 825 | C1C5B050B55C15103ABC81769551A283 /* Response.swift in Sources */, 826 | 911448B2EDA2FF880108F77642797A88 /* ResponseSerialization.swift in Sources */, 827 | 66B26C6CAE737EC21F4BA1F1851B69C5 /* Result+Alamofire.swift in Sources */, 828 | 9FED70D1E1FBFB80E974E999EF732258 /* RetryPolicy.swift in Sources */, 829 | 47FDBBBD2704901588C3A7C56BBC502D /* ServerTrustEvaluation.swift in Sources */, 830 | 6AE407A4FB6C3D6ADD862CC6E3067A17 /* Session.swift in Sources */, 831 | 381FF05F8B4F611EE9C2FDBE4457BB89 /* SessionDelegate.swift in Sources */, 832 | 212EDC48B68107BEA9247F3464CE696E /* StringEncoding+Alamofire.swift in Sources */, 833 | 9B1D8A7798D8A6F518FC9AF9725431D0 /* URLConvertible+URLRequestConvertible.swift in Sources */, 834 | D31FC7FDD450C4CDD633ECBAD27C6221 /* URLEncodedFormEncoder.swift in Sources */, 835 | D5EAAFB6FAD77A8F0699345149BA3CBB /* URLRequest+Alamofire.swift in Sources */, 836 | F70EF854395CDE981A8336E4FF0310FE /* URLSessionConfiguration+Alamofire.swift in Sources */, 837 | F0F3224FF592F9BA2A044A2FC2BD4CCD /* Validation.swift in Sources */, 838 | ); 839 | runOnlyForDeploymentPostprocessing = 0; 840 | }; 841 | 74BD8DE3DB35B5B5802E48D6C5F555CE /* Sources */ = { 842 | isa = PBXSourcesBuildPhase; 843 | buildActionMask = 2147483647; 844 | files = ( 845 | F7616C3642A0687F26B6830854FD3A0C /* Pods-GeekPark-dummy.m in Sources */, 846 | ); 847 | runOnlyForDeploymentPostprocessing = 0; 848 | }; 849 | /* End PBXSourcesBuildPhase section */ 850 | 851 | /* Begin PBXTargetDependency section */ 852 | 7984E4219FE0250C653D272F875835E2 /* PBXTargetDependency */ = { 853 | isa = PBXTargetDependency; 854 | name = SwiftyJSON; 855 | target = D118A6A04828FD3CDA8640CD2B6796D2 /* SwiftyJSON */; 856 | targetProxy = 4D04A8BF4CC416E1819CC6B7BE47F9B5 /* PBXContainerItemProxy */; 857 | }; 858 | 8274AA8FEFF04824C4D8117B4185E27F /* PBXTargetDependency */ = { 859 | isa = PBXTargetDependency; 860 | name = Kingfisher; 861 | target = E8022D22FAA6690B5E1C379C1BCE1491 /* Kingfisher */; 862 | targetProxy = 93E0330F76B418F1BCEFBCA5256353AD /* PBXContainerItemProxy */; 863 | }; 864 | B8D59F888D3BDF4EED69109E52C2BAD3 /* PBXTargetDependency */ = { 865 | isa = PBXTargetDependency; 866 | name = Alamofire; 867 | target = EAAA1AD3A8A1B59AB91319EE40752C6D /* Alamofire */; 868 | targetProxy = 300239114D6EDB4C7FDDE76C9FC07B65 /* PBXContainerItemProxy */; 869 | }; 870 | /* End PBXTargetDependency section */ 871 | 872 | /* Begin XCBuildConfiguration section */ 873 | 1358DB0A6D5E4D7C72EE13C1BD65838D /* Debug */ = { 874 | isa = XCBuildConfiguration; 875 | baseConfigurationReference = E9D008DDFDE9265FAD4E4F3A988C347F /* SwiftyJSON.debug.xcconfig */; 876 | buildSettings = { 877 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 878 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 879 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 880 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 881 | COMBINE_HIDPI_IMAGES = YES; 882 | CURRENT_PROJECT_VERSION = 1; 883 | DEFINES_MODULE = YES; 884 | DYLIB_COMPATIBILITY_VERSION = 1; 885 | DYLIB_CURRENT_VERSION = 1; 886 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 887 | GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch"; 888 | INFOPLIST_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON-Info.plist"; 889 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 890 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 891 | MACOSX_DEPLOYMENT_TARGET = 10.9; 892 | MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; 893 | PRODUCT_MODULE_NAME = SwiftyJSON; 894 | PRODUCT_NAME = SwiftyJSON; 895 | SDKROOT = macosx; 896 | SKIP_INSTALL = YES; 897 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 898 | SWIFT_VERSION = 5.0; 899 | VERSIONING_SYSTEM = "apple-generic"; 900 | VERSION_INFO_PREFIX = ""; 901 | }; 902 | name = Debug; 903 | }; 904 | 5E5046922B2BADEB6AE175DCA2A5C450 /* Debug */ = { 905 | isa = XCBuildConfiguration; 906 | buildSettings = { 907 | ALWAYS_SEARCH_USER_PATHS = NO; 908 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 909 | CLANG_ANALYZER_NONNULL = YES; 910 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 911 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 912 | CLANG_CXX_LIBRARY = "libc++"; 913 | CLANG_ENABLE_MODULES = YES; 914 | CLANG_ENABLE_OBJC_ARC = YES; 915 | CLANG_ENABLE_OBJC_WEAK = YES; 916 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 917 | CLANG_WARN_BOOL_CONVERSION = YES; 918 | CLANG_WARN_COMMA = YES; 919 | CLANG_WARN_CONSTANT_CONVERSION = YES; 920 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 921 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 922 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 923 | CLANG_WARN_EMPTY_BODY = YES; 924 | CLANG_WARN_ENUM_CONVERSION = YES; 925 | CLANG_WARN_INFINITE_RECURSION = YES; 926 | CLANG_WARN_INT_CONVERSION = YES; 927 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 928 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 929 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 930 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 931 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 932 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 933 | CLANG_WARN_STRICT_PROTOTYPES = YES; 934 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 935 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 936 | CLANG_WARN_UNREACHABLE_CODE = YES; 937 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 938 | COPY_PHASE_STRIP = NO; 939 | DEBUG_INFORMATION_FORMAT = dwarf; 940 | ENABLE_STRICT_OBJC_MSGSEND = YES; 941 | ENABLE_TESTABILITY = YES; 942 | GCC_C_LANGUAGE_STANDARD = gnu11; 943 | GCC_DYNAMIC_NO_PIC = NO; 944 | GCC_NO_COMMON_BLOCKS = YES; 945 | GCC_OPTIMIZATION_LEVEL = 0; 946 | GCC_PREPROCESSOR_DEFINITIONS = ( 947 | "POD_CONFIGURATION_DEBUG=1", 948 | "DEBUG=1", 949 | "$(inherited)", 950 | ); 951 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 952 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 953 | GCC_WARN_UNDECLARED_SELECTOR = YES; 954 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 955 | GCC_WARN_UNUSED_FUNCTION = YES; 956 | GCC_WARN_UNUSED_VARIABLE = YES; 957 | MACOSX_DEPLOYMENT_TARGET = 10.12; 958 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 959 | MTL_FAST_MATH = YES; 960 | ONLY_ACTIVE_ARCH = YES; 961 | PRODUCT_NAME = "$(TARGET_NAME)"; 962 | STRIP_INSTALLED_PRODUCT = NO; 963 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 964 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 965 | SWIFT_VERSION = 5.0; 966 | SYMROOT = "${SRCROOT}/../build"; 967 | }; 968 | name = Debug; 969 | }; 970 | 8F694BB186184267497C5B29EBD5F103 /* Debug */ = { 971 | isa = XCBuildConfiguration; 972 | baseConfigurationReference = 07EF80C8F5F53727D99A6BE48CF30E30 /* Alamofire.debug.xcconfig */; 973 | buildSettings = { 974 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 975 | CLANG_ENABLE_OBJC_WEAK = NO; 976 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 977 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 978 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 979 | COMBINE_HIDPI_IMAGES = YES; 980 | CURRENT_PROJECT_VERSION = 1; 981 | DEFINES_MODULE = YES; 982 | DYLIB_COMPATIBILITY_VERSION = 1; 983 | DYLIB_CURRENT_VERSION = 1; 984 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 985 | GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; 986 | INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; 987 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 988 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 989 | MACOSX_DEPLOYMENT_TARGET = 10.12; 990 | MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; 991 | PRODUCT_MODULE_NAME = Alamofire; 992 | PRODUCT_NAME = Alamofire; 993 | SDKROOT = macosx; 994 | SKIP_INSTALL = YES; 995 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 996 | SWIFT_VERSION = 5.3; 997 | VERSIONING_SYSTEM = "apple-generic"; 998 | VERSION_INFO_PREFIX = ""; 999 | }; 1000 | name = Debug; 1001 | }; 1002 | A61D94987CB6A9306C5FCC7FF81222CE /* Release */ = { 1003 | isa = XCBuildConfiguration; 1004 | baseConfigurationReference = 9E316532161A42B5EA08A2CAD2B2D258 /* SwiftyJSON.release.xcconfig */; 1005 | buildSettings = { 1006 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 1007 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 1008 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 1009 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 1010 | COMBINE_HIDPI_IMAGES = YES; 1011 | CURRENT_PROJECT_VERSION = 1; 1012 | DEFINES_MODULE = YES; 1013 | DYLIB_COMPATIBILITY_VERSION = 1; 1014 | DYLIB_CURRENT_VERSION = 1; 1015 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1016 | GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch"; 1017 | INFOPLIST_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON-Info.plist"; 1018 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1019 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 1020 | MACOSX_DEPLOYMENT_TARGET = 10.9; 1021 | MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; 1022 | PRODUCT_MODULE_NAME = SwiftyJSON; 1023 | PRODUCT_NAME = SwiftyJSON; 1024 | SDKROOT = macosx; 1025 | SKIP_INSTALL = YES; 1026 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 1027 | SWIFT_VERSION = 5.0; 1028 | VERSIONING_SYSTEM = "apple-generic"; 1029 | VERSION_INFO_PREFIX = ""; 1030 | }; 1031 | name = Release; 1032 | }; 1033 | C1DF7B2747CE0E0D94C071F0C5E243BD /* Release */ = { 1034 | isa = XCBuildConfiguration; 1035 | baseConfigurationReference = 850AB4EC1590A9917BABF355C40151EF /* Pods-GeekPark.release.xcconfig */; 1036 | buildSettings = { 1037 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 1038 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 1039 | CLANG_ENABLE_OBJC_WEAK = NO; 1040 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 1041 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 1042 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 1043 | COMBINE_HIDPI_IMAGES = YES; 1044 | CURRENT_PROJECT_VERSION = 1; 1045 | DEFINES_MODULE = YES; 1046 | DYLIB_COMPATIBILITY_VERSION = 1; 1047 | DYLIB_CURRENT_VERSION = 1; 1048 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1049 | INFOPLIST_FILE = "Target Support Files/Pods-GeekPark/Pods-GeekPark-Info.plist"; 1050 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1051 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 1052 | MACH_O_TYPE = staticlib; 1053 | MACOSX_DEPLOYMENT_TARGET = 10.12; 1054 | MODULEMAP_FILE = "Target Support Files/Pods-GeekPark/Pods-GeekPark.modulemap"; 1055 | OTHER_LDFLAGS = ""; 1056 | OTHER_LIBTOOLFLAGS = ""; 1057 | PODS_ROOT = "$(SRCROOT)"; 1058 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 1059 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 1060 | SDKROOT = macosx; 1061 | SKIP_INSTALL = YES; 1062 | VERSIONING_SYSTEM = "apple-generic"; 1063 | VERSION_INFO_PREFIX = ""; 1064 | }; 1065 | name = Release; 1066 | }; 1067 | C8A57F164542C391E6547546312109C3 /* Release */ = { 1068 | isa = XCBuildConfiguration; 1069 | baseConfigurationReference = EEB4490B92B20392A9F14003BA778928 /* Kingfisher.release.xcconfig */; 1070 | buildSettings = { 1071 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 1072 | CLANG_ENABLE_OBJC_WEAK = NO; 1073 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 1074 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 1075 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 1076 | COMBINE_HIDPI_IMAGES = YES; 1077 | CURRENT_PROJECT_VERSION = 1; 1078 | DEFINES_MODULE = YES; 1079 | DYLIB_COMPATIBILITY_VERSION = 1; 1080 | DYLIB_CURRENT_VERSION = 1; 1081 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1082 | GCC_PREFIX_HEADER = "Target Support Files/Kingfisher/Kingfisher-prefix.pch"; 1083 | INFOPLIST_FILE = "Target Support Files/Kingfisher/Kingfisher-Info.plist"; 1084 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1085 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 1086 | MACOSX_DEPLOYMENT_TARGET = 10.12; 1087 | MODULEMAP_FILE = "Target Support Files/Kingfisher/Kingfisher.modulemap"; 1088 | PRODUCT_MODULE_NAME = Kingfisher; 1089 | PRODUCT_NAME = Kingfisher; 1090 | SDKROOT = macosx; 1091 | SKIP_INSTALL = YES; 1092 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 1093 | SWIFT_VERSION = 5.0; 1094 | VERSIONING_SYSTEM = "apple-generic"; 1095 | VERSION_INFO_PREFIX = ""; 1096 | }; 1097 | name = Release; 1098 | }; 1099 | D256BAA9A69C64A728E66C27D53FDD4B /* Release */ = { 1100 | isa = XCBuildConfiguration; 1101 | buildSettings = { 1102 | ALWAYS_SEARCH_USER_PATHS = NO; 1103 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 1104 | CLANG_ANALYZER_NONNULL = YES; 1105 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1106 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1107 | CLANG_CXX_LIBRARY = "libc++"; 1108 | CLANG_ENABLE_MODULES = YES; 1109 | CLANG_ENABLE_OBJC_ARC = YES; 1110 | CLANG_ENABLE_OBJC_WEAK = YES; 1111 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1112 | CLANG_WARN_BOOL_CONVERSION = YES; 1113 | CLANG_WARN_COMMA = YES; 1114 | CLANG_WARN_CONSTANT_CONVERSION = YES; 1115 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1116 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1117 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1118 | CLANG_WARN_EMPTY_BODY = YES; 1119 | CLANG_WARN_ENUM_CONVERSION = YES; 1120 | CLANG_WARN_INFINITE_RECURSION = YES; 1121 | CLANG_WARN_INT_CONVERSION = YES; 1122 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1123 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1124 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1125 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1126 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 1127 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1128 | CLANG_WARN_STRICT_PROTOTYPES = YES; 1129 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 1130 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1131 | CLANG_WARN_UNREACHABLE_CODE = YES; 1132 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1133 | COPY_PHASE_STRIP = NO; 1134 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1135 | ENABLE_NS_ASSERTIONS = NO; 1136 | ENABLE_STRICT_OBJC_MSGSEND = YES; 1137 | GCC_C_LANGUAGE_STANDARD = gnu11; 1138 | GCC_NO_COMMON_BLOCKS = YES; 1139 | GCC_PREPROCESSOR_DEFINITIONS = ( 1140 | "POD_CONFIGURATION_RELEASE=1", 1141 | "$(inherited)", 1142 | ); 1143 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1144 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1145 | GCC_WARN_UNDECLARED_SELECTOR = YES; 1146 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1147 | GCC_WARN_UNUSED_FUNCTION = YES; 1148 | GCC_WARN_UNUSED_VARIABLE = YES; 1149 | MACOSX_DEPLOYMENT_TARGET = 10.12; 1150 | MTL_ENABLE_DEBUG_INFO = NO; 1151 | MTL_FAST_MATH = YES; 1152 | PRODUCT_NAME = "$(TARGET_NAME)"; 1153 | STRIP_INSTALLED_PRODUCT = NO; 1154 | SWIFT_COMPILATION_MODE = wholemodule; 1155 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 1156 | SWIFT_VERSION = 5.0; 1157 | SYMROOT = "${SRCROOT}/../build"; 1158 | }; 1159 | name = Release; 1160 | }; 1161 | DDA9EC41D966236C68CB4AB50CCF2287 /* Release */ = { 1162 | isa = XCBuildConfiguration; 1163 | baseConfigurationReference = 35BC877FD72E33B0D941763BE6EBBB79 /* Alamofire.release.xcconfig */; 1164 | buildSettings = { 1165 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 1166 | CLANG_ENABLE_OBJC_WEAK = NO; 1167 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 1168 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 1169 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 1170 | COMBINE_HIDPI_IMAGES = YES; 1171 | CURRENT_PROJECT_VERSION = 1; 1172 | DEFINES_MODULE = YES; 1173 | DYLIB_COMPATIBILITY_VERSION = 1; 1174 | DYLIB_CURRENT_VERSION = 1; 1175 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1176 | GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; 1177 | INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; 1178 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1179 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 1180 | MACOSX_DEPLOYMENT_TARGET = 10.12; 1181 | MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; 1182 | PRODUCT_MODULE_NAME = Alamofire; 1183 | PRODUCT_NAME = Alamofire; 1184 | SDKROOT = macosx; 1185 | SKIP_INSTALL = YES; 1186 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 1187 | SWIFT_VERSION = 5.3; 1188 | VERSIONING_SYSTEM = "apple-generic"; 1189 | VERSION_INFO_PREFIX = ""; 1190 | }; 1191 | name = Release; 1192 | }; 1193 | E209CFE5376E337A1D709F2D2030D685 /* Debug */ = { 1194 | isa = XCBuildConfiguration; 1195 | baseConfigurationReference = E4BBBB04183C97FC2F644862EEA8BC46 /* Pods-GeekPark.debug.xcconfig */; 1196 | buildSettings = { 1197 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 1198 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 1199 | CLANG_ENABLE_OBJC_WEAK = NO; 1200 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 1201 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 1202 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 1203 | COMBINE_HIDPI_IMAGES = YES; 1204 | CURRENT_PROJECT_VERSION = 1; 1205 | DEFINES_MODULE = YES; 1206 | DYLIB_COMPATIBILITY_VERSION = 1; 1207 | DYLIB_CURRENT_VERSION = 1; 1208 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1209 | INFOPLIST_FILE = "Target Support Files/Pods-GeekPark/Pods-GeekPark-Info.plist"; 1210 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1211 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 1212 | MACH_O_TYPE = staticlib; 1213 | MACOSX_DEPLOYMENT_TARGET = 10.12; 1214 | MODULEMAP_FILE = "Target Support Files/Pods-GeekPark/Pods-GeekPark.modulemap"; 1215 | OTHER_LDFLAGS = ""; 1216 | OTHER_LIBTOOLFLAGS = ""; 1217 | PODS_ROOT = "$(SRCROOT)"; 1218 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 1219 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 1220 | SDKROOT = macosx; 1221 | SKIP_INSTALL = YES; 1222 | VERSIONING_SYSTEM = "apple-generic"; 1223 | VERSION_INFO_PREFIX = ""; 1224 | }; 1225 | name = Debug; 1226 | }; 1227 | F3F0956EB8E0F5C8FA85C688BA99FE18 /* Debug */ = { 1228 | isa = XCBuildConfiguration; 1229 | baseConfigurationReference = E2145B91D05CE84ABA4D0470C7D9066B /* Kingfisher.debug.xcconfig */; 1230 | buildSettings = { 1231 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 1232 | CLANG_ENABLE_OBJC_WEAK = NO; 1233 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 1234 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 1235 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 1236 | COMBINE_HIDPI_IMAGES = YES; 1237 | CURRENT_PROJECT_VERSION = 1; 1238 | DEFINES_MODULE = YES; 1239 | DYLIB_COMPATIBILITY_VERSION = 1; 1240 | DYLIB_CURRENT_VERSION = 1; 1241 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 1242 | GCC_PREFIX_HEADER = "Target Support Files/Kingfisher/Kingfisher-prefix.pch"; 1243 | INFOPLIST_FILE = "Target Support Files/Kingfisher/Kingfisher-Info.plist"; 1244 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 1245 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 1246 | MACOSX_DEPLOYMENT_TARGET = 10.12; 1247 | MODULEMAP_FILE = "Target Support Files/Kingfisher/Kingfisher.modulemap"; 1248 | PRODUCT_MODULE_NAME = Kingfisher; 1249 | PRODUCT_NAME = Kingfisher; 1250 | SDKROOT = macosx; 1251 | SKIP_INSTALL = YES; 1252 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 1253 | SWIFT_VERSION = 5.0; 1254 | VERSIONING_SYSTEM = "apple-generic"; 1255 | VERSION_INFO_PREFIX = ""; 1256 | }; 1257 | name = Debug; 1258 | }; 1259 | /* End XCBuildConfiguration section */ 1260 | 1261 | /* Begin XCConfigurationList section */ 1262 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 1263 | isa = XCConfigurationList; 1264 | buildConfigurations = ( 1265 | 5E5046922B2BADEB6AE175DCA2A5C450 /* Debug */, 1266 | D256BAA9A69C64A728E66C27D53FDD4B /* Release */, 1267 | ); 1268 | defaultConfigurationIsVisible = 0; 1269 | defaultConfigurationName = Release; 1270 | }; 1271 | 62468BF9C7EDA172E951A24083C3ECA7 /* Build configuration list for PBXNativeTarget "SwiftyJSON" */ = { 1272 | isa = XCConfigurationList; 1273 | buildConfigurations = ( 1274 | 1358DB0A6D5E4D7C72EE13C1BD65838D /* Debug */, 1275 | A61D94987CB6A9306C5FCC7FF81222CE /* Release */, 1276 | ); 1277 | defaultConfigurationIsVisible = 0; 1278 | defaultConfigurationName = Release; 1279 | }; 1280 | 632C3FA67581BFD4D8AD5EA50EF27810 /* Build configuration list for PBXNativeTarget "Kingfisher" */ = { 1281 | isa = XCConfigurationList; 1282 | buildConfigurations = ( 1283 | F3F0956EB8E0F5C8FA85C688BA99FE18 /* Debug */, 1284 | C8A57F164542C391E6547546312109C3 /* Release */, 1285 | ); 1286 | defaultConfigurationIsVisible = 0; 1287 | defaultConfigurationName = Release; 1288 | }; 1289 | 78E219AC01CD5AFED663C9AB28280801 /* Build configuration list for PBXNativeTarget "Alamofire" */ = { 1290 | isa = XCConfigurationList; 1291 | buildConfigurations = ( 1292 | 8F694BB186184267497C5B29EBD5F103 /* Debug */, 1293 | DDA9EC41D966236C68CB4AB50CCF2287 /* Release */, 1294 | ); 1295 | defaultConfigurationIsVisible = 0; 1296 | defaultConfigurationName = Release; 1297 | }; 1298 | EC18FD67EAD32BC42B081A9049083A59 /* Build configuration list for PBXNativeTarget "Pods-GeekPark" */ = { 1299 | isa = XCConfigurationList; 1300 | buildConfigurations = ( 1301 | E209CFE5376E337A1D709F2D2030D685 /* Debug */, 1302 | C1DF7B2747CE0E0D94C071F0C5E243BD /* Release */, 1303 | ); 1304 | defaultConfigurationIsVisible = 0; 1305 | defaultConfigurationName = Release; 1306 | }; 1307 | /* End XCConfigurationList section */ 1308 | }; 1309 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 1310 | } 1311 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GeekPark-mac 2 | 3 | ## 简介 4 | 5 | 一个基于swift语言和Mac原生控件开发的极客公园第三方客户端。 6 | 7 | 8 | 9 | 10 | ## 编译和运行 11 | 12 | ### 编译环境 13 | 14 | v1.0版本: `macos10.12.5`/`Xcode7.3.1`/`Swift2.2` 15 | 16 | v2.0版本: `macos10.12.5`/`Xcode8.3.3`/`Swift3.1` 17 | 18 | ### 运行 19 | 20 | git clone https://github.com/tzshlyt/GeekPark-mac 21 | cd GeekPark 22 | pod install 23 | open GeekPark.xcworkspace 24 | 25 | ## License 26 | 27 | MIT 28 | -------------------------------------------------------------------------------- /resources/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tzshlyt/GeekPark-mac/703aad9a25d09fbc679bf636c7d316b5ff9fb44d/resources/screenshot.png --------------------------------------------------------------------------------