├── Podfile ├── Podfile.lock ├── Pods ├── Headers │ ├── Private │ │ └── WGMapCommonView │ │ │ └── WGMapCommonView.h │ └── Public │ │ └── WGMapCommonView │ │ └── WGMapCommonView.h ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── Target Support Files │ ├── Pods-WGMap │ │ ├── Pods-WGMap-acknowledgements.markdown │ │ ├── Pods-WGMap-acknowledgements.plist │ │ ├── Pods-WGMap-dummy.m │ │ ├── Pods-WGMap-frameworks.sh │ │ ├── Pods-WGMap-resources.sh │ │ ├── Pods-WGMap.debug.xcconfig │ │ └── Pods-WGMap.release.xcconfig │ └── WGMapCommonView │ │ ├── WGMapCommonView-dummy.m │ │ ├── WGMapCommonView-prefix.pch │ │ └── WGMapCommonView.xcconfig └── WGMapCommonView │ └── WGMap │ └── MapTools │ ├── WGMapCommonView.h │ └── WGMapCommonView.m ├── README.md ├── WGMap.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── WGMap.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── WGMap ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ └── LaunchScreen.storyboard ├── China │ ├── ChinaMapPaths.plist │ ├── WGChinaMapViewController.h │ ├── WGChinaMapViewController.m │ └── provinceInfo.plist ├── GuangDong │ ├── WGGuangDongViewController.h │ ├── WGGuangDongViewController.m │ ├── guangDongInfo.plist │ └── guangDongPath.plist ├── Info.plist ├── NeiMengGu │ ├── WGNeiMGViewController.h │ ├── WGNeiMGViewController.m │ ├── neimengguInfo.plist │ └── neimengguPath.plist ├── SVG │ ├── china.svg │ ├── guangdong.svg │ └── neimenggu.svg ├── ViewController.h ├── ViewController.m ├── demo.gif ├── main.m └── 中国各省份绘制SVG地图数据 ├── WGMapCommonView.podspec ├── WGMapTests ├── Info.plist └── WGMapTests.m └── WGMapUITests ├── Info.plist └── WGMapUITests.m /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '9.0' 2 | 3 | target 'WGMap' do 4 | 5 | pod 'WGMapCommonView‘ 6 | 7 | end 8 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - WGMapCommonView (1.0.1) 3 | 4 | DEPENDENCIES: 5 | - WGMapCommonView 6 | 7 | SPEC REPOS: 8 | https://github.com/cocoapods/specs.git: 9 | - WGMapCommonView 10 | 11 | SPEC CHECKSUMS: 12 | WGMapCommonView: 1399ebe080760f0d032574d92f2082c4e82ef7cd 13 | 14 | PODFILE CHECKSUM: e6db323e593c5c2b855b0e70be2d92dd5ac6d918 15 | 16 | COCOAPODS: 1.5.3 17 | -------------------------------------------------------------------------------- /Pods/Headers/Private/WGMapCommonView/WGMapCommonView.h: -------------------------------------------------------------------------------- 1 | ../../../WGMapCommonView/WGMap/MapTools/WGMapCommonView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/WGMapCommonView/WGMapCommonView.h: -------------------------------------------------------------------------------- 1 | ../../../WGMapCommonView/WGMap/MapTools/WGMapCommonView.h -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - WGMapCommonView (1.0.1) 3 | 4 | DEPENDENCIES: 5 | - WGMapCommonView 6 | 7 | SPEC REPOS: 8 | https://github.com/cocoapods/specs.git: 9 | - WGMapCommonView 10 | 11 | SPEC CHECKSUMS: 12 | WGMapCommonView: 1399ebe080760f0d032574d92f2082c4e82ef7cd 13 | 14 | PODFILE CHECKSUM: e6db323e593c5c2b855b0e70be2d92dd5ac6d918 15 | 16 | COCOAPODS: 1.5.3 17 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 3279A9184A9CABCDD623B1283DC4BC05 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E538F0B835A53761AF5FF2D2D75573E8 /* UIKit.framework */; }; 11 | 8E4E8AE41216902E0300180E748DF509 /* Pods-WGMap-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AB1BB42137EC84675461F8CEDD153A9D /* Pods-WGMap-dummy.m */; }; 12 | CA37F109978D642E6B2BA9CFC6346A2C /* WGMapCommonView.h in Headers */ = {isa = PBXBuildFile; fileRef = EC83FF59F8C1493549F658B39F615F95 /* WGMapCommonView.h */; settings = {ATTRIBUTES = (Project, ); }; }; 13 | D6376584B9D2E7E3C0C0299E78A494FE /* WGMapCommonView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F91741FBF62C8D34353382FED294D0FC /* WGMapCommonView-dummy.m */; }; 14 | ECAC2C2F29C6EA0DF50FA0E63B6C9808 /* WGMapCommonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5219745DC9F1111F5417E26348A77B91 /* WGMapCommonView.m */; }; 15 | /* End PBXBuildFile section */ 16 | 17 | /* Begin PBXContainerItemProxy section */ 18 | 3A978B6C499F53417C3243474D906196 /* PBXContainerItemProxy */ = { 19 | isa = PBXContainerItemProxy; 20 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 21 | proxyType = 1; 22 | remoteGlobalIDString = BC7E0648179C85D9DCCC00207CDEDD7D; 23 | remoteInfo = WGMapCommonView; 24 | }; 25 | /* End PBXContainerItemProxy section */ 26 | 27 | /* Begin PBXFileReference section */ 28 | 020F0109AC0726980CF2255DD52BA5CD /* Pods-WGMap-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-WGMap-frameworks.sh"; sourceTree = ""; }; 29 | 0DC1F06341084B307D06DF44CE02D42F /* WGMapCommonView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = WGMapCommonView.xcconfig; sourceTree = ""; }; 30 | 21645673E925F9E53C733F97E0A1FA81 /* libPods-WGMap.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-WGMap.a"; path = "libPods-WGMap.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 31 | 5219745DC9F1111F5417E26348A77B91 /* WGMapCommonView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = WGMapCommonView.m; path = WGMap/MapTools/WGMapCommonView.m; sourceTree = ""; }; 32 | 57E4E5286D8C1542DC1FAC034B20AFD8 /* WGMapCommonView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "WGMapCommonView-prefix.pch"; sourceTree = ""; }; 33 | 590710AB646949C38EEC6CFA704E854B /* Pods-WGMap.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-WGMap.release.xcconfig"; sourceTree = ""; }; 34 | 5EFD0236935B17F196DF2A804723F0C7 /* Pods-WGMap-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-WGMap-resources.sh"; sourceTree = ""; }; 35 | 5F5FD063E856E383A330916F26A47515 /* Pods-WGMap-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-WGMap-acknowledgements.plist"; sourceTree = ""; }; 36 | 7047F3FA1B08F24CC3B9C92BAF5252AB /* libWGMapCommonView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libWGMapCommonView.a; path = libWGMapCommonView.a; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 8903A6DD2A3EC2218377F63C1D4E3860 /* Pods-WGMap.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-WGMap.debug.xcconfig"; sourceTree = ""; }; 38 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 39 | AB1BB42137EC84675461F8CEDD153A9D /* Pods-WGMap-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-WGMap-dummy.m"; sourceTree = ""; }; 40 | D815201BC6C2072BB770425AA64A951B /* Pods-WGMap-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-WGMap-acknowledgements.markdown"; sourceTree = ""; }; 41 | E538F0B835A53761AF5FF2D2D75573E8 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 42 | EC83FF59F8C1493549F658B39F615F95 /* WGMapCommonView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = WGMapCommonView.h; path = WGMap/MapTools/WGMapCommonView.h; sourceTree = ""; }; 43 | F91741FBF62C8D34353382FED294D0FC /* WGMapCommonView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "WGMapCommonView-dummy.m"; sourceTree = ""; }; 44 | /* End PBXFileReference section */ 45 | 46 | /* Begin PBXFrameworksBuildPhase section */ 47 | 2AEBA010AA53551CBAB96E9201030E18 /* Frameworks */ = { 48 | isa = PBXFrameworksBuildPhase; 49 | buildActionMask = 2147483647; 50 | files = ( 51 | ); 52 | runOnlyForDeploymentPostprocessing = 0; 53 | }; 54 | 8087F3F73411229DE8DA7AC5976AC396 /* Frameworks */ = { 55 | isa = PBXFrameworksBuildPhase; 56 | buildActionMask = 2147483647; 57 | files = ( 58 | 3279A9184A9CABCDD623B1283DC4BC05 /* UIKit.framework in Frameworks */, 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | /* End PBXFrameworksBuildPhase section */ 63 | 64 | /* Begin PBXGroup section */ 65 | 1B774B263B890E91C88B8107EE793055 /* Support Files */ = { 66 | isa = PBXGroup; 67 | children = ( 68 | 0DC1F06341084B307D06DF44CE02D42F /* WGMapCommonView.xcconfig */, 69 | F91741FBF62C8D34353382FED294D0FC /* WGMapCommonView-dummy.m */, 70 | 57E4E5286D8C1542DC1FAC034B20AFD8 /* WGMapCommonView-prefix.pch */, 71 | ); 72 | name = "Support Files"; 73 | path = "../Target Support Files/WGMapCommonView"; 74 | sourceTree = ""; 75 | }; 76 | 33BCC5DC8BF29AF1A3E11862217F02BA /* Pods-WGMap */ = { 77 | isa = PBXGroup; 78 | children = ( 79 | D815201BC6C2072BB770425AA64A951B /* Pods-WGMap-acknowledgements.markdown */, 80 | 5F5FD063E856E383A330916F26A47515 /* Pods-WGMap-acknowledgements.plist */, 81 | AB1BB42137EC84675461F8CEDD153A9D /* Pods-WGMap-dummy.m */, 82 | 020F0109AC0726980CF2255DD52BA5CD /* Pods-WGMap-frameworks.sh */, 83 | 5EFD0236935B17F196DF2A804723F0C7 /* Pods-WGMap-resources.sh */, 84 | 8903A6DD2A3EC2218377F63C1D4E3860 /* Pods-WGMap.debug.xcconfig */, 85 | 590710AB646949C38EEC6CFA704E854B /* Pods-WGMap.release.xcconfig */, 86 | ); 87 | name = "Pods-WGMap"; 88 | path = "Target Support Files/Pods-WGMap"; 89 | sourceTree = ""; 90 | }; 91 | 439617EAFCB50E7C1F770414D2834329 /* iOS */ = { 92 | isa = PBXGroup; 93 | children = ( 94 | E538F0B835A53761AF5FF2D2D75573E8 /* UIKit.framework */, 95 | ); 96 | name = iOS; 97 | sourceTree = ""; 98 | }; 99 | 55C9E9BE0B66268631883099A4EC6C5E /* Pods */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | E5E6088647D080412445C9744A01B646 /* WGMapCommonView */, 103 | ); 104 | name = Pods; 105 | sourceTree = ""; 106 | }; 107 | 7DB346D0F39D3F0E887471402A8071AB = { 108 | isa = PBXGroup; 109 | children = ( 110 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 111 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 112 | 55C9E9BE0B66268631883099A4EC6C5E /* Pods */, 113 | EEA2B5C8CF7CFA8EA0BFBC8AA9917B06 /* Products */, 114 | F8A6A30EA5FCDB381933BAFE6F3D5EC4 /* Targets Support Files */, 115 | ); 116 | sourceTree = ""; 117 | }; 118 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | 439617EAFCB50E7C1F770414D2834329 /* iOS */, 122 | ); 123 | name = Frameworks; 124 | sourceTree = ""; 125 | }; 126 | E5E6088647D080412445C9744A01B646 /* WGMapCommonView */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | EC83FF59F8C1493549F658B39F615F95 /* WGMapCommonView.h */, 130 | 5219745DC9F1111F5417E26348A77B91 /* WGMapCommonView.m */, 131 | 1B774B263B890E91C88B8107EE793055 /* Support Files */, 132 | ); 133 | name = WGMapCommonView; 134 | path = WGMapCommonView; 135 | sourceTree = ""; 136 | }; 137 | EEA2B5C8CF7CFA8EA0BFBC8AA9917B06 /* Products */ = { 138 | isa = PBXGroup; 139 | children = ( 140 | 21645673E925F9E53C733F97E0A1FA81 /* libPods-WGMap.a */, 141 | 7047F3FA1B08F24CC3B9C92BAF5252AB /* libWGMapCommonView.a */, 142 | ); 143 | name = Products; 144 | sourceTree = ""; 145 | }; 146 | F8A6A30EA5FCDB381933BAFE6F3D5EC4 /* Targets Support Files */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | 33BCC5DC8BF29AF1A3E11862217F02BA /* Pods-WGMap */, 150 | ); 151 | name = "Targets Support Files"; 152 | sourceTree = ""; 153 | }; 154 | /* End PBXGroup section */ 155 | 156 | /* Begin PBXHeadersBuildPhase section */ 157 | 71968A3A8202A2754766B171EC551757 /* Headers */ = { 158 | isa = PBXHeadersBuildPhase; 159 | buildActionMask = 2147483647; 160 | files = ( 161 | CA37F109978D642E6B2BA9CFC6346A2C /* WGMapCommonView.h in Headers */, 162 | ); 163 | runOnlyForDeploymentPostprocessing = 0; 164 | }; 165 | F441DCB34D67C1243753A28558052582 /* Headers */ = { 166 | isa = PBXHeadersBuildPhase; 167 | buildActionMask = 2147483647; 168 | files = ( 169 | ); 170 | runOnlyForDeploymentPostprocessing = 0; 171 | }; 172 | /* End PBXHeadersBuildPhase section */ 173 | 174 | /* Begin PBXNativeTarget section */ 175 | 8BA4556FB7CA67FCB4FAC3AB61BA6445 /* Pods-WGMap */ = { 176 | isa = PBXNativeTarget; 177 | buildConfigurationList = 1706293D5F57F73642FE5F074520B459 /* Build configuration list for PBXNativeTarget "Pods-WGMap" */; 178 | buildPhases = ( 179 | F441DCB34D67C1243753A28558052582 /* Headers */, 180 | 318F15CD23E5B33CBCEEF7307713CDB8 /* Sources */, 181 | 2AEBA010AA53551CBAB96E9201030E18 /* Frameworks */, 182 | ); 183 | buildRules = ( 184 | ); 185 | dependencies = ( 186 | D4C49B1701F5639E87897F8750A50185 /* PBXTargetDependency */, 187 | ); 188 | name = "Pods-WGMap"; 189 | productName = "Pods-WGMap"; 190 | productReference = 21645673E925F9E53C733F97E0A1FA81 /* libPods-WGMap.a */; 191 | productType = "com.apple.product-type.library.static"; 192 | }; 193 | BC7E0648179C85D9DCCC00207CDEDD7D /* WGMapCommonView */ = { 194 | isa = PBXNativeTarget; 195 | buildConfigurationList = 1EAFF51F7FF1EC17EDEB7984D56062F7 /* Build configuration list for PBXNativeTarget "WGMapCommonView" */; 196 | buildPhases = ( 197 | 71968A3A8202A2754766B171EC551757 /* Headers */, 198 | FAD1AF0CECE63CBB888ED53590094DAA /* Sources */, 199 | 8087F3F73411229DE8DA7AC5976AC396 /* Frameworks */, 200 | ); 201 | buildRules = ( 202 | ); 203 | dependencies = ( 204 | ); 205 | name = WGMapCommonView; 206 | productName = WGMapCommonView; 207 | productReference = 7047F3FA1B08F24CC3B9C92BAF5252AB /* libWGMapCommonView.a */; 208 | productType = "com.apple.product-type.library.static"; 209 | }; 210 | /* End PBXNativeTarget section */ 211 | 212 | /* Begin PBXProject section */ 213 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 214 | isa = PBXProject; 215 | attributes = { 216 | LastSwiftUpdateCheck = 0930; 217 | LastUpgradeCheck = 0930; 218 | }; 219 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 220 | compatibilityVersion = "Xcode 3.2"; 221 | developmentRegion = English; 222 | hasScannedForEncodings = 0; 223 | knownRegions = ( 224 | en, 225 | ); 226 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 227 | productRefGroup = EEA2B5C8CF7CFA8EA0BFBC8AA9917B06 /* Products */; 228 | projectDirPath = ""; 229 | projectRoot = ""; 230 | targets = ( 231 | 8BA4556FB7CA67FCB4FAC3AB61BA6445 /* Pods-WGMap */, 232 | BC7E0648179C85D9DCCC00207CDEDD7D /* WGMapCommonView */, 233 | ); 234 | }; 235 | /* End PBXProject section */ 236 | 237 | /* Begin PBXSourcesBuildPhase section */ 238 | 318F15CD23E5B33CBCEEF7307713CDB8 /* Sources */ = { 239 | isa = PBXSourcesBuildPhase; 240 | buildActionMask = 2147483647; 241 | files = ( 242 | 8E4E8AE41216902E0300180E748DF509 /* Pods-WGMap-dummy.m in Sources */, 243 | ); 244 | runOnlyForDeploymentPostprocessing = 0; 245 | }; 246 | FAD1AF0CECE63CBB888ED53590094DAA /* Sources */ = { 247 | isa = PBXSourcesBuildPhase; 248 | buildActionMask = 2147483647; 249 | files = ( 250 | D6376584B9D2E7E3C0C0299E78A494FE /* WGMapCommonView-dummy.m in Sources */, 251 | ECAC2C2F29C6EA0DF50FA0E63B6C9808 /* WGMapCommonView.m in Sources */, 252 | ); 253 | runOnlyForDeploymentPostprocessing = 0; 254 | }; 255 | /* End PBXSourcesBuildPhase section */ 256 | 257 | /* Begin PBXTargetDependency section */ 258 | D4C49B1701F5639E87897F8750A50185 /* PBXTargetDependency */ = { 259 | isa = PBXTargetDependency; 260 | name = WGMapCommonView; 261 | target = BC7E0648179C85D9DCCC00207CDEDD7D /* WGMapCommonView */; 262 | targetProxy = 3A978B6C499F53417C3243474D906196 /* PBXContainerItemProxy */; 263 | }; 264 | /* End PBXTargetDependency section */ 265 | 266 | /* Begin XCBuildConfiguration section */ 267 | 5DE19CECB206ACCCACF04D62F93FFDA6 /* Release */ = { 268 | isa = XCBuildConfiguration; 269 | buildSettings = { 270 | ALWAYS_SEARCH_USER_PATHS = NO; 271 | CLANG_ANALYZER_NONNULL = YES; 272 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 273 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 274 | CLANG_CXX_LIBRARY = "libc++"; 275 | CLANG_ENABLE_MODULES = YES; 276 | CLANG_ENABLE_OBJC_ARC = YES; 277 | CLANG_ENABLE_OBJC_WEAK = YES; 278 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 279 | CLANG_WARN_BOOL_CONVERSION = YES; 280 | CLANG_WARN_COMMA = YES; 281 | CLANG_WARN_CONSTANT_CONVERSION = YES; 282 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 283 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 284 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 285 | CLANG_WARN_EMPTY_BODY = YES; 286 | CLANG_WARN_ENUM_CONVERSION = YES; 287 | CLANG_WARN_INFINITE_RECURSION = YES; 288 | CLANG_WARN_INT_CONVERSION = YES; 289 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 290 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 291 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 292 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 293 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 294 | CLANG_WARN_STRICT_PROTOTYPES = YES; 295 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 296 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 297 | CLANG_WARN_UNREACHABLE_CODE = YES; 298 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 299 | CODE_SIGNING_ALLOWED = NO; 300 | CODE_SIGNING_REQUIRED = NO; 301 | COPY_PHASE_STRIP = NO; 302 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 303 | ENABLE_NS_ASSERTIONS = NO; 304 | ENABLE_STRICT_OBJC_MSGSEND = YES; 305 | GCC_C_LANGUAGE_STANDARD = gnu11; 306 | GCC_NO_COMMON_BLOCKS = YES; 307 | GCC_PREPROCESSOR_DEFINITIONS = ( 308 | "POD_CONFIGURATION_RELEASE=1", 309 | "$(inherited)", 310 | ); 311 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 312 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 313 | GCC_WARN_UNDECLARED_SELECTOR = YES; 314 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 315 | GCC_WARN_UNUSED_FUNCTION = YES; 316 | GCC_WARN_UNUSED_VARIABLE = YES; 317 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 318 | MTL_ENABLE_DEBUG_INFO = NO; 319 | MTL_FAST_MATH = YES; 320 | PRODUCT_NAME = "$(TARGET_NAME)"; 321 | STRIP_INSTALLED_PRODUCT = NO; 322 | SWIFT_COMPILATION_MODE = wholemodule; 323 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 324 | SWIFT_VERSION = 4.2; 325 | SYMROOT = "${SRCROOT}/../build"; 326 | }; 327 | name = Release; 328 | }; 329 | 615AF476FDD15B86D601BB0A50BD0710 /* Release */ = { 330 | isa = XCBuildConfiguration; 331 | baseConfigurationReference = 0DC1F06341084B307D06DF44CE02D42F /* WGMapCommonView.xcconfig */; 332 | buildSettings = { 333 | CODE_SIGN_IDENTITY = "iPhone Developer"; 334 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 335 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 336 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 337 | GCC_PREFIX_HEADER = "Target Support Files/WGMapCommonView/WGMapCommonView-prefix.pch"; 338 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 339 | OTHER_LDFLAGS = ""; 340 | OTHER_LIBTOOLFLAGS = ""; 341 | PRIVATE_HEADERS_FOLDER_PATH = ""; 342 | PRODUCT_MODULE_NAME = WGMapCommonView; 343 | PRODUCT_NAME = WGMapCommonView; 344 | PUBLIC_HEADERS_FOLDER_PATH = ""; 345 | SDKROOT = iphoneos; 346 | SKIP_INSTALL = YES; 347 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 348 | TARGETED_DEVICE_FAMILY = "1,2"; 349 | VALIDATE_PRODUCT = YES; 350 | }; 351 | name = Release; 352 | }; 353 | 858D01EEFE984249A9581D18DBEA53F1 /* Debug */ = { 354 | isa = XCBuildConfiguration; 355 | buildSettings = { 356 | ALWAYS_SEARCH_USER_PATHS = NO; 357 | CLANG_ANALYZER_NONNULL = YES; 358 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 359 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 360 | CLANG_CXX_LIBRARY = "libc++"; 361 | CLANG_ENABLE_MODULES = YES; 362 | CLANG_ENABLE_OBJC_ARC = YES; 363 | CLANG_ENABLE_OBJC_WEAK = YES; 364 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 365 | CLANG_WARN_BOOL_CONVERSION = YES; 366 | CLANG_WARN_COMMA = YES; 367 | CLANG_WARN_CONSTANT_CONVERSION = YES; 368 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 369 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 370 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 371 | CLANG_WARN_EMPTY_BODY = YES; 372 | CLANG_WARN_ENUM_CONVERSION = YES; 373 | CLANG_WARN_INFINITE_RECURSION = YES; 374 | CLANG_WARN_INT_CONVERSION = YES; 375 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 376 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 377 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 378 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 379 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 380 | CLANG_WARN_STRICT_PROTOTYPES = YES; 381 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 382 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 383 | CLANG_WARN_UNREACHABLE_CODE = YES; 384 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 385 | CODE_SIGNING_ALLOWED = NO; 386 | CODE_SIGNING_REQUIRED = NO; 387 | COPY_PHASE_STRIP = NO; 388 | DEBUG_INFORMATION_FORMAT = dwarf; 389 | ENABLE_STRICT_OBJC_MSGSEND = YES; 390 | ENABLE_TESTABILITY = YES; 391 | GCC_C_LANGUAGE_STANDARD = gnu11; 392 | GCC_DYNAMIC_NO_PIC = NO; 393 | GCC_NO_COMMON_BLOCKS = YES; 394 | GCC_OPTIMIZATION_LEVEL = 0; 395 | GCC_PREPROCESSOR_DEFINITIONS = ( 396 | "POD_CONFIGURATION_DEBUG=1", 397 | "DEBUG=1", 398 | "$(inherited)", 399 | ); 400 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 401 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 402 | GCC_WARN_UNDECLARED_SELECTOR = YES; 403 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 404 | GCC_WARN_UNUSED_FUNCTION = YES; 405 | GCC_WARN_UNUSED_VARIABLE = YES; 406 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 407 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 408 | MTL_FAST_MATH = YES; 409 | ONLY_ACTIVE_ARCH = YES; 410 | PRODUCT_NAME = "$(TARGET_NAME)"; 411 | STRIP_INSTALLED_PRODUCT = NO; 412 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 413 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 414 | SWIFT_VERSION = 4.2; 415 | SYMROOT = "${SRCROOT}/../build"; 416 | }; 417 | name = Debug; 418 | }; 419 | 90F509C5D703F800A712EA7A94464AF6 /* Debug */ = { 420 | isa = XCBuildConfiguration; 421 | baseConfigurationReference = 8903A6DD2A3EC2218377F63C1D4E3860 /* Pods-WGMap.debug.xcconfig */; 422 | buildSettings = { 423 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 424 | CODE_SIGN_IDENTITY = "iPhone Developer"; 425 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 426 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 427 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 428 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 429 | MACH_O_TYPE = staticlib; 430 | OTHER_LDFLAGS = ""; 431 | OTHER_LIBTOOLFLAGS = ""; 432 | PODS_ROOT = "$(SRCROOT)"; 433 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 434 | SDKROOT = iphoneos; 435 | SKIP_INSTALL = YES; 436 | TARGETED_DEVICE_FAMILY = "1,2"; 437 | }; 438 | name = Debug; 439 | }; 440 | A80614686B1225DB3166A4DD9BF82D90 /* Debug */ = { 441 | isa = XCBuildConfiguration; 442 | baseConfigurationReference = 0DC1F06341084B307D06DF44CE02D42F /* WGMapCommonView.xcconfig */; 443 | buildSettings = { 444 | CODE_SIGN_IDENTITY = "iPhone Developer"; 445 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 446 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 447 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 448 | GCC_PREFIX_HEADER = "Target Support Files/WGMapCommonView/WGMapCommonView-prefix.pch"; 449 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 450 | OTHER_LDFLAGS = ""; 451 | OTHER_LIBTOOLFLAGS = ""; 452 | PRIVATE_HEADERS_FOLDER_PATH = ""; 453 | PRODUCT_MODULE_NAME = WGMapCommonView; 454 | PRODUCT_NAME = WGMapCommonView; 455 | PUBLIC_HEADERS_FOLDER_PATH = ""; 456 | SDKROOT = iphoneos; 457 | SKIP_INSTALL = YES; 458 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 459 | TARGETED_DEVICE_FAMILY = "1,2"; 460 | }; 461 | name = Debug; 462 | }; 463 | F6FC9A83C0E6F2913C30334DEB902BF0 /* Release */ = { 464 | isa = XCBuildConfiguration; 465 | baseConfigurationReference = 590710AB646949C38EEC6CFA704E854B /* Pods-WGMap.release.xcconfig */; 466 | buildSettings = { 467 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 468 | CODE_SIGN_IDENTITY = "iPhone Developer"; 469 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 470 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 471 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 472 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 473 | MACH_O_TYPE = staticlib; 474 | OTHER_LDFLAGS = ""; 475 | OTHER_LIBTOOLFLAGS = ""; 476 | PODS_ROOT = "$(SRCROOT)"; 477 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 478 | SDKROOT = iphoneos; 479 | SKIP_INSTALL = YES; 480 | TARGETED_DEVICE_FAMILY = "1,2"; 481 | VALIDATE_PRODUCT = YES; 482 | }; 483 | name = Release; 484 | }; 485 | /* End XCBuildConfiguration section */ 486 | 487 | /* Begin XCConfigurationList section */ 488 | 1706293D5F57F73642FE5F074520B459 /* Build configuration list for PBXNativeTarget "Pods-WGMap" */ = { 489 | isa = XCConfigurationList; 490 | buildConfigurations = ( 491 | 90F509C5D703F800A712EA7A94464AF6 /* Debug */, 492 | F6FC9A83C0E6F2913C30334DEB902BF0 /* Release */, 493 | ); 494 | defaultConfigurationIsVisible = 0; 495 | defaultConfigurationName = Release; 496 | }; 497 | 1EAFF51F7FF1EC17EDEB7984D56062F7 /* Build configuration list for PBXNativeTarget "WGMapCommonView" */ = { 498 | isa = XCConfigurationList; 499 | buildConfigurations = ( 500 | A80614686B1225DB3166A4DD9BF82D90 /* Debug */, 501 | 615AF476FDD15B86D601BB0A50BD0710 /* Release */, 502 | ); 503 | defaultConfigurationIsVisible = 0; 504 | defaultConfigurationName = Release; 505 | }; 506 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 507 | isa = XCConfigurationList; 508 | buildConfigurations = ( 509 | 858D01EEFE984249A9581D18DBEA53F1 /* Debug */, 510 | 5DE19CECB206ACCCACF04D62F93FFDA6 /* Release */, 511 | ); 512 | defaultConfigurationIsVisible = 0; 513 | defaultConfigurationName = Release; 514 | }; 515 | /* End XCConfigurationList section */ 516 | }; 517 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 518 | } 519 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_WGMap : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_WGMap 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 7 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # frameworks to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 13 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 14 | 15 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 16 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 17 | 18 | # Used as a return value for each invocation of `strip_invalid_archs` function. 19 | STRIP_BINARY_RETVAL=0 20 | 21 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 22 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 23 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 24 | 25 | # Copies and strips a vendored framework 26 | install_framework() 27 | { 28 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 29 | local source="${BUILT_PRODUCTS_DIR}/$1" 30 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 31 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 32 | elif [ -r "$1" ]; then 33 | local source="$1" 34 | fi 35 | 36 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 37 | 38 | if [ -L "${source}" ]; then 39 | echo "Symlinked..." 40 | source="$(readlink "${source}")" 41 | fi 42 | 43 | # Use filter instead of exclude so missing patterns don't throw errors. 44 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 45 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 46 | 47 | local basename 48 | basename="$(basename -s .framework "$1")" 49 | binary="${destination}/${basename}.framework/${basename}" 50 | if ! [ -r "$binary" ]; then 51 | binary="${destination}/${basename}" 52 | fi 53 | 54 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 55 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 56 | strip_invalid_archs "$binary" 57 | fi 58 | 59 | # Resign the code if required by the build settings to avoid unstable apps 60 | code_sign_if_enabled "${destination}/$(basename "$1")" 61 | 62 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 63 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 64 | local swift_runtime_libs 65 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 66 | for lib in $swift_runtime_libs; do 67 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 68 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 69 | code_sign_if_enabled "${destination}/${lib}" 70 | done 71 | fi 72 | } 73 | 74 | # Copies and strips a vendored dSYM 75 | install_dsym() { 76 | local source="$1" 77 | if [ -r "$source" ]; then 78 | # Copy the dSYM into a the targets temp dir. 79 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 80 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 81 | 82 | local basename 83 | basename="$(basename -s .framework.dSYM "$source")" 84 | binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 85 | 86 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 87 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 88 | strip_invalid_archs "$binary" 89 | fi 90 | 91 | if [[ $STRIP_BINARY_RETVAL == 1 ]]; then 92 | # Move the stripped file into its final destination. 93 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 94 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 95 | else 96 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 97 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" 98 | fi 99 | fi 100 | } 101 | 102 | # Signs a framework with the provided identity 103 | code_sign_if_enabled() { 104 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 105 | # Use the current code_sign_identitiy 106 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 107 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 108 | 109 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 110 | code_sign_cmd="$code_sign_cmd &" 111 | fi 112 | echo "$code_sign_cmd" 113 | eval "$code_sign_cmd" 114 | fi 115 | } 116 | 117 | # Strip invalid architectures 118 | strip_invalid_archs() { 119 | binary="$1" 120 | # Get architectures for current target binary 121 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 122 | # Intersect them with the architectures we are building for 123 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 124 | # If there are no archs supported by this binary then warn the user 125 | if [[ -z "$intersected_archs" ]]; then 126 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 127 | STRIP_BINARY_RETVAL=0 128 | return 129 | fi 130 | stripped="" 131 | for arch in $binary_archs; do 132 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 133 | # Strip non-valid architectures in-place 134 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 135 | stripped="$stripped $arch" 136 | fi 137 | done 138 | if [[ "$stripped" ]]; then 139 | echo "Stripped $binary of architectures:$stripped" 140 | fi 141 | STRIP_BINARY_RETVAL=1 142 | } 143 | 144 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 145 | wait 146 | fi 147 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then 7 | # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # resources to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 13 | 14 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 15 | > "$RESOURCES_TO_COPY" 16 | 17 | XCASSET_FILES=() 18 | 19 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 20 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 21 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 22 | 23 | case "${TARGETED_DEVICE_FAMILY:-}" in 24 | 1,2) 25 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 26 | ;; 27 | 1) 28 | TARGET_DEVICE_ARGS="--target-device iphone" 29 | ;; 30 | 2) 31 | TARGET_DEVICE_ARGS="--target-device ipad" 32 | ;; 33 | 3) 34 | TARGET_DEVICE_ARGS="--target-device tv" 35 | ;; 36 | 4) 37 | TARGET_DEVICE_ARGS="--target-device watch" 38 | ;; 39 | *) 40 | TARGET_DEVICE_ARGS="--target-device mac" 41 | ;; 42 | esac 43 | 44 | install_resource() 45 | { 46 | if [[ "$1" = /* ]] ; then 47 | RESOURCE_PATH="$1" 48 | else 49 | RESOURCE_PATH="${PODS_ROOT}/$1" 50 | fi 51 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 52 | cat << EOM 53 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 54 | EOM 55 | exit 1 56 | fi 57 | case $RESOURCE_PATH in 58 | *.storyboard) 59 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 60 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 61 | ;; 62 | *.xib) 63 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 64 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 65 | ;; 66 | *.framework) 67 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 68 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 69 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 70 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 71 | ;; 72 | *.xcdatamodel) 73 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true 74 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 75 | ;; 76 | *.xcdatamodeld) 77 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true 78 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 79 | ;; 80 | *.xcmappingmodel) 81 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true 82 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 83 | ;; 84 | *.xcassets) 85 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 86 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 87 | ;; 88 | *) 89 | echo "$RESOURCE_PATH" || true 90 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 91 | ;; 92 | esac 93 | } 94 | 95 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 96 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 97 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 98 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 99 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 100 | fi 101 | rm -f "$RESOURCES_TO_COPY" 102 | 103 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] 104 | then 105 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 106 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 107 | while read line; do 108 | if [[ $line != "${PODS_ROOT}*" ]]; then 109 | XCASSET_FILES+=("$line") 110 | fi 111 | done <<<"$OTHER_XCASSETS" 112 | 113 | if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then 114 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 115 | else 116 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" 117 | fi 118 | fi 119 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WGMapCommonView" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/WGMapCommonView" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/WGMapCommonView" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"WGMapCommonView" -framework "UIKit" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-WGMap/Pods-WGMap.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WGMapCommonView" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/WGMapCommonView" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/WGMapCommonView" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"WGMapCommonView" -framework "UIKit" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGMapCommonView/WGMapCommonView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_WGMapCommonView : NSObject 3 | @end 4 | @implementation PodsDummy_WGMapCommonView 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGMapCommonView/WGMapCommonView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/WGMapCommonView/WGMapCommonView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/WGMapCommonView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/WGMapCommonView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/WGMapCommonView" 4 | OTHER_LDFLAGS = -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/WGMapCommonView 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/WGMapCommonView/WGMap/MapTools/WGMapCommonView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGMapCommonView.h 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/30. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WGMapCommonView : UIView 14 | 15 | /** 16 | 背景色 默认 17 | */ 18 | @property(nonatomic,strong) UIColor *backColorD; 19 | 20 | /** 21 | 背景色 高亮 22 | */ 23 | @property(nonatomic,strong) UIColor *backColorH; 24 | 25 | /** 26 | 地图上名字 字号 27 | */ 28 | @property(nonatomic,strong) UIFont *nameFont; 29 | 30 | /** 31 | 地图上名字 颜色 32 | */ 33 | @property(nonatomic,strong) UIColor *nameColor; 34 | 35 | /** 36 | 边界线 颜色 37 | */ 38 | @property(nonatomic,strong) UIColor *lineColor; 39 | 40 | /** 41 | 画图资源文件 42 | */ 43 | @property (nonatomic, copy) NSString *pathFileName; 44 | 45 | /** 46 | 子地图在整个地图的位置,子地图的名字,序号等信息资源文件 47 | */ 48 | @property (nonatomic, copy) NSString *infoFileName; 49 | 50 | /** 51 | 选中的模块 52 | */ 53 | @property(nonatomic,strong) NSArray *seletedAry; 54 | 55 | /** 56 | 点击地图功能 开启后关闭设置选中省份功能 默认 NO 57 | */ 58 | @property(nonatomic,assign) BOOL clickEnable; 59 | 60 | /** 61 | 点击省份事件 只有当 clickEnable == YES 才响应 62 | */ 63 | @property(nonatomic,copy) void(^clickActionBlock)(NSString *place); 64 | 65 | @end 66 | 67 | NS_ASSUME_NONNULL_END 68 | -------------------------------------------------------------------------------- /Pods/WGMapCommonView/WGMap/MapTools/WGMapCommonView.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGMapCommonView.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/30. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import "WGMapCommonView.h" 10 | 11 | @interface WGMapCommonView() 12 | 13 | /**地图块贝塞尔曲线数组*/ 14 | @property(nonatomic,strong) NSMutableArray *pathAry; 15 | /**地图块贝塞尔曲线颜色数组*/ 16 | @property (nonatomic,strong) NSMutableArray *colorAry; 17 | /**各个区名字及位置数组*/ 18 | @property (nonatomic,strong) NSMutableArray *textAry; 19 | /**选中的地图块*/ 20 | @property (nonatomic,assign) NSUInteger seletedIdx; 21 | /**序号对应的名字*/ 22 | @property(nonatomic,strong) NSDictionary *nameWithIndexDic; 23 | /**名子对应的序号*/ 24 | @property(nonatomic,strong) NSDictionary *indexWithNameDic; 25 | //执行一次 26 | @property(nonatomic,assign) BOOL isRuned; 27 | 28 | @end 29 | 30 | @implementation WGMapCommonView 31 | 32 | - (instancetype)initWithFrame:(CGRect)frame 33 | { 34 | self = [super initWithFrame:frame]; 35 | if (self) { 36 | 37 | self.backgroundColor = [UIColor grayColor]; 38 | [self clickEnableMethod]; 39 | } 40 | return self; 41 | } 42 | 43 | #pragma mark -画图 44 | - (void)drawRect:(CGRect)rect{ 45 | // 边线颜色 46 | UIColor* strokeColor = self.lineColor; 47 | 48 | [self.pathAry enumerateObjectsUsingBlock:^(UIBezierPath * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 49 | 50 | obj.miterLimit = 4; 51 | obj.lineJoinStyle = kCGLineJoinRound; 52 | [self.colorAry[idx] setFill]; 53 | [obj fill]; 54 | [strokeColor setStroke]; 55 | obj.lineWidth = 1; 56 | [obj stroke]; 57 | }]; 58 | 59 | // 绘制文字 60 | __weak typeof(self) weakSelf = self; 61 | [self.textAry enumerateObjectsUsingBlock:^(NSDictionary * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 62 | 63 | NSString *name = obj[@"name"]; 64 | NSValue *rectValue = obj[@"rect"]; 65 | [weakSelf drawText:name rect:rectValue]; 66 | }]; 67 | } 68 | 69 | - (void)drawText:(NSString *)name rect:(NSValue *)rect{ 70 | CGRect textRect = [rect CGRectValue]; 71 | { 72 | NSString *textContent = name; 73 | CGContextRef context = UIGraphicsGetCurrentContext(); 74 | NSMutableParagraphStyle *textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy; 75 | textStyle.alignment = NSTextAlignmentCenter; 76 | // 省份名字: 字号 颜色 段落样式 77 | NSDictionary *dic = @{ 78 | NSFontAttributeName: [UIFont systemFontOfSize: 13] 79 | , NSForegroundColorAttributeName: self.nameColor, NSParagraphStyleAttributeName: textStyle 80 | }; 81 | 82 | CGFloat textH = [textContent boundingRectWithSize: CGSizeMake(textRect.size.width, INFINITY) options: NSStringDrawingUsesLineFragmentOrigin attributes: dic context: nil].size.height; 83 | 84 | CGContextSaveGState(context); 85 | CGContextClipToRect(context, textRect); 86 | [textContent drawInRect: CGRectMake(CGRectGetMinX(textRect), CGRectGetMinY(textRect) + (CGRectGetHeight(textRect) - textH) / 2, CGRectGetWidth(textRect), textH) withAttributes: dic]; 87 | CGContextRestoreGState(context); 88 | } 89 | } 90 | 91 | #pragma mark -set方法 92 | - (void)clickEnableMethod{ 93 | 94 | if (_clickEnable == NO) { 95 | if (self.gestureRecognizers.count >0) self.gestureRecognizers = @[]; 96 | 97 | }else{ 98 | if (self.gestureRecognizers.count >0){ 99 | 100 | }else{ 101 | UITapGestureRecognizer *click = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)]; 102 | [self addGestureRecognizer:click]; 103 | } 104 | } 105 | } 106 | 107 | -(void)setClickEnable:(BOOL)clickEnable{ 108 | _clickEnable = clickEnable; 109 | [self clickEnableMethod]; 110 | } 111 | 112 | -(void)setSeletedAry:(NSArray *)seletedAry{ 113 | _seletedAry = seletedAry; 114 | 115 | [self selectAction:self.seletedAry]; 116 | } 117 | 118 | 119 | 120 | #pragma mark - 手势点击方法 121 | - (void)click:(UITapGestureRecognizer *)sender{ 122 | CGPoint point = [sender locationInView:sender.view]; 123 | [self tap:point]; 124 | 125 | } 126 | 127 | // 绘制选中区域颜色 128 | - (void)tap:(CGPoint)point{ 129 | //遍历所有市地图块.判断点击的是那一块 130 | for (NSInteger i = 0; i *)seletedAry{ 167 | 168 | if (seletedAry.count <= 0) return; 169 | 170 | for (int i = 0; i < seletedAry.count; i++) { 171 | NSString *name = [self.seletedAry objectAtIndex:i]; 172 | if (name.length <= 0) return; 173 | NSString *value = [self.indexWithNameDic objectForKey:name]; 174 | if ((value.integerValue - 1) < 0) continue; 175 | NSInteger index = value.integerValue - 1; 176 | self.colorAry[index] = self.backColorH; 177 | } 178 | [self setNeedsDisplay]; 179 | } 180 | 181 | #pragma mark -懒加载 182 | // 序号从1开始 183 | - (NSDictionary *)nameWithIndexDic{ 184 | 185 | if (!_nameWithIndexDic) { 186 | 187 | if (!self.textAry || self.textAry.count == 0) { 188 | _nameWithIndexDic = @{}; 189 | }else{ 190 | NSMutableDictionary *nameDic = [[NSMutableDictionary alloc] init]; 191 | for (NSDictionary *dic in self.textAry) { 192 | NSString *value = dic[@"name"]; 193 | NSString *key = [NSString stringWithFormat:@"%@", dic[@"index"]]; 194 | [nameDic setObject:value forKey:key]; 195 | } 196 | _nameWithIndexDic = nameDic; 197 | } 198 | } 199 | return _nameWithIndexDic; 200 | } 201 | 202 | - (NSDictionary *)indexWithNameDic{ 203 | 204 | if (!_indexWithNameDic) { 205 | 206 | if (!self.textAry || self.textAry.count == 0) { 207 | _indexWithNameDic = @{}; 208 | }else{ 209 | NSMutableDictionary *nameDic = [[NSMutableDictionary alloc] init]; 210 | for (NSDictionary *dic in self.textAry) { 211 | NSString *key = dic[@"name"]; 212 | NSString *value = [NSString stringWithFormat:@"%@", dic[@"index"]]; 213 | [nameDic setObject:value forKey:key]; 214 | } 215 | _indexWithNameDic = nameDic; 216 | } 217 | } 218 | return _indexWithNameDic; 219 | } 220 | 221 | -(NSMutableArray *)pathAry{ 222 | if (_pathAry == nil) { 223 | NSString *sourcePath = [[NSBundle mainBundle] pathForResource:self.pathFileName ofType:nil]; 224 | _pathAry = [NSKeyedUnarchiver unarchiveObjectWithFile:sourcePath]; 225 | } 226 | return _pathAry; 227 | } 228 | 229 | - (NSMutableArray *)textAry{ 230 | if (!_textAry) { 231 | 232 | NSString *sourcePath = [[NSBundle mainBundle] pathForResource:self.infoFileName ofType:nil]; 233 | NSData *data = [NSData dataWithContentsOfFile:sourcePath]; 234 | _textAry = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 235 | 236 | } 237 | return _textAry; 238 | } 239 | 240 | - (NSMutableArray *)colorAry{ 241 | if (_colorAry == nil) { 242 | _colorAry = [NSMutableArray arrayWithCapacity:self.pathAry.count]; 243 | for (int i = 0; i /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"; 393 | showEnvVarsInLog = 0; 394 | }; 395 | /* End PBXShellScriptBuildPhase section */ 396 | 397 | /* Begin PBXSourcesBuildPhase section */ 398 | 32C68C2121AE801800E9CCE5 /* Sources */ = { 399 | isa = PBXSourcesBuildPhase; 400 | buildActionMask = 2147483647; 401 | files = ( 402 | 32C68C2D21AE801800E9CCE5 /* ViewController.m in Sources */, 403 | 32C68C3821AE801900E9CCE5 /* main.m in Sources */, 404 | 3256B7BA21B00EBE0024FD85 /* WGChinaMapViewController.m in Sources */, 405 | 3245462122850C770040F665 /* WGNeiMGViewController.m in Sources */, 406 | 32C68C2A21AE801800E9CCE5 /* AppDelegate.m in Sources */, 407 | 3256B7B221AFF91D0024FD85 /* WGGuangDongViewController.m in Sources */, 408 | ); 409 | runOnlyForDeploymentPostprocessing = 0; 410 | }; 411 | 32C68C3921AE801900E9CCE5 /* Sources */ = { 412 | isa = PBXSourcesBuildPhase; 413 | buildActionMask = 2147483647; 414 | files = ( 415 | 32C68C4221AE801900E9CCE5 /* WGMapTests.m in Sources */, 416 | ); 417 | runOnlyForDeploymentPostprocessing = 0; 418 | }; 419 | 32C68C4421AE801900E9CCE5 /* Sources */ = { 420 | isa = PBXSourcesBuildPhase; 421 | buildActionMask = 2147483647; 422 | files = ( 423 | 32C68C4D21AE801900E9CCE5 /* WGMapUITests.m in Sources */, 424 | ); 425 | runOnlyForDeploymentPostprocessing = 0; 426 | }; 427 | /* End PBXSourcesBuildPhase section */ 428 | 429 | /* Begin PBXTargetDependency section */ 430 | 32C68C3F21AE801900E9CCE5 /* PBXTargetDependency */ = { 431 | isa = PBXTargetDependency; 432 | target = 32C68C2421AE801800E9CCE5 /* WGMap */; 433 | targetProxy = 32C68C3E21AE801900E9CCE5 /* PBXContainerItemProxy */; 434 | }; 435 | 32C68C4A21AE801900E9CCE5 /* PBXTargetDependency */ = { 436 | isa = PBXTargetDependency; 437 | target = 32C68C2421AE801800E9CCE5 /* WGMap */; 438 | targetProxy = 32C68C4921AE801900E9CCE5 /* PBXContainerItemProxy */; 439 | }; 440 | /* End PBXTargetDependency section */ 441 | 442 | /* Begin PBXVariantGroup section */ 443 | 32C68C3321AE801900E9CCE5 /* LaunchScreen.storyboard */ = { 444 | isa = PBXVariantGroup; 445 | children = ( 446 | 32C68C3421AE801900E9CCE5 /* Base */, 447 | ); 448 | name = LaunchScreen.storyboard; 449 | sourceTree = ""; 450 | }; 451 | /* End PBXVariantGroup section */ 452 | 453 | /* Begin XCBuildConfiguration section */ 454 | 32C68C4F21AE801900E9CCE5 /* Debug */ = { 455 | isa = XCBuildConfiguration; 456 | buildSettings = { 457 | ALWAYS_SEARCH_USER_PATHS = NO; 458 | CLANG_ANALYZER_NONNULL = YES; 459 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 460 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 461 | CLANG_CXX_LIBRARY = "libc++"; 462 | CLANG_ENABLE_MODULES = YES; 463 | CLANG_ENABLE_OBJC_ARC = YES; 464 | CLANG_ENABLE_OBJC_WEAK = YES; 465 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 466 | CLANG_WARN_BOOL_CONVERSION = YES; 467 | CLANG_WARN_COMMA = YES; 468 | CLANG_WARN_CONSTANT_CONVERSION = YES; 469 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 470 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 471 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 472 | CLANG_WARN_EMPTY_BODY = YES; 473 | CLANG_WARN_ENUM_CONVERSION = YES; 474 | CLANG_WARN_INFINITE_RECURSION = YES; 475 | CLANG_WARN_INT_CONVERSION = YES; 476 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 477 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 478 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 479 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 480 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 481 | CLANG_WARN_STRICT_PROTOTYPES = YES; 482 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 483 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 484 | CLANG_WARN_UNREACHABLE_CODE = YES; 485 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 486 | CODE_SIGN_IDENTITY = "iPhone Developer"; 487 | COPY_PHASE_STRIP = NO; 488 | DEBUG_INFORMATION_FORMAT = dwarf; 489 | ENABLE_STRICT_OBJC_MSGSEND = YES; 490 | ENABLE_TESTABILITY = YES; 491 | GCC_C_LANGUAGE_STANDARD = gnu11; 492 | GCC_DYNAMIC_NO_PIC = NO; 493 | GCC_NO_COMMON_BLOCKS = YES; 494 | GCC_OPTIMIZATION_LEVEL = 0; 495 | GCC_PREPROCESSOR_DEFINITIONS = ( 496 | "DEBUG=1", 497 | "$(inherited)", 498 | ); 499 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 500 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 501 | GCC_WARN_UNDECLARED_SELECTOR = YES; 502 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 503 | GCC_WARN_UNUSED_FUNCTION = YES; 504 | GCC_WARN_UNUSED_VARIABLE = YES; 505 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 506 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 507 | MTL_FAST_MATH = YES; 508 | ONLY_ACTIVE_ARCH = YES; 509 | SDKROOT = iphoneos; 510 | }; 511 | name = Debug; 512 | }; 513 | 32C68C5021AE801900E9CCE5 /* Release */ = { 514 | isa = XCBuildConfiguration; 515 | buildSettings = { 516 | ALWAYS_SEARCH_USER_PATHS = NO; 517 | CLANG_ANALYZER_NONNULL = YES; 518 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 519 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 520 | CLANG_CXX_LIBRARY = "libc++"; 521 | CLANG_ENABLE_MODULES = YES; 522 | CLANG_ENABLE_OBJC_ARC = YES; 523 | CLANG_ENABLE_OBJC_WEAK = YES; 524 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 525 | CLANG_WARN_BOOL_CONVERSION = YES; 526 | CLANG_WARN_COMMA = YES; 527 | CLANG_WARN_CONSTANT_CONVERSION = YES; 528 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 529 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 530 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 531 | CLANG_WARN_EMPTY_BODY = YES; 532 | CLANG_WARN_ENUM_CONVERSION = YES; 533 | CLANG_WARN_INFINITE_RECURSION = YES; 534 | CLANG_WARN_INT_CONVERSION = YES; 535 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 536 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 537 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 538 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 539 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 540 | CLANG_WARN_STRICT_PROTOTYPES = YES; 541 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 542 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 543 | CLANG_WARN_UNREACHABLE_CODE = YES; 544 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 545 | CODE_SIGN_IDENTITY = "iPhone Developer"; 546 | COPY_PHASE_STRIP = NO; 547 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 548 | ENABLE_NS_ASSERTIONS = NO; 549 | ENABLE_STRICT_OBJC_MSGSEND = YES; 550 | GCC_C_LANGUAGE_STANDARD = gnu11; 551 | GCC_NO_COMMON_BLOCKS = YES; 552 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 553 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 554 | GCC_WARN_UNDECLARED_SELECTOR = YES; 555 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 556 | GCC_WARN_UNUSED_FUNCTION = YES; 557 | GCC_WARN_UNUSED_VARIABLE = YES; 558 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 559 | MTL_ENABLE_DEBUG_INFO = NO; 560 | MTL_FAST_MATH = YES; 561 | SDKROOT = iphoneos; 562 | VALIDATE_PRODUCT = YES; 563 | }; 564 | name = Release; 565 | }; 566 | 32C68C5221AE801900E9CCE5 /* Debug */ = { 567 | isa = XCBuildConfiguration; 568 | baseConfigurationReference = 0A08ADA297100BC3C379E9B7 /* Pods-WGMap.debug.xcconfig */; 569 | buildSettings = { 570 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 571 | CODE_SIGN_STYLE = Automatic; 572 | DEVELOPMENT_TEAM = 49T87S5RLN; 573 | INFOPLIST_FILE = WGMap/Info.plist; 574 | IPHONEOS_DEPLOYMENT_TARGET = 10.0; 575 | LD_RUNPATH_SEARCH_PATHS = ( 576 | "$(inherited)", 577 | "@executable_path/Frameworks", 578 | ); 579 | PRODUCT_BUNDLE_IDENTIFIER = com.bozhong.WGMap; 580 | PRODUCT_NAME = "$(TARGET_NAME)"; 581 | TARGETED_DEVICE_FAMILY = "1,2"; 582 | }; 583 | name = Debug; 584 | }; 585 | 32C68C5321AE801900E9CCE5 /* Release */ = { 586 | isa = XCBuildConfiguration; 587 | baseConfigurationReference = F33624664C6B7D01F39E83DF /* Pods-WGMap.release.xcconfig */; 588 | buildSettings = { 589 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 590 | CODE_SIGN_STYLE = Automatic; 591 | DEVELOPMENT_TEAM = 49T87S5RLN; 592 | INFOPLIST_FILE = WGMap/Info.plist; 593 | IPHONEOS_DEPLOYMENT_TARGET = 10.0; 594 | LD_RUNPATH_SEARCH_PATHS = ( 595 | "$(inherited)", 596 | "@executable_path/Frameworks", 597 | ); 598 | PRODUCT_BUNDLE_IDENTIFIER = com.bozhong.WGMap; 599 | PRODUCT_NAME = "$(TARGET_NAME)"; 600 | TARGETED_DEVICE_FAMILY = "1,2"; 601 | }; 602 | name = Release; 603 | }; 604 | 32C68C5521AE801900E9CCE5 /* Debug */ = { 605 | isa = XCBuildConfiguration; 606 | buildSettings = { 607 | BUNDLE_LOADER = "$(TEST_HOST)"; 608 | CODE_SIGN_STYLE = Automatic; 609 | DEVELOPMENT_TEAM = 49T87S5RLN; 610 | INFOPLIST_FILE = WGMapTests/Info.plist; 611 | LD_RUNPATH_SEARCH_PATHS = ( 612 | "$(inherited)", 613 | "@executable_path/Frameworks", 614 | "@loader_path/Frameworks", 615 | ); 616 | PRODUCT_BUNDLE_IDENTIFIER = com.bozhong.WGMapTests; 617 | PRODUCT_NAME = "$(TARGET_NAME)"; 618 | TARGETED_DEVICE_FAMILY = "1,2"; 619 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WGMap.app/WGMap"; 620 | }; 621 | name = Debug; 622 | }; 623 | 32C68C5621AE801900E9CCE5 /* Release */ = { 624 | isa = XCBuildConfiguration; 625 | buildSettings = { 626 | BUNDLE_LOADER = "$(TEST_HOST)"; 627 | CODE_SIGN_STYLE = Automatic; 628 | DEVELOPMENT_TEAM = 49T87S5RLN; 629 | INFOPLIST_FILE = WGMapTests/Info.plist; 630 | LD_RUNPATH_SEARCH_PATHS = ( 631 | "$(inherited)", 632 | "@executable_path/Frameworks", 633 | "@loader_path/Frameworks", 634 | ); 635 | PRODUCT_BUNDLE_IDENTIFIER = com.bozhong.WGMapTests; 636 | PRODUCT_NAME = "$(TARGET_NAME)"; 637 | TARGETED_DEVICE_FAMILY = "1,2"; 638 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WGMap.app/WGMap"; 639 | }; 640 | name = Release; 641 | }; 642 | 32C68C5821AE801900E9CCE5 /* Debug */ = { 643 | isa = XCBuildConfiguration; 644 | buildSettings = { 645 | CODE_SIGN_STYLE = Automatic; 646 | DEVELOPMENT_TEAM = 49T87S5RLN; 647 | INFOPLIST_FILE = WGMapUITests/Info.plist; 648 | LD_RUNPATH_SEARCH_PATHS = ( 649 | "$(inherited)", 650 | "@executable_path/Frameworks", 651 | "@loader_path/Frameworks", 652 | ); 653 | PRODUCT_BUNDLE_IDENTIFIER = com.bozhong.WGMapUITests; 654 | PRODUCT_NAME = "$(TARGET_NAME)"; 655 | TARGETED_DEVICE_FAMILY = "1,2"; 656 | TEST_TARGET_NAME = WGMap; 657 | }; 658 | name = Debug; 659 | }; 660 | 32C68C5921AE801900E9CCE5 /* Release */ = { 661 | isa = XCBuildConfiguration; 662 | buildSettings = { 663 | CODE_SIGN_STYLE = Automatic; 664 | DEVELOPMENT_TEAM = 49T87S5RLN; 665 | INFOPLIST_FILE = WGMapUITests/Info.plist; 666 | LD_RUNPATH_SEARCH_PATHS = ( 667 | "$(inherited)", 668 | "@executable_path/Frameworks", 669 | "@loader_path/Frameworks", 670 | ); 671 | PRODUCT_BUNDLE_IDENTIFIER = com.bozhong.WGMapUITests; 672 | PRODUCT_NAME = "$(TARGET_NAME)"; 673 | TARGETED_DEVICE_FAMILY = "1,2"; 674 | TEST_TARGET_NAME = WGMap; 675 | }; 676 | name = Release; 677 | }; 678 | /* End XCBuildConfiguration section */ 679 | 680 | /* Begin XCConfigurationList section */ 681 | 32C68C2021AE801800E9CCE5 /* Build configuration list for PBXProject "WGMap" */ = { 682 | isa = XCConfigurationList; 683 | buildConfigurations = ( 684 | 32C68C4F21AE801900E9CCE5 /* Debug */, 685 | 32C68C5021AE801900E9CCE5 /* Release */, 686 | ); 687 | defaultConfigurationIsVisible = 0; 688 | defaultConfigurationName = Release; 689 | }; 690 | 32C68C5121AE801900E9CCE5 /* Build configuration list for PBXNativeTarget "WGMap" */ = { 691 | isa = XCConfigurationList; 692 | buildConfigurations = ( 693 | 32C68C5221AE801900E9CCE5 /* Debug */, 694 | 32C68C5321AE801900E9CCE5 /* Release */, 695 | ); 696 | defaultConfigurationIsVisible = 0; 697 | defaultConfigurationName = Release; 698 | }; 699 | 32C68C5421AE801900E9CCE5 /* Build configuration list for PBXNativeTarget "WGMapTests" */ = { 700 | isa = XCConfigurationList; 701 | buildConfigurations = ( 702 | 32C68C5521AE801900E9CCE5 /* Debug */, 703 | 32C68C5621AE801900E9CCE5 /* Release */, 704 | ); 705 | defaultConfigurationIsVisible = 0; 706 | defaultConfigurationName = Release; 707 | }; 708 | 32C68C5721AE801900E9CCE5 /* Build configuration list for PBXNativeTarget "WGMapUITests" */ = { 709 | isa = XCConfigurationList; 710 | buildConfigurations = ( 711 | 32C68C5821AE801900E9CCE5 /* Debug */, 712 | 32C68C5921AE801900E9CCE5 /* Release */, 713 | ); 714 | defaultConfigurationIsVisible = 0; 715 | defaultConfigurationName = Release; 716 | }; 717 | /* End XCConfigurationList section */ 718 | }; 719 | rootObject = 32C68C1D21AE801800E9CCE5 /* Project object */; 720 | } 721 | -------------------------------------------------------------------------------- /WGMap.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /WGMap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WGMap.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /WGMap.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WGMap/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /WGMap/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "ViewController.h" 11 | 12 | @interface AppDelegate () 13 | 14 | @end 15 | 16 | @implementation AppDelegate 17 | 18 | 19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 20 | 21 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 22 | self.window.backgroundColor = [UIColor whiteColor]; 23 | 24 | ViewController *vc = [[ViewController alloc] init]; 25 | UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; 26 | 27 | self.window.rootViewController = nav; 28 | [self.window makeKeyAndVisible]; 29 | 30 | return YES; 31 | } 32 | 33 | 34 | - (void)applicationWillResignActive:(UIApplication *)application { 35 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 36 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 37 | } 38 | 39 | 40 | - (void)applicationDidEnterBackground:(UIApplication *)application { 41 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 42 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 43 | } 44 | 45 | 46 | - (void)applicationWillEnterForeground:(UIApplication *)application { 47 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 48 | } 49 | 50 | 51 | - (void)applicationDidBecomeActive:(UIApplication *)application { 52 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 53 | } 54 | 55 | 56 | - (void)applicationWillTerminate:(UIApplication *)application { 57 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 58 | } 59 | 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /WGMap/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /WGMap/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /WGMap/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /WGMap/China/ChinaMapPaths.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/China/ChinaMapPaths.plist -------------------------------------------------------------------------------- /WGMap/China/WGChinaMapViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGChinaMapViewController.h 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/29. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WGChinaMapViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /WGMap/China/WGChinaMapViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGChinaMapViewController.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/29. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #define WGWidth [UIScreen mainScreen].bounds.size.width 10 | #define WGHeight [UIScreen mainScreen].bounds.size.height 11 | 12 | #import "WGChinaMapViewController.h" 13 | #import "WGMapCommonView.h" 14 | 15 | @interface WGChinaMapViewController () 16 | 17 | @property (nonatomic, strong) WGMapCommonView *mapView; 18 | @property (nonatomic, strong) UILabel *remindLab; 19 | 20 | @end 21 | 22 | @implementation WGChinaMapViewController 23 | 24 | - (void)viewDidLoad { 25 | [super viewDidLoad]; 26 | 27 | self.title = @"全国地图"; 28 | self.view.backgroundColor = [UIColor whiteColor]; 29 | 30 | self.remindLab = [[UILabel alloc] init]; 31 | self.remindLab.textColor = [UIColor blackColor]; 32 | self.remindLab.frame = CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 30); 33 | self.remindLab.backgroundColor = [UIColor clearColor]; 34 | self.remindLab.textAlignment = NSTextAlignmentCenter; 35 | [self.view addSubview:self.remindLab]; 36 | 37 | //地图 38 | self.mapView = [[WGMapCommonView alloc] init]; 39 | 40 | CGFloat scale = 0.7; 41 | self.mapView.transform = CGAffineTransformMakeScale(scale, scale);//宽高伸缩比例 42 | self.mapView.frame = CGRectMake(0, 0, WGWidth, WGWidth * 0.9); 43 | self.mapView.center = CGPointMake(WGWidth *0.5,WGHeight *0.5); 44 | 45 | self.mapView.pathFileName = @"ChinaMapPaths.plist"; 46 | self.mapView.infoFileName = @"provinceInfo.plist"; 47 | _mapView.clickEnable = YES; 48 | self.mapView.seletedAry = @[@"浙江"]; 49 | 50 | [self.view addSubview:_mapView]; 51 | 52 | __weak typeof(self) weakSelf = self; 53 | _mapView.clickActionBlock = ^(NSString * _Nonnull place) { 54 | NSLog(@"点击了地图:%@", place); 55 | weakSelf.remindLab.text = place; 56 | }; 57 | 58 | if (self.mapView.seletedAry.count > 0) { 59 | self.remindLab.text = self.mapView.seletedAry[0]; 60 | } 61 | } 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /WGMap/China/provinceInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/China/provinceInfo.plist -------------------------------------------------------------------------------- /WGMap/GuangDong/WGGuangDongViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGGuangDongViewController.h 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/29. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WGGuangDongViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /WGMap/GuangDong/WGGuangDongViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGGuangDongViewController.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/29. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #define WGWidth [UIScreen mainScreen].bounds.size.width 10 | #define WGHeight [UIScreen mainScreen].bounds.size.height 11 | 12 | #import "WGGuangDongViewController.h" 13 | #import "WGMapCommonView.h" 14 | 15 | @interface WGGuangDongViewController () 16 | 17 | @property (nonatomic, strong) WGMapCommonView *mapView; 18 | @property (nonatomic, strong) UILabel *remindLab; 19 | 20 | @end 21 | 22 | @implementation WGGuangDongViewController 23 | 24 | - (void)viewDidLoad { 25 | [super viewDidLoad]; 26 | 27 | self.title = @"广东省地图"; 28 | self.view.backgroundColor = [UIColor whiteColor]; 29 | 30 | self.remindLab = [[UILabel alloc] init]; 31 | self.remindLab.textColor = [UIColor blackColor]; 32 | self.remindLab.frame = CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 30); 33 | self.remindLab.backgroundColor = [UIColor clearColor]; 34 | self.remindLab.textAlignment = NSTextAlignmentCenter; 35 | [self.view addSubview:self.remindLab]; 36 | 37 | self.mapView = [[WGMapCommonView alloc] init]; 38 | CGFloat scale = WGWidth/320; 39 | self.mapView.transform = CGAffineTransformMakeScale(scale, scale);//宽高伸缩比例 40 | self.mapView.frame = CGRectMake(0, 0, WGWidth, WGWidth * 0.75); 41 | self.mapView.center = CGPointMake(WGWidth *0.5,WGHeight *0.5); 42 | 43 | self.mapView.pathFileName = @"guangDongPath.plist"; 44 | self.mapView.infoFileName = @"guangDongInfo.plist"; 45 | _mapView.clickEnable = YES; 46 | self.mapView.seletedAry = @[@"清远"]; 47 | 48 | [self.view addSubview:_mapView]; 49 | 50 | __weak typeof(self) weakSelf = self; 51 | _mapView.clickActionBlock = ^(NSString * _Nonnull place) { 52 | NSLog(@"点击了地图:%@", place); 53 | weakSelf.remindLab.text = place; 54 | }; 55 | 56 | if (self.mapView.seletedAry.count > 0) { 57 | self.remindLab.text = self.mapView.seletedAry[0]; 58 | } 59 | } 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /WGMap/GuangDong/guangDongInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/GuangDong/guangDongInfo.plist -------------------------------------------------------------------------------- /WGMap/GuangDong/guangDongPath.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/GuangDong/guangDongPath.plist -------------------------------------------------------------------------------- /WGMap/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIRequiredDeviceCapabilities 26 | 27 | armv7 28 | 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /WGMap/NeiMengGu/WGNeiMGViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WGNeiMGViewController.h 3 | // WGMap 4 | // 5 | // Created by wanggang on 2019/5/10. 6 | // Copyright © 2019 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WGNeiMGViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /WGMap/NeiMengGu/WGNeiMGViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGNeiMGViewController.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2019/5/10. 6 | // Copyright © 2019 bozhong. All rights reserved. 7 | // 8 | 9 | #define WGWidth [UIScreen mainScreen].bounds.size.width 10 | #define WGHeight [UIScreen mainScreen].bounds.size.height 11 | 12 | #import "WGNeiMGViewController.h" 13 | #import "WGMapCommonView.h" 14 | 15 | @interface WGNeiMGViewController () 16 | 17 | @property (nonatomic, strong) WGMapCommonView *mapView; 18 | @property (nonatomic, strong) UILabel *remindLab; 19 | 20 | @end 21 | 22 | @implementation WGNeiMGViewController 23 | 24 | - (void)viewDidLoad { 25 | [super viewDidLoad]; 26 | 27 | self.title = @"内蒙古地图"; 28 | self.view.backgroundColor = [UIColor whiteColor]; 29 | 30 | self.remindLab = [[UILabel alloc] init]; 31 | self.remindLab.textColor = [UIColor blackColor]; 32 | self.remindLab.frame = CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 30); 33 | self.remindLab.backgroundColor = [UIColor clearColor]; 34 | self.remindLab.textAlignment = NSTextAlignmentCenter; 35 | [self.view addSubview:self.remindLab]; 36 | 37 | self.mapView = [[WGMapCommonView alloc] init]; 38 | self.mapView.frame = CGRectMake(-220,200, WGWidth+220, WGWidth * 0.8); 39 | 40 | self.mapView.pathFileName = @"neimengguPath.plist"; 41 | self.mapView.infoFileName = @"neimengguInfo.plist"; 42 | _mapView.clickEnable = YES; 43 | self.mapView.seletedAry = @[@"呼伦贝尔"]; 44 | 45 | [self.view addSubview:_mapView]; 46 | 47 | __weak typeof(self) weakSelf = self; 48 | _mapView.clickActionBlock = ^(NSString * _Nonnull place) { 49 | NSLog(@"点击了地图:%@", place); 50 | weakSelf.remindLab.text = place; 51 | }; 52 | 53 | if (self.mapView.seletedAry.count > 0) { 54 | self.remindLab.text = self.mapView.seletedAry[0]; 55 | } 56 | } 57 | 58 | 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /WGMap/NeiMengGu/neimengguInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/NeiMengGu/neimengguInfo.plist -------------------------------------------------------------------------------- /WGMap/NeiMengGu/neimengguPath.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/NeiMengGu/neimengguPath.plist -------------------------------------------------------------------------------- /WGMap/SVG/china.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 13 | 17 | 21 | 25 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57 | 61 | 65 | 69 | 73 | 77 | 81 | 85 | 89 | 93 | 97 | 101 | 105 | 109 | 113 | 117 | 121 | 125 | 129 | 133 | 137 | 141 | -------------------------------------------------------------------------------- /WGMap/SVG/guangdong.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | ###湛江 6 | 10 | ###茂名 11 | 15 | ###阳江 16 | 20 | ###云浮 21 | 25 | ###江门 26 | 30 | ###肇庆 31 | 35 | ###佛山 36 | 40 | ###清远 41 | 45 | ###广州 46 | 50 | ###中山 51 | 55 | ###珠海 56 | 60 | ###深圳 61 | 65 | ###东莞 66 | 70 | ###韶关 71 | 75 | ###惠州 76 | 80 | ###河源 81 | 85 | ###汕尾 86 | 90 | ###梅州 91 | 95 | ###揭阳 96 | 100 | ###潮州 101 | 105 | ###汕头 106 | 110 | -------------------------------------------------------------------------------- /WGMap/SVG/neimenggu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /WGMap/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /WGMap/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #define WGWidth [UIScreen mainScreen].bounds.size.width 10 | #define WGHeight [UIScreen mainScreen].bounds.size.height 11 | 12 | #import "ViewController.h" 13 | #import "GuangDong/WGGuangDongViewController.h" 14 | #import "China/WGChinaMapViewController.h" 15 | #import "NeiMengGu/WGNeiMGViewController.h" 16 | 17 | @interface ViewController () 18 | 19 | @property (nonatomic, strong) UITableView *tableView; 20 | @property (nonatomic, strong) NSArray *dataArray; 21 | 22 | @end 23 | 24 | @implementation ViewController 25 | 26 | - (void)viewDidLoad { 27 | [super viewDidLoad]; 28 | 29 | self.title = @"ViewController"; 30 | self.view.backgroundColor = [UIColor whiteColor]; 31 | 32 | [self.view addSubview:self.tableView]; 33 | 34 | } 35 | 36 | #pragma mark - 37 | -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 38 | return 1; 39 | } 40 | 41 | -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 42 | return self.dataArray.count; 43 | } 44 | 45 | -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 46 | 47 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"]; 48 | cell.textLabel.text = self.dataArray[indexPath.row]; 49 | return cell; 50 | } 51 | 52 | -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 53 | 54 | if (indexPath.row == 0) { 55 | 56 | WGChinaMapViewController *vc = [[WGChinaMapViewController alloc] init]; 57 | [self.navigationController pushViewController:vc animated:YES]; 58 | 59 | }else if (indexPath.row == 1){ 60 | 61 | WGGuangDongViewController *vc = [[WGGuangDongViewController alloc] init]; 62 | [self.navigationController pushViewController:vc animated:YES]; 63 | 64 | }else{ 65 | 66 | WGNeiMGViewController *vc = [[WGNeiMGViewController alloc] init]; 67 | [self.navigationController pushViewController:vc animated:YES]; 68 | } 69 | } 70 | 71 | -(UITableView *)tableView{ 72 | if (!_tableView) { 73 | _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, WGWidth, WGHeight) style:UITableViewStylePlain]; 74 | _tableView.backgroundColor = [UIColor whiteColor]; 75 | _tableView.delegate = self; 76 | _tableView.dataSource = self; 77 | [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"]; 78 | } 79 | return _tableView; 80 | } 81 | 82 | -(NSArray *)dataArray{ 83 | if (!_dataArray) { 84 | _dataArray = @[@"全国地图", @"广东地图", @"内蒙古地图"]; 85 | } 86 | return _dataArray; 87 | } 88 | 89 | @end 90 | -------------------------------------------------------------------------------- /WGMap/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanggang1128/WGMapKit/4be2049c6f69858b26a2857e62f03a98aa1fe138/WGMap/demo.gif -------------------------------------------------------------------------------- /WGMap/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // WGMap 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WGMapCommonView.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | s.name = "WGMapCommonView" 4 | s.version = "1.0.1" 5 | s.summary = "中国地图(包括各个省),和广东省地图(包括各个市)工具" 6 | 7 | s.homepage = "https://github.com/wanggang1128/WGMapKit" 8 | s.license = "MIT" 9 | s.author = { "王刚" => "wxwangg@163.com" } 10 | 11 | s.platform = :ios 12 | s.ios.deployment_target = "8.0" 13 | 14 | s.source = { :git => "https://github.com/wanggang1128/WGMapKit.git", :tag => "#{s.version}" } 15 | 16 | s.source_files = "WGMap/MapTools/*.{h,m}" 17 | 18 | s.requires_arc = true 19 | s.frameworks = "UIKit" 20 | 21 | end 22 | -------------------------------------------------------------------------------- /WGMapTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /WGMapTests/WGMapTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGMapTests.m 3 | // WGMapTests 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WGMapTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation WGMapTests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | } 20 | 21 | - (void)tearDown { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | - (void)testExample { 26 | // This is an example of a functional test case. 27 | // Use XCTAssert and related functions to verify your tests produce the correct results. 28 | } 29 | 30 | - (void)testPerformanceExample { 31 | // This is an example of a performance test case. 32 | [self measureBlock:^{ 33 | // Put the code you want to measure the time of here. 34 | }]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /WGMapUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /WGMapUITests/WGMapUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // WGMapUITests.m 3 | // WGMapUITests 4 | // 5 | // Created by wanggang on 2018/11/28. 6 | // Copyright © 2018 bozhong. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WGMapUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation WGMapUITests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | 20 | // In UI tests it is usually best to stop immediately when a failure occurs. 21 | self.continueAfterFailure = NO; 22 | 23 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 24 | [[[XCUIApplication alloc] init] launch]; 25 | 26 | // 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. 27 | } 28 | 29 | - (void)tearDown { 30 | // Put teardown code here. This method is called after the invocation of each test method in the class. 31 | } 32 | 33 | - (void)testExample { 34 | // Use recording to get started writing UI tests. 35 | // Use XCTAssert and related functions to verify your tests produce the correct results. 36 | } 37 | 38 | @end 39 | --------------------------------------------------------------------------------