├── .swift-version ├── Example ├── PinCodeField.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── PinCodeField-Example.xcscheme ├── PinCodeField.xcworkspace │ └── contents.xcworkspacedata ├── PinCodeField │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── pattern.imageset │ │ │ ├── Contents.json │ │ │ └── congruent_pentagon.png │ ├── Info.plist │ └── ViewController.swift ├── Podfile ├── Podfile.lock ├── Pods │ ├── Local Podspecs │ │ └── PinCodeField.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ ├── project.pbxproj │ │ └── xcuserdata │ │ │ └── nestor.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── PinCodeField.xcscheme │ │ │ ├── Pods-PinCodeField_Example.xcscheme │ │ │ ├── Pods-PinCodeField_Tests.xcscheme │ │ │ └── xcschememanagement.plist │ └── Target Support Files │ │ ├── PinCodeField │ │ ├── Info.plist │ │ ├── PinCodeField-dummy.m │ │ ├── PinCodeField-prefix.pch │ │ ├── PinCodeField-umbrella.h │ │ ├── PinCodeField.modulemap │ │ └── PinCodeField.xcconfig │ │ ├── Pods-PinCodeField_Example │ │ ├── Info.plist │ │ ├── Pods-PinCodeField_Example-acknowledgements.markdown │ │ ├── Pods-PinCodeField_Example-acknowledgements.plist │ │ ├── Pods-PinCodeField_Example-dummy.m │ │ ├── Pods-PinCodeField_Example-frameworks.sh │ │ ├── Pods-PinCodeField_Example-resources.sh │ │ ├── Pods-PinCodeField_Example-umbrella.h │ │ ├── Pods-PinCodeField_Example.debug.xcconfig │ │ ├── Pods-PinCodeField_Example.modulemap │ │ └── Pods-PinCodeField_Example.release.xcconfig │ │ └── Pods-PinCodeField_Tests │ │ ├── Info.plist │ │ ├── Pods-PinCodeField_Tests-acknowledgements.markdown │ │ ├── Pods-PinCodeField_Tests-acknowledgements.plist │ │ ├── Pods-PinCodeField_Tests-dummy.m │ │ ├── Pods-PinCodeField_Tests-frameworks.sh │ │ ├── Pods-PinCodeField_Tests-resources.sh │ │ ├── Pods-PinCodeField_Tests-umbrella.h │ │ ├── Pods-PinCodeField_Tests.debug.xcconfig │ │ ├── Pods-PinCodeField_Tests.modulemap │ │ └── Pods-PinCodeField_Tests.release.xcconfig └── Tests │ ├── Info.plist │ └── Tests.swift ├── LICENSE ├── PinCodeField.podspec ├── PinCodeField ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ └── PinCodeField.swift ├── README.md └── _Pods.xcodeproj /.swift-version: -------------------------------------------------------------------------------- 1 | 4.0 2 | -------------------------------------------------------------------------------- /Example/PinCodeField.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2D9331A8907366FD30EE7EC8 /* Pods_PinCodeField_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A0BDA61AC3688B70F9D2A6A /* Pods_PinCodeField_Example.framework */; }; 11 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 12 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 13 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 14 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 15 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 16 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; 17 | 739CFFBFFD5112955101B72D /* Pods_PinCodeField_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2DD7264AA7243BD8481A1C4 /* Pods_PinCodeField_Tests.framework */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 607FACC81AFB9204008FA782 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 607FACCF1AFB9204008FA782; 26 | remoteInfo = PinCodeField; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 33DD278EE6F7D58963134CA9 /* PinCodeField.podspec */ = {isa = PBXFileReference; includeInIndex = 1; name = PinCodeField.podspec; path = ../PinCodeField.podspec; sourceTree = ""; }; 32 | 4BAAD9D2369D7085441DF6C2 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; name = README.md; path = ../README.md; sourceTree = ""; }; 33 | 4D793B55BE49133EDB3312A4 /* Pods-PinCodeField_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PinCodeField_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.release.xcconfig"; sourceTree = ""; }; 34 | 57F0772ABAB16B711110CBAA /* Pods-PinCodeField_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PinCodeField_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.debug.xcconfig"; sourceTree = ""; }; 35 | 5A0BDA61AC3688B70F9D2A6A /* Pods_PinCodeField_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PinCodeField_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 607FACD01AFB9204008FA782 /* PinCodeField_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PinCodeField_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 39 | 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 40 | 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 41 | 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 42 | 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 43 | 607FACE51AFB9204008FA782 /* PinCodeField_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PinCodeField_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 45 | 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 46 | AC4BC67561B04C06CB62BB94 /* Pods-PinCodeField_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PinCodeField_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.release.xcconfig"; sourceTree = ""; }; 47 | B2DD7264AA7243BD8481A1C4 /* Pods_PinCodeField_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PinCodeField_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | D1E7475CCF5589D52E907160 /* Pods-PinCodeField_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PinCodeField_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.debug.xcconfig"; sourceTree = ""; }; 49 | EB32AAE400F04F63C0809F3A /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 50 | /* End PBXFileReference section */ 51 | 52 | /* Begin PBXFrameworksBuildPhase section */ 53 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 54 | isa = PBXFrameworksBuildPhase; 55 | buildActionMask = 2147483647; 56 | files = ( 57 | 2D9331A8907366FD30EE7EC8 /* Pods_PinCodeField_Example.framework in Frameworks */, 58 | ); 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 62 | isa = PBXFrameworksBuildPhase; 63 | buildActionMask = 2147483647; 64 | files = ( 65 | 739CFFBFFD5112955101B72D /* Pods_PinCodeField_Tests.framework in Frameworks */, 66 | ); 67 | runOnlyForDeploymentPostprocessing = 0; 68 | }; 69 | /* End PBXFrameworksBuildPhase section */ 70 | 71 | /* Begin PBXGroup section */ 72 | 5E1792A67E3C19E67604A7C2 /* Pods */ = { 73 | isa = PBXGroup; 74 | children = ( 75 | 57F0772ABAB16B711110CBAA /* Pods-PinCodeField_Example.debug.xcconfig */, 76 | 4D793B55BE49133EDB3312A4 /* Pods-PinCodeField_Example.release.xcconfig */, 77 | D1E7475CCF5589D52E907160 /* Pods-PinCodeField_Tests.debug.xcconfig */, 78 | AC4BC67561B04C06CB62BB94 /* Pods-PinCodeField_Tests.release.xcconfig */, 79 | ); 80 | name = Pods; 81 | sourceTree = ""; 82 | }; 83 | 607FACC71AFB9204008FA782 = { 84 | isa = PBXGroup; 85 | children = ( 86 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 87 | 607FACD21AFB9204008FA782 /* Example for PinCodeField */, 88 | 607FACE81AFB9204008FA782 /* Tests */, 89 | 607FACD11AFB9204008FA782 /* Products */, 90 | 5E1792A67E3C19E67604A7C2 /* Pods */, 91 | 8CE9E1D94CA7E6DEA1FCC4D4 /* Frameworks */, 92 | ); 93 | sourceTree = ""; 94 | }; 95 | 607FACD11AFB9204008FA782 /* Products */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | 607FACD01AFB9204008FA782 /* PinCodeField_Example.app */, 99 | 607FACE51AFB9204008FA782 /* PinCodeField_Tests.xctest */, 100 | ); 101 | name = Products; 102 | sourceTree = ""; 103 | }; 104 | 607FACD21AFB9204008FA782 /* Example for PinCodeField */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 108 | 607FACD71AFB9204008FA782 /* ViewController.swift */, 109 | 607FACD91AFB9204008FA782 /* Main.storyboard */, 110 | 607FACDC1AFB9204008FA782 /* Images.xcassets */, 111 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 112 | 607FACD31AFB9204008FA782 /* Supporting Files */, 113 | ); 114 | name = "Example for PinCodeField"; 115 | path = PinCodeField; 116 | sourceTree = ""; 117 | }; 118 | 607FACD31AFB9204008FA782 /* Supporting Files */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | 607FACD41AFB9204008FA782 /* Info.plist */, 122 | ); 123 | name = "Supporting Files"; 124 | sourceTree = ""; 125 | }; 126 | 607FACE81AFB9204008FA782 /* Tests */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | 607FACEB1AFB9204008FA782 /* Tests.swift */, 130 | 607FACE91AFB9204008FA782 /* Supporting Files */, 131 | ); 132 | path = Tests; 133 | sourceTree = ""; 134 | }; 135 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 136 | isa = PBXGroup; 137 | children = ( 138 | 607FACEA1AFB9204008FA782 /* Info.plist */, 139 | ); 140 | name = "Supporting Files"; 141 | sourceTree = ""; 142 | }; 143 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 33DD278EE6F7D58963134CA9 /* PinCodeField.podspec */, 147 | 4BAAD9D2369D7085441DF6C2 /* README.md */, 148 | EB32AAE400F04F63C0809F3A /* LICENSE */, 149 | ); 150 | name = "Podspec Metadata"; 151 | sourceTree = ""; 152 | }; 153 | 8CE9E1D94CA7E6DEA1FCC4D4 /* Frameworks */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 5A0BDA61AC3688B70F9D2A6A /* Pods_PinCodeField_Example.framework */, 157 | B2DD7264AA7243BD8481A1C4 /* Pods_PinCodeField_Tests.framework */, 158 | ); 159 | name = Frameworks; 160 | sourceTree = ""; 161 | }; 162 | /* End PBXGroup section */ 163 | 164 | /* Begin PBXNativeTarget section */ 165 | 607FACCF1AFB9204008FA782 /* PinCodeField_Example */ = { 166 | isa = PBXNativeTarget; 167 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "PinCodeField_Example" */; 168 | buildPhases = ( 169 | CFB2A4DAF9E5EB2C9238B4A5 /* [CP] Check Pods Manifest.lock */, 170 | 607FACCC1AFB9204008FA782 /* Sources */, 171 | 607FACCD1AFB9204008FA782 /* Frameworks */, 172 | 607FACCE1AFB9204008FA782 /* Resources */, 173 | 5E86696297A5F7372901FA8B /* [CP] Embed Pods Frameworks */, 174 | 6DEFD318AD4253D8D55E7270 /* [CP] Copy Pods Resources */, 175 | ); 176 | buildRules = ( 177 | ); 178 | dependencies = ( 179 | ); 180 | name = PinCodeField_Example; 181 | productName = PinCodeField; 182 | productReference = 607FACD01AFB9204008FA782 /* PinCodeField_Example.app */; 183 | productType = "com.apple.product-type.application"; 184 | }; 185 | 607FACE41AFB9204008FA782 /* PinCodeField_Tests */ = { 186 | isa = PBXNativeTarget; 187 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "PinCodeField_Tests" */; 188 | buildPhases = ( 189 | A69529C92E31C83428F40F7F /* [CP] Check Pods Manifest.lock */, 190 | 607FACE11AFB9204008FA782 /* Sources */, 191 | 607FACE21AFB9204008FA782 /* Frameworks */, 192 | 607FACE31AFB9204008FA782 /* Resources */, 193 | 3B02095606FC12FEDFC8FBEB /* [CP] Embed Pods Frameworks */, 194 | CAAF31EB864453E1DCC5FCBA /* [CP] Copy Pods Resources */, 195 | ); 196 | buildRules = ( 197 | ); 198 | dependencies = ( 199 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */, 200 | ); 201 | name = PinCodeField_Tests; 202 | productName = Tests; 203 | productReference = 607FACE51AFB9204008FA782 /* PinCodeField_Tests.xctest */; 204 | productType = "com.apple.product-type.bundle.unit-test"; 205 | }; 206 | /* End PBXNativeTarget section */ 207 | 208 | /* Begin PBXProject section */ 209 | 607FACC81AFB9204008FA782 /* Project object */ = { 210 | isa = PBXProject; 211 | attributes = { 212 | LastSwiftUpdateCheck = 0830; 213 | LastUpgradeCheck = 0830; 214 | ORGANIZATIONNAME = CocoaPods; 215 | TargetAttributes = { 216 | 607FACCF1AFB9204008FA782 = { 217 | CreatedOnToolsVersion = 6.3.1; 218 | LastSwiftMigration = 0900; 219 | }; 220 | 607FACE41AFB9204008FA782 = { 221 | CreatedOnToolsVersion = 6.3.1; 222 | LastSwiftMigration = 0900; 223 | TestTargetID = 607FACCF1AFB9204008FA782; 224 | }; 225 | }; 226 | }; 227 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "PinCodeField" */; 228 | compatibilityVersion = "Xcode 3.2"; 229 | developmentRegion = English; 230 | hasScannedForEncodings = 0; 231 | knownRegions = ( 232 | en, 233 | Base, 234 | ); 235 | mainGroup = 607FACC71AFB9204008FA782; 236 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 237 | projectDirPath = ""; 238 | projectRoot = ""; 239 | targets = ( 240 | 607FACCF1AFB9204008FA782 /* PinCodeField_Example */, 241 | 607FACE41AFB9204008FA782 /* PinCodeField_Tests */, 242 | ); 243 | }; 244 | /* End PBXProject section */ 245 | 246 | /* Begin PBXResourcesBuildPhase section */ 247 | 607FACCE1AFB9204008FA782 /* Resources */ = { 248 | isa = PBXResourcesBuildPhase; 249 | buildActionMask = 2147483647; 250 | files = ( 251 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, 252 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 253 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 254 | ); 255 | runOnlyForDeploymentPostprocessing = 0; 256 | }; 257 | 607FACE31AFB9204008FA782 /* Resources */ = { 258 | isa = PBXResourcesBuildPhase; 259 | buildActionMask = 2147483647; 260 | files = ( 261 | ); 262 | runOnlyForDeploymentPostprocessing = 0; 263 | }; 264 | /* End PBXResourcesBuildPhase section */ 265 | 266 | /* Begin PBXShellScriptBuildPhase section */ 267 | 3B02095606FC12FEDFC8FBEB /* [CP] Embed Pods Frameworks */ = { 268 | isa = PBXShellScriptBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | ); 272 | inputPaths = ( 273 | ); 274 | name = "[CP] Embed Pods Frameworks"; 275 | outputPaths = ( 276 | ); 277 | runOnlyForDeploymentPostprocessing = 0; 278 | shellPath = /bin/sh; 279 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-frameworks.sh\"\n"; 280 | showEnvVarsInLog = 0; 281 | }; 282 | 5E86696297A5F7372901FA8B /* [CP] Embed Pods Frameworks */ = { 283 | isa = PBXShellScriptBuildPhase; 284 | buildActionMask = 2147483647; 285 | files = ( 286 | ); 287 | inputPaths = ( 288 | "${SRCROOT}/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-frameworks.sh", 289 | "${BUILT_PRODUCTS_DIR}/PinCodeField/PinCodeField.framework", 290 | ); 291 | name = "[CP] Embed Pods Frameworks"; 292 | outputPaths = ( 293 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PinCodeField.framework", 294 | ); 295 | runOnlyForDeploymentPostprocessing = 0; 296 | shellPath = /bin/sh; 297 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-frameworks.sh\"\n"; 298 | showEnvVarsInLog = 0; 299 | }; 300 | 6DEFD318AD4253D8D55E7270 /* [CP] Copy Pods Resources */ = { 301 | isa = PBXShellScriptBuildPhase; 302 | buildActionMask = 2147483647; 303 | files = ( 304 | ); 305 | inputPaths = ( 306 | ); 307 | name = "[CP] Copy Pods Resources"; 308 | outputPaths = ( 309 | ); 310 | runOnlyForDeploymentPostprocessing = 0; 311 | shellPath = /bin/sh; 312 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-resources.sh\"\n"; 313 | showEnvVarsInLog = 0; 314 | }; 315 | A69529C92E31C83428F40F7F /* [CP] Check Pods Manifest.lock */ = { 316 | isa = PBXShellScriptBuildPhase; 317 | buildActionMask = 2147483647; 318 | files = ( 319 | ); 320 | inputPaths = ( 321 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 322 | "${PODS_ROOT}/Manifest.lock", 323 | ); 324 | name = "[CP] Check Pods Manifest.lock"; 325 | outputPaths = ( 326 | "$(DERIVED_FILE_DIR)/Pods-PinCodeField_Tests-checkManifestLockResult.txt", 327 | ); 328 | runOnlyForDeploymentPostprocessing = 0; 329 | shellPath = /bin/sh; 330 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 331 | showEnvVarsInLog = 0; 332 | }; 333 | CAAF31EB864453E1DCC5FCBA /* [CP] Copy Pods Resources */ = { 334 | isa = PBXShellScriptBuildPhase; 335 | buildActionMask = 2147483647; 336 | files = ( 337 | ); 338 | inputPaths = ( 339 | ); 340 | name = "[CP] Copy Pods Resources"; 341 | outputPaths = ( 342 | ); 343 | runOnlyForDeploymentPostprocessing = 0; 344 | shellPath = /bin/sh; 345 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-resources.sh\"\n"; 346 | showEnvVarsInLog = 0; 347 | }; 348 | CFB2A4DAF9E5EB2C9238B4A5 /* [CP] Check Pods Manifest.lock */ = { 349 | isa = PBXShellScriptBuildPhase; 350 | buildActionMask = 2147483647; 351 | files = ( 352 | ); 353 | inputPaths = ( 354 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 355 | "${PODS_ROOT}/Manifest.lock", 356 | ); 357 | name = "[CP] Check Pods Manifest.lock"; 358 | outputPaths = ( 359 | "$(DERIVED_FILE_DIR)/Pods-PinCodeField_Example-checkManifestLockResult.txt", 360 | ); 361 | runOnlyForDeploymentPostprocessing = 0; 362 | shellPath = /bin/sh; 363 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 364 | showEnvVarsInLog = 0; 365 | }; 366 | /* End PBXShellScriptBuildPhase section */ 367 | 368 | /* Begin PBXSourcesBuildPhase section */ 369 | 607FACCC1AFB9204008FA782 /* Sources */ = { 370 | isa = PBXSourcesBuildPhase; 371 | buildActionMask = 2147483647; 372 | files = ( 373 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 374 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 375 | ); 376 | runOnlyForDeploymentPostprocessing = 0; 377 | }; 378 | 607FACE11AFB9204008FA782 /* Sources */ = { 379 | isa = PBXSourcesBuildPhase; 380 | buildActionMask = 2147483647; 381 | files = ( 382 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, 383 | ); 384 | runOnlyForDeploymentPostprocessing = 0; 385 | }; 386 | /* End PBXSourcesBuildPhase section */ 387 | 388 | /* Begin PBXTargetDependency section */ 389 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { 390 | isa = PBXTargetDependency; 391 | target = 607FACCF1AFB9204008FA782 /* PinCodeField_Example */; 392 | targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; 393 | }; 394 | /* End PBXTargetDependency section */ 395 | 396 | /* Begin PBXVariantGroup section */ 397 | 607FACD91AFB9204008FA782 /* Main.storyboard */ = { 398 | isa = PBXVariantGroup; 399 | children = ( 400 | 607FACDA1AFB9204008FA782 /* Base */, 401 | ); 402 | name = Main.storyboard; 403 | sourceTree = ""; 404 | }; 405 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { 406 | isa = PBXVariantGroup; 407 | children = ( 408 | 607FACDF1AFB9204008FA782 /* Base */, 409 | ); 410 | name = LaunchScreen.xib; 411 | sourceTree = ""; 412 | }; 413 | /* End PBXVariantGroup section */ 414 | 415 | /* Begin XCBuildConfiguration section */ 416 | 607FACED1AFB9204008FA782 /* Debug */ = { 417 | isa = XCBuildConfiguration; 418 | buildSettings = { 419 | ALWAYS_SEARCH_USER_PATHS = NO; 420 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 421 | CLANG_CXX_LIBRARY = "libc++"; 422 | CLANG_ENABLE_MODULES = YES; 423 | CLANG_ENABLE_OBJC_ARC = YES; 424 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 425 | CLANG_WARN_BOOL_CONVERSION = YES; 426 | CLANG_WARN_COMMA = YES; 427 | CLANG_WARN_CONSTANT_CONVERSION = YES; 428 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 429 | CLANG_WARN_EMPTY_BODY = YES; 430 | CLANG_WARN_ENUM_CONVERSION = YES; 431 | CLANG_WARN_INFINITE_RECURSION = YES; 432 | CLANG_WARN_INT_CONVERSION = YES; 433 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 434 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 435 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 436 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 437 | CLANG_WARN_STRICT_PROTOTYPES = YES; 438 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 439 | CLANG_WARN_UNREACHABLE_CODE = YES; 440 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 441 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 442 | COPY_PHASE_STRIP = NO; 443 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 444 | ENABLE_STRICT_OBJC_MSGSEND = YES; 445 | ENABLE_TESTABILITY = YES; 446 | GCC_C_LANGUAGE_STANDARD = gnu99; 447 | GCC_DYNAMIC_NO_PIC = NO; 448 | GCC_NO_COMMON_BLOCKS = YES; 449 | GCC_OPTIMIZATION_LEVEL = 0; 450 | GCC_PREPROCESSOR_DEFINITIONS = ( 451 | "DEBUG=1", 452 | "$(inherited)", 453 | ); 454 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 455 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 456 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 457 | GCC_WARN_UNDECLARED_SELECTOR = YES; 458 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 459 | GCC_WARN_UNUSED_FUNCTION = YES; 460 | GCC_WARN_UNUSED_VARIABLE = YES; 461 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 462 | MTL_ENABLE_DEBUG_INFO = YES; 463 | ONLY_ACTIVE_ARCH = YES; 464 | SDKROOT = iphoneos; 465 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 466 | }; 467 | name = Debug; 468 | }; 469 | 607FACEE1AFB9204008FA782 /* Release */ = { 470 | isa = XCBuildConfiguration; 471 | buildSettings = { 472 | ALWAYS_SEARCH_USER_PATHS = NO; 473 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 474 | CLANG_CXX_LIBRARY = "libc++"; 475 | CLANG_ENABLE_MODULES = YES; 476 | CLANG_ENABLE_OBJC_ARC = YES; 477 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 478 | CLANG_WARN_BOOL_CONVERSION = YES; 479 | CLANG_WARN_COMMA = YES; 480 | CLANG_WARN_CONSTANT_CONVERSION = YES; 481 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 482 | CLANG_WARN_EMPTY_BODY = YES; 483 | CLANG_WARN_ENUM_CONVERSION = YES; 484 | CLANG_WARN_INFINITE_RECURSION = YES; 485 | CLANG_WARN_INT_CONVERSION = YES; 486 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 487 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 488 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 489 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 490 | CLANG_WARN_STRICT_PROTOTYPES = YES; 491 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 492 | CLANG_WARN_UNREACHABLE_CODE = YES; 493 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 494 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 495 | COPY_PHASE_STRIP = NO; 496 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 497 | ENABLE_NS_ASSERTIONS = NO; 498 | ENABLE_STRICT_OBJC_MSGSEND = YES; 499 | GCC_C_LANGUAGE_STANDARD = gnu99; 500 | GCC_NO_COMMON_BLOCKS = YES; 501 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 502 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 503 | GCC_WARN_UNDECLARED_SELECTOR = YES; 504 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 505 | GCC_WARN_UNUSED_FUNCTION = YES; 506 | GCC_WARN_UNUSED_VARIABLE = YES; 507 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 508 | MTL_ENABLE_DEBUG_INFO = NO; 509 | SDKROOT = iphoneos; 510 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 511 | VALIDATE_PRODUCT = YES; 512 | }; 513 | name = Release; 514 | }; 515 | 607FACF01AFB9204008FA782 /* Debug */ = { 516 | isa = XCBuildConfiguration; 517 | baseConfigurationReference = 57F0772ABAB16B711110CBAA /* Pods-PinCodeField_Example.debug.xcconfig */; 518 | buildSettings = { 519 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 520 | INFOPLIST_FILE = PinCodeField/Info.plist; 521 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 522 | MODULE_NAME = ExampleApp; 523 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 524 | PRODUCT_NAME = "$(TARGET_NAME)"; 525 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 526 | SWIFT_VERSION = 4.0; 527 | }; 528 | name = Debug; 529 | }; 530 | 607FACF11AFB9204008FA782 /* Release */ = { 531 | isa = XCBuildConfiguration; 532 | baseConfigurationReference = 4D793B55BE49133EDB3312A4 /* Pods-PinCodeField_Example.release.xcconfig */; 533 | buildSettings = { 534 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 535 | INFOPLIST_FILE = PinCodeField/Info.plist; 536 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 537 | MODULE_NAME = ExampleApp; 538 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 539 | PRODUCT_NAME = "$(TARGET_NAME)"; 540 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 541 | SWIFT_VERSION = 4.0; 542 | }; 543 | name = Release; 544 | }; 545 | 607FACF31AFB9204008FA782 /* Debug */ = { 546 | isa = XCBuildConfiguration; 547 | baseConfigurationReference = D1E7475CCF5589D52E907160 /* Pods-PinCodeField_Tests.debug.xcconfig */; 548 | buildSettings = { 549 | FRAMEWORK_SEARCH_PATHS = ( 550 | "$(SDKROOT)/Developer/Library/Frameworks", 551 | "$(inherited)", 552 | ); 553 | GCC_PREPROCESSOR_DEFINITIONS = ( 554 | "DEBUG=1", 555 | "$(inherited)", 556 | ); 557 | INFOPLIST_FILE = Tests/Info.plist; 558 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 559 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 560 | PRODUCT_NAME = "$(TARGET_NAME)"; 561 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 562 | SWIFT_VERSION = 4.0; 563 | }; 564 | name = Debug; 565 | }; 566 | 607FACF41AFB9204008FA782 /* Release */ = { 567 | isa = XCBuildConfiguration; 568 | baseConfigurationReference = AC4BC67561B04C06CB62BB94 /* Pods-PinCodeField_Tests.release.xcconfig */; 569 | buildSettings = { 570 | FRAMEWORK_SEARCH_PATHS = ( 571 | "$(SDKROOT)/Developer/Library/Frameworks", 572 | "$(inherited)", 573 | ); 574 | INFOPLIST_FILE = Tests/Info.plist; 575 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 576 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 577 | PRODUCT_NAME = "$(TARGET_NAME)"; 578 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 579 | SWIFT_VERSION = 4.0; 580 | }; 581 | name = Release; 582 | }; 583 | /* End XCBuildConfiguration section */ 584 | 585 | /* Begin XCConfigurationList section */ 586 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "PinCodeField" */ = { 587 | isa = XCConfigurationList; 588 | buildConfigurations = ( 589 | 607FACED1AFB9204008FA782 /* Debug */, 590 | 607FACEE1AFB9204008FA782 /* Release */, 591 | ); 592 | defaultConfigurationIsVisible = 0; 593 | defaultConfigurationName = Release; 594 | }; 595 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "PinCodeField_Example" */ = { 596 | isa = XCConfigurationList; 597 | buildConfigurations = ( 598 | 607FACF01AFB9204008FA782 /* Debug */, 599 | 607FACF11AFB9204008FA782 /* Release */, 600 | ); 601 | defaultConfigurationIsVisible = 0; 602 | defaultConfigurationName = Release; 603 | }; 604 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "PinCodeField_Tests" */ = { 605 | isa = XCConfigurationList; 606 | buildConfigurations = ( 607 | 607FACF31AFB9204008FA782 /* Debug */, 608 | 607FACF41AFB9204008FA782 /* Release */, 609 | ); 610 | defaultConfigurationIsVisible = 0; 611 | defaultConfigurationName = Release; 612 | }; 613 | /* End XCConfigurationList section */ 614 | }; 615 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 616 | } 617 | -------------------------------------------------------------------------------- /Example/PinCodeField.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/PinCodeField.xcodeproj/xcshareddata/xcschemes/PinCodeField-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 48 | 54 | 55 | 56 | 57 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 80 | 82 | 88 | 89 | 90 | 91 | 92 | 93 | 99 | 101 | 107 | 108 | 109 | 110 | 112 | 113 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /Example/PinCodeField.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/PinCodeField/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // PinCodeField 4 | // 5 | // Created by nestorpopko on 11/25/2017. 6 | // Copyright (c) 2017 nestorpopko. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Example/PinCodeField/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Example/PinCodeField/Base.lproj/Main.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 | 27 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /Example/PinCodeField/Images.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" : "ios-marketing", 45 | "size" : "1024x1024", 46 | "scale" : "1x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } -------------------------------------------------------------------------------- /Example/PinCodeField/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Example/PinCodeField/Images.xcassets/pattern.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "congruent_pentagon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Example/PinCodeField/Images.xcassets/pattern.imageset/congruent_pentagon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nestor-huma/PinCodeField/40e7575fdc0745fdb7b71dd3802c7cf244d7c92c/Example/PinCodeField/Images.xcassets/pattern.imageset/congruent_pentagon.png -------------------------------------------------------------------------------- /Example/PinCodeField/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Example/PinCodeField/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // PinCodeField 4 | // 5 | // Created by nestorpopko on 11/25/2017. 6 | // Copyright (c) 2017 nestorpopko. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import PinCodeField 11 | 12 | class ViewController: UIViewController { 13 | 14 | @IBOutlet var pinCodeField: PinCodeField! 15 | 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | self.view.backgroundColor = UIColor(patternImage: UIImage(named: "pattern")!) 19 | } 20 | 21 | override func viewDidAppear(_ animated: Bool) { 22 | super.viewDidAppear(animated) 23 | pinCodeField.becomeFirstResponder() 24 | } 25 | 26 | override func touchesBegan(_ touches: Set, with event: UIEvent?) { 27 | super.touchesBegan(touches, with: event) 28 | pinCodeField.resignFirstResponder() 29 | } 30 | 31 | @IBAction func pinCodeChanged(_ sender: PinCodeField) { 32 | print("Pin code changed: " + sender.text) 33 | if sender.isFilled { 34 | sender.resignFirstResponder() 35 | print("Pin code entered.") 36 | } 37 | } 38 | 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'PinCodeField_Example' do 4 | pod 'PinCodeField', :path => '../' 5 | 6 | target 'PinCodeField_Tests' do 7 | inherit! :search_paths 8 | 9 | 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - PinCodeField (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - PinCodeField (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | PinCodeField: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | PinCodeField: dfe633b7f22950005818a2ddef50b46e5e3b26c2 13 | 14 | PODFILE CHECKSUM: 470f7a94518dc3ef1242723d32ed7127a545aa52 15 | 16 | COCOAPODS: 1.4.0.beta.2 17 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/PinCodeField.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PinCodeField", 3 | "version": "0.1.0", 4 | "summary": "A short description of PinCodeField.", 5 | "description": "TODO: Add long description of the pod here.", 6 | "homepage": "https://github.com/nestorpopko/PinCodeField", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "nestorpopko": "nestorpopko@gmail.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/nestorpopko/PinCodeField.git", 16 | "tag": "0.1.0" 17 | }, 18 | "platforms": { 19 | "ios": "8.0" 20 | }, 21 | "source_files": "PinCodeField/Classes/**/*" 22 | } 23 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - PinCodeField (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - PinCodeField (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | PinCodeField: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | PinCodeField: dfe633b7f22950005818a2ddef50b46e5e3b26c2 13 | 14 | PODFILE CHECKSUM: 470f7a94518dc3ef1242723d32ed7127a545aa52 15 | 16 | COCOAPODS: 1.4.0.beta.2 17 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2F33BE5ABBE2CC9467563B4E919D0549 /* PinCodeField-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D04D7AD357441AA19EE5FAD2DCDBBDBE /* PinCodeField-dummy.m */; }; 11 | 479FA09C9CFCFC8EC918313C218AF26E /* Pods-PinCodeField_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C893F910AB6FDAD523EFF997B89A6758 /* Pods-PinCodeField_Example-dummy.m */; }; 12 | 508961B624300A397E25E5C16E05E445 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; 13 | 64506ECF129C899EE61C842EAC56A200 /* PinCodeField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F36671A97706980E7004E5C7397DC6D /* PinCodeField.swift */; }; 14 | 991D2DA80AA13ABBA4737F1983C13848 /* Pods-PinCodeField_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C43489DF35AB39B255E04C25FE0D68E6 /* Pods-PinCodeField_Tests-dummy.m */; }; 15 | C87D1560B3AA09D3D472990442A5CCD7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; 16 | D6E2630E4301875709673AD2E9198EC4 /* PinCodeField-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BFB83BEDA00FFFBFF5DA5644E74F2613 /* PinCodeField-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | E7D226E109222EDC9A0A93FF575C3AAC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */; }; 18 | E9AA1713B5FABD585766A1F472B9D98D /* Pods-PinCodeField_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FAFB04F5F7881FE53307A222D70E8139 /* Pods-PinCodeField_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 19 | FC754AA1BC94DC87145FC04138925D46 /* Pods-PinCodeField_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C06844B6B6D9D9884938E75FD72D104E /* Pods-PinCodeField_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 20 | /* End PBXBuildFile section */ 21 | 22 | /* Begin PBXContainerItemProxy section */ 23 | EF74017889B0F4EB479390CDBBD3DC27 /* PBXContainerItemProxy */ = { 24 | isa = PBXContainerItemProxy; 25 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 26 | proxyType = 1; 27 | remoteGlobalIDString = 586C9D7BA2501B2CBCB73E3CC93E6011; 28 | remoteInfo = PinCodeField; 29 | }; 30 | /* End PBXContainerItemProxy section */ 31 | 32 | /* Begin PBXFileReference section */ 33 | 04700333298D08F1E27B9D68FEC5790B /* Pods-PinCodeField_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinCodeField_Example.debug.xcconfig"; sourceTree = ""; }; 34 | 0C7CB0BCEF14E4474092AE58A5DCD589 /* Pods-PinCodeField_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinCodeField_Tests.debug.xcconfig"; sourceTree = ""; }; 35 | 2ECED303CB5A6B2077DD91BD58AD4069 /* Pods-PinCodeField_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PinCodeField_Example-acknowledgements.markdown"; sourceTree = ""; }; 36 | 39C546DF78C20DE194F2A11FCC5667FD /* PinCodeField.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PinCodeField.framework; path = PinCodeField.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 4C6C4C40BAD4652EE5B8446806427608 /* PinCodeField.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PinCodeField.xcconfig; sourceTree = ""; }; 38 | 4D9FF17E8AFCE6238EBDA2D5889FD825 /* PinCodeField.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = PinCodeField.modulemap; sourceTree = ""; }; 39 | 51144EA449718A452D3A361817E415FD /* Pods-PinCodeField_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PinCodeField_Tests-acknowledgements.plist"; sourceTree = ""; }; 40 | 5186C49296377FF56E7C1A38EC6EB656 /* Pods-PinCodeField_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinCodeField_Example-frameworks.sh"; sourceTree = ""; }; 41 | 59B898B6F033F5DC52A110A32232003F /* Pods-PinCodeField_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PinCodeField_Example-acknowledgements.plist"; sourceTree = ""; }; 42 | 5AB2E080990E3C2D88F7B5CFBF20DA15 /* Pods_PinCodeField_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PinCodeField_Example.framework; path = "Pods-PinCodeField_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 5F36671A97706980E7004E5C7397DC6D /* PinCodeField.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PinCodeField.swift; path = PinCodeField/Classes/PinCodeField.swift; sourceTree = ""; }; 44 | 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 45 | 6C683C850C99E9D9EC6867ADFBCB367C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | 6DE56388116E3A412FA841C6F9E480FF /* Pods-PinCodeField_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinCodeField_Tests-frameworks.sh"; sourceTree = ""; }; 47 | 6F382E5C88B0B4507E8B01E473064802 /* Pods-PinCodeField_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-PinCodeField_Tests.modulemap"; sourceTree = ""; }; 48 | 75B5E213745FE076B7722D57EB7DF9B3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 49 | 7F56AA14D3F74468FB4555F42E7781D0 /* Pods_PinCodeField_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PinCodeField_Tests.framework; path = "Pods-PinCodeField_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 50 | 832124DD02AC7542FA3ECD05CE57E63B /* Pods-PinCodeField_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-PinCodeField_Example.modulemap"; sourceTree = ""; }; 51 | 84FD995FB0BB6A8B5BE943155EB7874F /* Pods-PinCodeField_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinCodeField_Example-resources.sh"; sourceTree = ""; }; 52 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 53 | 9C0DB9412BBD39D2B7B47D78CBDD75BB /* Pods-PinCodeField_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PinCodeField_Tests-acknowledgements.markdown"; sourceTree = ""; }; 54 | B6C0B03A6233B92045BCE121F8BD2EBB /* Pods-PinCodeField_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PinCodeField_Tests-resources.sh"; sourceTree = ""; }; 55 | BFB83BEDA00FFFBFF5DA5644E74F2613 /* PinCodeField-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinCodeField-umbrella.h"; sourceTree = ""; }; 56 | C06844B6B6D9D9884938E75FD72D104E /* Pods-PinCodeField_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PinCodeField_Example-umbrella.h"; sourceTree = ""; }; 57 | C43489DF35AB39B255E04C25FE0D68E6 /* Pods-PinCodeField_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PinCodeField_Tests-dummy.m"; sourceTree = ""; }; 58 | C893F910AB6FDAD523EFF997B89A6758 /* Pods-PinCodeField_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PinCodeField_Example-dummy.m"; sourceTree = ""; }; 59 | C92AA0CD989DD7F576E8EA80A4473516 /* PinCodeField-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PinCodeField-prefix.pch"; sourceTree = ""; }; 60 | D04D7AD357441AA19EE5FAD2DCDBBDBE /* PinCodeField-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PinCodeField-dummy.m"; sourceTree = ""; }; 61 | DABF107E76AF82C7F863BAAEFDC37C00 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 62 | E3AA8252CD291FB67596EB2A786FAC04 /* Pods-PinCodeField_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinCodeField_Example.release.xcconfig"; sourceTree = ""; }; 63 | F7351F0ECF1EB5C6AF6A7E81175DE5C8 /* Pods-PinCodeField_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PinCodeField_Tests.release.xcconfig"; sourceTree = ""; }; 64 | FAFB04F5F7881FE53307A222D70E8139 /* Pods-PinCodeField_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PinCodeField_Tests-umbrella.h"; sourceTree = ""; }; 65 | /* End PBXFileReference section */ 66 | 67 | /* Begin PBXFrameworksBuildPhase section */ 68 | 12C72B86DCAE3EB91304BA05DD8F8224 /* Frameworks */ = { 69 | isa = PBXFrameworksBuildPhase; 70 | buildActionMask = 2147483647; 71 | files = ( 72 | E7D226E109222EDC9A0A93FF575C3AAC /* Foundation.framework in Frameworks */, 73 | ); 74 | runOnlyForDeploymentPostprocessing = 0; 75 | }; 76 | 6A270D8E85B2E86DFD86CE281A5F332B /* Frameworks */ = { 77 | isa = PBXFrameworksBuildPhase; 78 | buildActionMask = 2147483647; 79 | files = ( 80 | 508961B624300A397E25E5C16E05E445 /* Foundation.framework in Frameworks */, 81 | ); 82 | runOnlyForDeploymentPostprocessing = 0; 83 | }; 84 | 8A7D6DA67742840E5B0B0F933BAC6125 /* Frameworks */ = { 85 | isa = PBXFrameworksBuildPhase; 86 | buildActionMask = 2147483647; 87 | files = ( 88 | C87D1560B3AA09D3D472990442A5CCD7 /* Foundation.framework in Frameworks */, 89 | ); 90 | runOnlyForDeploymentPostprocessing = 0; 91 | }; 92 | /* End PBXFrameworksBuildPhase section */ 93 | 94 | /* Begin PBXGroup section */ 95 | 0D0F633144F6B860EE7C4ED5E06D4B3D /* Targets Support Files */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | D41C1C78DFD4EA8A8E2B8F1AB52765CC /* Pods-PinCodeField_Example */, 99 | 9753ECC57329A37A31E8DA39044F703E /* Pods-PinCodeField_Tests */, 100 | ); 101 | name = "Targets Support Files"; 102 | sourceTree = ""; 103 | }; 104 | 4C4B5EB90BD2001D0C90082775FC7BCC /* PinCodeField */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | 5F36671A97706980E7004E5C7397DC6D /* PinCodeField.swift */, 108 | C6BA0A5F20577CE49B16827ABF7EC21E /* Support Files */, 109 | ); 110 | name = PinCodeField; 111 | path = ../..; 112 | sourceTree = ""; 113 | }; 114 | 7DB346D0F39D3F0E887471402A8071AB = { 115 | isa = PBXGroup; 116 | children = ( 117 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 118 | C64207D08C19C32407F54B2E7163F783 /* Development Pods */, 119 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 120 | D615C78C334DDB4BCCC6F2C0F7AE4D5F /* Products */, 121 | 0D0F633144F6B860EE7C4ED5E06D4B3D /* Targets Support Files */, 122 | ); 123 | sourceTree = ""; 124 | }; 125 | 9753ECC57329A37A31E8DA39044F703E /* Pods-PinCodeField_Tests */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | DABF107E76AF82C7F863BAAEFDC37C00 /* Info.plist */, 129 | 6F382E5C88B0B4507E8B01E473064802 /* Pods-PinCodeField_Tests.modulemap */, 130 | 9C0DB9412BBD39D2B7B47D78CBDD75BB /* Pods-PinCodeField_Tests-acknowledgements.markdown */, 131 | 51144EA449718A452D3A361817E415FD /* Pods-PinCodeField_Tests-acknowledgements.plist */, 132 | C43489DF35AB39B255E04C25FE0D68E6 /* Pods-PinCodeField_Tests-dummy.m */, 133 | 6DE56388116E3A412FA841C6F9E480FF /* Pods-PinCodeField_Tests-frameworks.sh */, 134 | B6C0B03A6233B92045BCE121F8BD2EBB /* Pods-PinCodeField_Tests-resources.sh */, 135 | FAFB04F5F7881FE53307A222D70E8139 /* Pods-PinCodeField_Tests-umbrella.h */, 136 | 0C7CB0BCEF14E4474092AE58A5DCD589 /* Pods-PinCodeField_Tests.debug.xcconfig */, 137 | F7351F0ECF1EB5C6AF6A7E81175DE5C8 /* Pods-PinCodeField_Tests.release.xcconfig */, 138 | ); 139 | name = "Pods-PinCodeField_Tests"; 140 | path = "Target Support Files/Pods-PinCodeField_Tests"; 141 | sourceTree = ""; 142 | }; 143 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | D35AF013A5F0BAD4F32504907A52519E /* iOS */, 147 | ); 148 | name = Frameworks; 149 | sourceTree = ""; 150 | }; 151 | C64207D08C19C32407F54B2E7163F783 /* Development Pods */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | 4C4B5EB90BD2001D0C90082775FC7BCC /* PinCodeField */, 155 | ); 156 | name = "Development Pods"; 157 | sourceTree = ""; 158 | }; 159 | C6BA0A5F20577CE49B16827ABF7EC21E /* Support Files */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | 75B5E213745FE076B7722D57EB7DF9B3 /* Info.plist */, 163 | 4D9FF17E8AFCE6238EBDA2D5889FD825 /* PinCodeField.modulemap */, 164 | 4C6C4C40BAD4652EE5B8446806427608 /* PinCodeField.xcconfig */, 165 | D04D7AD357441AA19EE5FAD2DCDBBDBE /* PinCodeField-dummy.m */, 166 | C92AA0CD989DD7F576E8EA80A4473516 /* PinCodeField-prefix.pch */, 167 | BFB83BEDA00FFFBFF5DA5644E74F2613 /* PinCodeField-umbrella.h */, 168 | ); 169 | name = "Support Files"; 170 | path = "Example/Pods/Target Support Files/PinCodeField"; 171 | sourceTree = ""; 172 | }; 173 | D35AF013A5F0BAD4F32504907A52519E /* iOS */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 6604A7D69453B4569E4E4827FB9155A9 /* Foundation.framework */, 177 | ); 178 | name = iOS; 179 | sourceTree = ""; 180 | }; 181 | D41C1C78DFD4EA8A8E2B8F1AB52765CC /* Pods-PinCodeField_Example */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | 6C683C850C99E9D9EC6867ADFBCB367C /* Info.plist */, 185 | 832124DD02AC7542FA3ECD05CE57E63B /* Pods-PinCodeField_Example.modulemap */, 186 | 2ECED303CB5A6B2077DD91BD58AD4069 /* Pods-PinCodeField_Example-acknowledgements.markdown */, 187 | 59B898B6F033F5DC52A110A32232003F /* Pods-PinCodeField_Example-acknowledgements.plist */, 188 | C893F910AB6FDAD523EFF997B89A6758 /* Pods-PinCodeField_Example-dummy.m */, 189 | 5186C49296377FF56E7C1A38EC6EB656 /* Pods-PinCodeField_Example-frameworks.sh */, 190 | 84FD995FB0BB6A8B5BE943155EB7874F /* Pods-PinCodeField_Example-resources.sh */, 191 | C06844B6B6D9D9884938E75FD72D104E /* Pods-PinCodeField_Example-umbrella.h */, 192 | 04700333298D08F1E27B9D68FEC5790B /* Pods-PinCodeField_Example.debug.xcconfig */, 193 | E3AA8252CD291FB67596EB2A786FAC04 /* Pods-PinCodeField_Example.release.xcconfig */, 194 | ); 195 | name = "Pods-PinCodeField_Example"; 196 | path = "Target Support Files/Pods-PinCodeField_Example"; 197 | sourceTree = ""; 198 | }; 199 | D615C78C334DDB4BCCC6F2C0F7AE4D5F /* Products */ = { 200 | isa = PBXGroup; 201 | children = ( 202 | 39C546DF78C20DE194F2A11FCC5667FD /* PinCodeField.framework */, 203 | 5AB2E080990E3C2D88F7B5CFBF20DA15 /* Pods_PinCodeField_Example.framework */, 204 | 7F56AA14D3F74468FB4555F42E7781D0 /* Pods_PinCodeField_Tests.framework */, 205 | ); 206 | name = Products; 207 | sourceTree = ""; 208 | }; 209 | /* End PBXGroup section */ 210 | 211 | /* Begin PBXHeadersBuildPhase section */ 212 | 765201716E0A4EE97F9D3F82EC19DD05 /* Headers */ = { 213 | isa = PBXHeadersBuildPhase; 214 | buildActionMask = 2147483647; 215 | files = ( 216 | E9AA1713B5FABD585766A1F472B9D98D /* Pods-PinCodeField_Tests-umbrella.h in Headers */, 217 | ); 218 | runOnlyForDeploymentPostprocessing = 0; 219 | }; 220 | 9ED90C630D1AE9EA190FD56FF44EAC38 /* Headers */ = { 221 | isa = PBXHeadersBuildPhase; 222 | buildActionMask = 2147483647; 223 | files = ( 224 | FC754AA1BC94DC87145FC04138925D46 /* Pods-PinCodeField_Example-umbrella.h in Headers */, 225 | ); 226 | runOnlyForDeploymentPostprocessing = 0; 227 | }; 228 | A1491D43DDD6BAB48104751A96667FD3 /* Headers */ = { 229 | isa = PBXHeadersBuildPhase; 230 | buildActionMask = 2147483647; 231 | files = ( 232 | D6E2630E4301875709673AD2E9198EC4 /* PinCodeField-umbrella.h in Headers */, 233 | ); 234 | runOnlyForDeploymentPostprocessing = 0; 235 | }; 236 | /* End PBXHeadersBuildPhase section */ 237 | 238 | /* Begin PBXNativeTarget section */ 239 | 2A3CC8786A997EF9AD7644A8B40769E7 /* Pods-PinCodeField_Example */ = { 240 | isa = PBXNativeTarget; 241 | buildConfigurationList = 756D66E3C3A8CE5175757B5634D1899F /* Build configuration list for PBXNativeTarget "Pods-PinCodeField_Example" */; 242 | buildPhases = ( 243 | 5FFD82BAED816504FFA2BC450E6245B1 /* Sources */, 244 | 8A7D6DA67742840E5B0B0F933BAC6125 /* Frameworks */, 245 | 9ED90C630D1AE9EA190FD56FF44EAC38 /* Headers */, 246 | ); 247 | buildRules = ( 248 | ); 249 | dependencies = ( 250 | 3DC0674FC6F14F28A93113A2B51D97D9 /* PBXTargetDependency */, 251 | ); 252 | name = "Pods-PinCodeField_Example"; 253 | productName = "Pods-PinCodeField_Example"; 254 | productReference = 5AB2E080990E3C2D88F7B5CFBF20DA15 /* Pods_PinCodeField_Example.framework */; 255 | productType = "com.apple.product-type.framework"; 256 | }; 257 | 586C9D7BA2501B2CBCB73E3CC93E6011 /* PinCodeField */ = { 258 | isa = PBXNativeTarget; 259 | buildConfigurationList = 7756B2B97D7F4384536F09885011922B /* Build configuration list for PBXNativeTarget "PinCodeField" */; 260 | buildPhases = ( 261 | 78290F6DF62126DA098E7F50690BAEC0 /* Sources */, 262 | 12C72B86DCAE3EB91304BA05DD8F8224 /* Frameworks */, 263 | A1491D43DDD6BAB48104751A96667FD3 /* Headers */, 264 | ); 265 | buildRules = ( 266 | ); 267 | dependencies = ( 268 | ); 269 | name = PinCodeField; 270 | productName = PinCodeField; 271 | productReference = 39C546DF78C20DE194F2A11FCC5667FD /* PinCodeField.framework */; 272 | productType = "com.apple.product-type.framework"; 273 | }; 274 | D429454B9F967B539D09EBB4166A566E /* Pods-PinCodeField_Tests */ = { 275 | isa = PBXNativeTarget; 276 | buildConfigurationList = 8ADC88A129A0C2B208CA42F846863EA0 /* Build configuration list for PBXNativeTarget "Pods-PinCodeField_Tests" */; 277 | buildPhases = ( 278 | 2922FE0000CBA37A5E13AD4C2BAD8993 /* Sources */, 279 | 6A270D8E85B2E86DFD86CE281A5F332B /* Frameworks */, 280 | 765201716E0A4EE97F9D3F82EC19DD05 /* Headers */, 281 | ); 282 | buildRules = ( 283 | ); 284 | dependencies = ( 285 | ); 286 | name = "Pods-PinCodeField_Tests"; 287 | productName = "Pods-PinCodeField_Tests"; 288 | productReference = 7F56AA14D3F74468FB4555F42E7781D0 /* Pods_PinCodeField_Tests.framework */; 289 | productType = "com.apple.product-type.framework"; 290 | }; 291 | /* End PBXNativeTarget section */ 292 | 293 | /* Begin PBXProject section */ 294 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 295 | isa = PBXProject; 296 | attributes = { 297 | LastSwiftUpdateCheck = 0830; 298 | LastUpgradeCheck = 0700; 299 | }; 300 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 301 | compatibilityVersion = "Xcode 3.2"; 302 | developmentRegion = English; 303 | hasScannedForEncodings = 0; 304 | knownRegions = ( 305 | en, 306 | ); 307 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 308 | productRefGroup = D615C78C334DDB4BCCC6F2C0F7AE4D5F /* Products */; 309 | projectDirPath = ""; 310 | projectRoot = ""; 311 | targets = ( 312 | 586C9D7BA2501B2CBCB73E3CC93E6011 /* PinCodeField */, 313 | 2A3CC8786A997EF9AD7644A8B40769E7 /* Pods-PinCodeField_Example */, 314 | D429454B9F967B539D09EBB4166A566E /* Pods-PinCodeField_Tests */, 315 | ); 316 | }; 317 | /* End PBXProject section */ 318 | 319 | /* Begin PBXSourcesBuildPhase section */ 320 | 2922FE0000CBA37A5E13AD4C2BAD8993 /* Sources */ = { 321 | isa = PBXSourcesBuildPhase; 322 | buildActionMask = 2147483647; 323 | files = ( 324 | 991D2DA80AA13ABBA4737F1983C13848 /* Pods-PinCodeField_Tests-dummy.m in Sources */, 325 | ); 326 | runOnlyForDeploymentPostprocessing = 0; 327 | }; 328 | 5FFD82BAED816504FFA2BC450E6245B1 /* Sources */ = { 329 | isa = PBXSourcesBuildPhase; 330 | buildActionMask = 2147483647; 331 | files = ( 332 | 479FA09C9CFCFC8EC918313C218AF26E /* Pods-PinCodeField_Example-dummy.m in Sources */, 333 | ); 334 | runOnlyForDeploymentPostprocessing = 0; 335 | }; 336 | 78290F6DF62126DA098E7F50690BAEC0 /* Sources */ = { 337 | isa = PBXSourcesBuildPhase; 338 | buildActionMask = 2147483647; 339 | files = ( 340 | 2F33BE5ABBE2CC9467563B4E919D0549 /* PinCodeField-dummy.m in Sources */, 341 | 64506ECF129C899EE61C842EAC56A200 /* PinCodeField.swift in Sources */, 342 | ); 343 | runOnlyForDeploymentPostprocessing = 0; 344 | }; 345 | /* End PBXSourcesBuildPhase section */ 346 | 347 | /* Begin PBXTargetDependency section */ 348 | 3DC0674FC6F14F28A93113A2B51D97D9 /* PBXTargetDependency */ = { 349 | isa = PBXTargetDependency; 350 | name = PinCodeField; 351 | target = 586C9D7BA2501B2CBCB73E3CC93E6011 /* PinCodeField */; 352 | targetProxy = EF74017889B0F4EB479390CDBBD3DC27 /* PBXContainerItemProxy */; 353 | }; 354 | /* End PBXTargetDependency section */ 355 | 356 | /* Begin XCBuildConfiguration section */ 357 | 2C6ECAEFF90C76120CA35111E3B958A1 /* Debug */ = { 358 | isa = XCBuildConfiguration; 359 | baseConfigurationReference = 4C6C4C40BAD4652EE5B8446806427608 /* PinCodeField.xcconfig */; 360 | buildSettings = { 361 | CODE_SIGN_IDENTITY = ""; 362 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 363 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 364 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 365 | CURRENT_PROJECT_VERSION = 1; 366 | DEFINES_MODULE = YES; 367 | DYLIB_COMPATIBILITY_VERSION = 1; 368 | DYLIB_CURRENT_VERSION = 1; 369 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 370 | GCC_PREFIX_HEADER = "Target Support Files/PinCodeField/PinCodeField-prefix.pch"; 371 | INFOPLIST_FILE = "Target Support Files/PinCodeField/Info.plist"; 372 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 373 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 374 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 375 | MODULEMAP_FILE = "Target Support Files/PinCodeField/PinCodeField.modulemap"; 376 | PRODUCT_NAME = PinCodeField; 377 | SDKROOT = iphoneos; 378 | SKIP_INSTALL = YES; 379 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 380 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 381 | SWIFT_VERSION = 4.0; 382 | TARGETED_DEVICE_FAMILY = "1,2"; 383 | VERSIONING_SYSTEM = "apple-generic"; 384 | VERSION_INFO_PREFIX = ""; 385 | }; 386 | name = Debug; 387 | }; 388 | 33DA7F43A1D2FA3C74A8C8FC246E1FA6 /* Debug */ = { 389 | isa = XCBuildConfiguration; 390 | buildSettings = { 391 | ALWAYS_SEARCH_USER_PATHS = NO; 392 | CLANG_ANALYZER_NONNULL = YES; 393 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 394 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 395 | CLANG_CXX_LIBRARY = "libc++"; 396 | CLANG_ENABLE_MODULES = YES; 397 | CLANG_ENABLE_OBJC_ARC = YES; 398 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 399 | CLANG_WARN_BOOL_CONVERSION = YES; 400 | CLANG_WARN_COMMA = YES; 401 | CLANG_WARN_CONSTANT_CONVERSION = YES; 402 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 403 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 404 | CLANG_WARN_EMPTY_BODY = YES; 405 | CLANG_WARN_ENUM_CONVERSION = YES; 406 | CLANG_WARN_INFINITE_RECURSION = YES; 407 | CLANG_WARN_INT_CONVERSION = YES; 408 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 409 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 410 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 411 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 412 | CLANG_WARN_STRICT_PROTOTYPES = YES; 413 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 414 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 415 | CLANG_WARN_UNREACHABLE_CODE = YES; 416 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 417 | CODE_SIGNING_REQUIRED = NO; 418 | COPY_PHASE_STRIP = NO; 419 | DEBUG_INFORMATION_FORMAT = dwarf; 420 | ENABLE_STRICT_OBJC_MSGSEND = YES; 421 | ENABLE_TESTABILITY = YES; 422 | GCC_C_LANGUAGE_STANDARD = gnu11; 423 | GCC_DYNAMIC_NO_PIC = NO; 424 | GCC_NO_COMMON_BLOCKS = YES; 425 | GCC_OPTIMIZATION_LEVEL = 0; 426 | GCC_PREPROCESSOR_DEFINITIONS = ( 427 | "POD_CONFIGURATION_DEBUG=1", 428 | "DEBUG=1", 429 | "$(inherited)", 430 | ); 431 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 432 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 433 | GCC_WARN_UNDECLARED_SELECTOR = YES; 434 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 435 | GCC_WARN_UNUSED_FUNCTION = YES; 436 | GCC_WARN_UNUSED_VARIABLE = YES; 437 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 438 | MTL_ENABLE_DEBUG_INFO = YES; 439 | ONLY_ACTIVE_ARCH = YES; 440 | PRODUCT_NAME = "$(TARGET_NAME)"; 441 | PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; 442 | STRIP_INSTALLED_PRODUCT = NO; 443 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 444 | SYMROOT = "${SRCROOT}/../build"; 445 | }; 446 | name = Debug; 447 | }; 448 | 70CC8F34802F99F0A3410C4A0FB2A49A /* Release */ = { 449 | isa = XCBuildConfiguration; 450 | baseConfigurationReference = E3AA8252CD291FB67596EB2A786FAC04 /* Pods-PinCodeField_Example.release.xcconfig */; 451 | buildSettings = { 452 | CODE_SIGN_IDENTITY = ""; 453 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 454 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 455 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 456 | CURRENT_PROJECT_VERSION = 1; 457 | DEFINES_MODULE = YES; 458 | DYLIB_COMPATIBILITY_VERSION = 1; 459 | DYLIB_CURRENT_VERSION = 1; 460 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 461 | INFOPLIST_FILE = "Target Support Files/Pods-PinCodeField_Example/Info.plist"; 462 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 463 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 464 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 465 | MACH_O_TYPE = staticlib; 466 | MODULEMAP_FILE = "Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.modulemap"; 467 | OTHER_LDFLAGS = ""; 468 | OTHER_LIBTOOLFLAGS = ""; 469 | PODS_ROOT = "$(SRCROOT)"; 470 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 471 | PRODUCT_NAME = Pods_PinCodeField_Example; 472 | SDKROOT = iphoneos; 473 | SKIP_INSTALL = YES; 474 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 475 | TARGETED_DEVICE_FAMILY = "1,2"; 476 | VALIDATE_PRODUCT = YES; 477 | VERSIONING_SYSTEM = "apple-generic"; 478 | VERSION_INFO_PREFIX = ""; 479 | }; 480 | name = Release; 481 | }; 482 | 731DC216E1A58545B559F6E0A2418060 /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | buildSettings = { 485 | ALWAYS_SEARCH_USER_PATHS = NO; 486 | CLANG_ANALYZER_NONNULL = YES; 487 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 488 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 489 | CLANG_CXX_LIBRARY = "libc++"; 490 | CLANG_ENABLE_MODULES = YES; 491 | CLANG_ENABLE_OBJC_ARC = YES; 492 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 493 | CLANG_WARN_BOOL_CONVERSION = YES; 494 | CLANG_WARN_COMMA = YES; 495 | CLANG_WARN_CONSTANT_CONVERSION = YES; 496 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 497 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 498 | CLANG_WARN_EMPTY_BODY = YES; 499 | CLANG_WARN_ENUM_CONVERSION = YES; 500 | CLANG_WARN_INFINITE_RECURSION = YES; 501 | CLANG_WARN_INT_CONVERSION = YES; 502 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 503 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 504 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 505 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 506 | CLANG_WARN_STRICT_PROTOTYPES = YES; 507 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 508 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 509 | CLANG_WARN_UNREACHABLE_CODE = YES; 510 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 511 | CODE_SIGNING_REQUIRED = NO; 512 | COPY_PHASE_STRIP = NO; 513 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 514 | ENABLE_NS_ASSERTIONS = NO; 515 | ENABLE_STRICT_OBJC_MSGSEND = YES; 516 | GCC_C_LANGUAGE_STANDARD = gnu11; 517 | GCC_NO_COMMON_BLOCKS = YES; 518 | GCC_PREPROCESSOR_DEFINITIONS = ( 519 | "POD_CONFIGURATION_RELEASE=1", 520 | "$(inherited)", 521 | ); 522 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 523 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 524 | GCC_WARN_UNDECLARED_SELECTOR = YES; 525 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 526 | GCC_WARN_UNUSED_FUNCTION = YES; 527 | GCC_WARN_UNUSED_VARIABLE = YES; 528 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 529 | MTL_ENABLE_DEBUG_INFO = NO; 530 | PRODUCT_NAME = "$(TARGET_NAME)"; 531 | PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; 532 | STRIP_INSTALLED_PRODUCT = NO; 533 | SYMROOT = "${SRCROOT}/../build"; 534 | }; 535 | name = Release; 536 | }; 537 | 74993F238889FFD43245026D4D076383 /* Release */ = { 538 | isa = XCBuildConfiguration; 539 | baseConfigurationReference = 4C6C4C40BAD4652EE5B8446806427608 /* PinCodeField.xcconfig */; 540 | buildSettings = { 541 | CODE_SIGN_IDENTITY = ""; 542 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 543 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 544 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 545 | CURRENT_PROJECT_VERSION = 1; 546 | DEFINES_MODULE = YES; 547 | DYLIB_COMPATIBILITY_VERSION = 1; 548 | DYLIB_CURRENT_VERSION = 1; 549 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 550 | GCC_PREFIX_HEADER = "Target Support Files/PinCodeField/PinCodeField-prefix.pch"; 551 | INFOPLIST_FILE = "Target Support Files/PinCodeField/Info.plist"; 552 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 553 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 554 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 555 | MODULEMAP_FILE = "Target Support Files/PinCodeField/PinCodeField.modulemap"; 556 | PRODUCT_NAME = PinCodeField; 557 | SDKROOT = iphoneos; 558 | SKIP_INSTALL = YES; 559 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 560 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 561 | SWIFT_VERSION = 4.0; 562 | TARGETED_DEVICE_FAMILY = "1,2"; 563 | VALIDATE_PRODUCT = YES; 564 | VERSIONING_SYSTEM = "apple-generic"; 565 | VERSION_INFO_PREFIX = ""; 566 | }; 567 | name = Release; 568 | }; 569 | B47EF73D04E13036FEFEBA791C838357 /* Debug */ = { 570 | isa = XCBuildConfiguration; 571 | baseConfigurationReference = 04700333298D08F1E27B9D68FEC5790B /* Pods-PinCodeField_Example.debug.xcconfig */; 572 | buildSettings = { 573 | CODE_SIGN_IDENTITY = ""; 574 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 575 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 576 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 577 | CURRENT_PROJECT_VERSION = 1; 578 | DEFINES_MODULE = YES; 579 | DYLIB_COMPATIBILITY_VERSION = 1; 580 | DYLIB_CURRENT_VERSION = 1; 581 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 582 | INFOPLIST_FILE = "Target Support Files/Pods-PinCodeField_Example/Info.plist"; 583 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 584 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 585 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 586 | MACH_O_TYPE = staticlib; 587 | MODULEMAP_FILE = "Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.modulemap"; 588 | OTHER_LDFLAGS = ""; 589 | OTHER_LIBTOOLFLAGS = ""; 590 | PODS_ROOT = "$(SRCROOT)"; 591 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 592 | PRODUCT_NAME = Pods_PinCodeField_Example; 593 | SDKROOT = iphoneos; 594 | SKIP_INSTALL = YES; 595 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 596 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 597 | TARGETED_DEVICE_FAMILY = "1,2"; 598 | VERSIONING_SYSTEM = "apple-generic"; 599 | VERSION_INFO_PREFIX = ""; 600 | }; 601 | name = Debug; 602 | }; 603 | E592E33E4EEF5E896ABC54760197533D /* Release */ = { 604 | isa = XCBuildConfiguration; 605 | baseConfigurationReference = F7351F0ECF1EB5C6AF6A7E81175DE5C8 /* Pods-PinCodeField_Tests.release.xcconfig */; 606 | buildSettings = { 607 | CODE_SIGN_IDENTITY = ""; 608 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 609 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 610 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 611 | CURRENT_PROJECT_VERSION = 1; 612 | DEFINES_MODULE = YES; 613 | DYLIB_COMPATIBILITY_VERSION = 1; 614 | DYLIB_CURRENT_VERSION = 1; 615 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 616 | INFOPLIST_FILE = "Target Support Files/Pods-PinCodeField_Tests/Info.plist"; 617 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 618 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 619 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 620 | MACH_O_TYPE = staticlib; 621 | MODULEMAP_FILE = "Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.modulemap"; 622 | OTHER_LDFLAGS = ""; 623 | OTHER_LIBTOOLFLAGS = ""; 624 | PODS_ROOT = "$(SRCROOT)"; 625 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 626 | PRODUCT_NAME = Pods_PinCodeField_Tests; 627 | SDKROOT = iphoneos; 628 | SKIP_INSTALL = YES; 629 | TARGETED_DEVICE_FAMILY = "1,2"; 630 | VALIDATE_PRODUCT = YES; 631 | VERSIONING_SYSTEM = "apple-generic"; 632 | VERSION_INFO_PREFIX = ""; 633 | }; 634 | name = Release; 635 | }; 636 | E7F21872A32B4A9F173AB73B3DB78497 /* Debug */ = { 637 | isa = XCBuildConfiguration; 638 | baseConfigurationReference = 0C7CB0BCEF14E4474092AE58A5DCD589 /* Pods-PinCodeField_Tests.debug.xcconfig */; 639 | buildSettings = { 640 | CODE_SIGN_IDENTITY = ""; 641 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 642 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 643 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 644 | CURRENT_PROJECT_VERSION = 1; 645 | DEFINES_MODULE = YES; 646 | DYLIB_COMPATIBILITY_VERSION = 1; 647 | DYLIB_CURRENT_VERSION = 1; 648 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 649 | INFOPLIST_FILE = "Target Support Files/Pods-PinCodeField_Tests/Info.plist"; 650 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 651 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 652 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 653 | MACH_O_TYPE = staticlib; 654 | MODULEMAP_FILE = "Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.modulemap"; 655 | OTHER_LDFLAGS = ""; 656 | OTHER_LIBTOOLFLAGS = ""; 657 | PODS_ROOT = "$(SRCROOT)"; 658 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 659 | PRODUCT_NAME = Pods_PinCodeField_Tests; 660 | SDKROOT = iphoneos; 661 | SKIP_INSTALL = YES; 662 | TARGETED_DEVICE_FAMILY = "1,2"; 663 | VERSIONING_SYSTEM = "apple-generic"; 664 | VERSION_INFO_PREFIX = ""; 665 | }; 666 | name = Debug; 667 | }; 668 | /* End XCBuildConfiguration section */ 669 | 670 | /* Begin XCConfigurationList section */ 671 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 672 | isa = XCConfigurationList; 673 | buildConfigurations = ( 674 | 33DA7F43A1D2FA3C74A8C8FC246E1FA6 /* Debug */, 675 | 731DC216E1A58545B559F6E0A2418060 /* Release */, 676 | ); 677 | defaultConfigurationIsVisible = 0; 678 | defaultConfigurationName = Release; 679 | }; 680 | 756D66E3C3A8CE5175757B5634D1899F /* Build configuration list for PBXNativeTarget "Pods-PinCodeField_Example" */ = { 681 | isa = XCConfigurationList; 682 | buildConfigurations = ( 683 | B47EF73D04E13036FEFEBA791C838357 /* Debug */, 684 | 70CC8F34802F99F0A3410C4A0FB2A49A /* Release */, 685 | ); 686 | defaultConfigurationIsVisible = 0; 687 | defaultConfigurationName = Release; 688 | }; 689 | 7756B2B97D7F4384536F09885011922B /* Build configuration list for PBXNativeTarget "PinCodeField" */ = { 690 | isa = XCConfigurationList; 691 | buildConfigurations = ( 692 | 2C6ECAEFF90C76120CA35111E3B958A1 /* Debug */, 693 | 74993F238889FFD43245026D4D076383 /* Release */, 694 | ); 695 | defaultConfigurationIsVisible = 0; 696 | defaultConfigurationName = Release; 697 | }; 698 | 8ADC88A129A0C2B208CA42F846863EA0 /* Build configuration list for PBXNativeTarget "Pods-PinCodeField_Tests" */ = { 699 | isa = XCConfigurationList; 700 | buildConfigurations = ( 701 | E7F21872A32B4A9F173AB73B3DB78497 /* Debug */, 702 | E592E33E4EEF5E896ABC54760197533D /* Release */, 703 | ); 704 | defaultConfigurationIsVisible = 0; 705 | defaultConfigurationName = Release; 706 | }; 707 | /* End XCConfigurationList section */ 708 | }; 709 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 710 | } 711 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcuserdata/nestor.xcuserdatad/xcschemes/PinCodeField.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcuserdata/nestor.xcuserdatad/xcschemes/Pods-PinCodeField_Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 35 | 36 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 65 | 66 | 68 | 69 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcuserdata/nestor.xcuserdatad/xcschemes/Pods-PinCodeField_Tests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 35 | 36 | 47 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 65 | 66 | 68 | 69 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/xcuserdata/nestor.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | PinCodeField.xcscheme 8 | 9 | isShown 10 | 11 | 12 | Pods-PinCodeField_Example.xcscheme 13 | 14 | isShown 15 | 16 | 17 | Pods-PinCodeField_Tests.xcscheme 18 | 19 | isShown 20 | 21 | 22 | 23 | SuppressBuildableAutocreation 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/PinCodeField/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/PinCodeField/PinCodeField-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_PinCodeField : NSObject 3 | @end 4 | @implementation PodsDummy_PinCodeField 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/PinCodeField/PinCodeField-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 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/PinCodeField/PinCodeField-umbrella.h: -------------------------------------------------------------------------------- 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 | 14 | FOUNDATION_EXPORT double PinCodeFieldVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char PinCodeFieldVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/PinCodeField/PinCodeField.modulemap: -------------------------------------------------------------------------------- 1 | framework module PinCodeField { 2 | umbrella header "PinCodeField-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/PinCodeField/PinCodeField.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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}/../.. 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## PinCodeField 5 | 6 | Copyright (c) 2017 nestorpopko 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - https://cocoapods.org 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2017 nestorpopko <nestorpopko@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | License 38 | MIT 39 | Title 40 | PinCodeField 41 | Type 42 | PSGroupSpecifier 43 | 44 | 45 | FooterText 46 | Generated by CocoaPods - https://cocoapods.org 47 | Title 48 | 49 | Type 50 | PSGroupSpecifier 51 | 52 | 53 | StringsTable 54 | Acknowledgements 55 | Title 56 | Acknowledgements 57 | 58 | 59 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_PinCodeField_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_PinCodeField_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 10 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 11 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 12 | 13 | install_framework() 14 | { 15 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 16 | local source="${BUILT_PRODUCTS_DIR}/$1" 17 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 18 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 19 | elif [ -r "$1" ]; then 20 | local source="$1" 21 | fi 22 | 23 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 24 | 25 | if [ -L "${source}" ]; then 26 | echo "Symlinked..." 27 | source="$(readlink "${source}")" 28 | fi 29 | 30 | # Use filter instead of exclude so missing patterns don't throw errors. 31 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 32 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 33 | 34 | local basename 35 | basename="$(basename -s .framework "$1")" 36 | binary="${destination}/${basename}.framework/${basename}" 37 | if ! [ -r "$binary" ]; then 38 | binary="${destination}/${basename}" 39 | fi 40 | 41 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 42 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 43 | strip_invalid_archs "$binary" 44 | fi 45 | 46 | # Resign the code if required by the build settings to avoid unstable apps 47 | code_sign_if_enabled "${destination}/$(basename "$1")" 48 | 49 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 50 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 51 | local swift_runtime_libs 52 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 53 | for lib in $swift_runtime_libs; do 54 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 55 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 56 | code_sign_if_enabled "${destination}/${lib}" 57 | done 58 | fi 59 | } 60 | 61 | # Copies the dSYM of a vendored framework 62 | install_dsym() { 63 | local source="$1" 64 | if [ -r "$source" ]; then 65 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\"" 66 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}" 67 | fi 68 | 69 | local basename 70 | basename="$(basename -s .framework.dSYM "$source")" 71 | binary="${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 72 | 73 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 74 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 75 | strip_invalid_archs "$binary" 76 | fi 77 | } 78 | 79 | # Signs a framework with the provided identity 80 | code_sign_if_enabled() { 81 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 82 | # Use the current code_sign_identitiy 83 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 84 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 85 | 86 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 87 | code_sign_cmd="$code_sign_cmd &" 88 | fi 89 | echo "$code_sign_cmd" 90 | eval "$code_sign_cmd" 91 | fi 92 | } 93 | 94 | # Strip invalid architectures 95 | strip_invalid_archs() { 96 | binary="$1" 97 | # Get architectures for current file 98 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 99 | stripped="" 100 | for arch in $archs; do 101 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 102 | # Strip non-valid architectures in-place 103 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 104 | stripped="$stripped $arch" 105 | fi 106 | done 107 | if [[ "$stripped" ]]; then 108 | echo "Stripped $binary of architectures:$stripped" 109 | fi 110 | } 111 | 112 | 113 | if [[ "$CONFIGURATION" == "Debug" ]]; then 114 | install_framework "${BUILT_PRODUCTS_DIR}/PinCodeField/PinCodeField.framework" 115 | fi 116 | if [[ "$CONFIGURATION" == "Release" ]]; then 117 | install_framework "${BUILT_PRODUCTS_DIR}/PinCodeField/PinCodeField.framework" 118 | fi 119 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 120 | wait 121 | fi 122 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 12 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 13 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 14 | 15 | case "${TARGETED_DEVICE_FAMILY}" in 16 | 1,2) 17 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 18 | ;; 19 | 1) 20 | TARGET_DEVICE_ARGS="--target-device iphone" 21 | ;; 22 | 2) 23 | TARGET_DEVICE_ARGS="--target-device ipad" 24 | ;; 25 | 3) 26 | TARGET_DEVICE_ARGS="--target-device tv" 27 | ;; 28 | 4) 29 | TARGET_DEVICE_ARGS="--target-device watch" 30 | ;; 31 | *) 32 | TARGET_DEVICE_ARGS="--target-device mac" 33 | ;; 34 | esac 35 | 36 | install_resource() 37 | { 38 | if [[ "$1" = /* ]] ; then 39 | RESOURCE_PATH="$1" 40 | else 41 | RESOURCE_PATH="${PODS_ROOT}/$1" 42 | fi 43 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 44 | cat << EOM 45 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 46 | EOM 47 | exit 1 48 | fi 49 | case $RESOURCE_PATH in 50 | *.storyboard) 51 | 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 52 | 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} 53 | ;; 54 | *.xib) 55 | 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 56 | 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} 57 | ;; 58 | *.framework) 59 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 60 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 61 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 62 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 63 | ;; 64 | *.xcdatamodel) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 67 | ;; 68 | *.xcdatamodeld) 69 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true 70 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 71 | ;; 72 | *.xcmappingmodel) 73 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true 74 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 75 | ;; 76 | *.xcassets) 77 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 78 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 79 | ;; 80 | *) 81 | echo "$RESOURCE_PATH" || true 82 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 83 | ;; 84 | esac 85 | } 86 | 87 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 89 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 90 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 91 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 92 | fi 93 | rm -f "$RESOURCES_TO_COPY" 94 | 95 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 96 | then 97 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 98 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 99 | while read line; do 100 | if [[ $line != "${PODS_ROOT}*" ]]; then 101 | XCASSET_FILES+=("$line") 102 | fi 103 | done <<<"$OTHER_XCASSETS" 104 | 105 | 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}" 106 | fi 107 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example-umbrella.h: -------------------------------------------------------------------------------- 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 | 14 | FOUNDATION_EXPORT double Pods_PinCodeField_ExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_PinCodeField_ExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField/PinCodeField.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "PinCodeField" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_PinCodeField_Example { 2 | umbrella header "Pods-PinCodeField_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Example/Pods-PinCodeField_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField/PinCodeField.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "PinCodeField" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | 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 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_PinCodeField_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_PinCodeField_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 10 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 11 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 12 | 13 | install_framework() 14 | { 15 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 16 | local source="${BUILT_PRODUCTS_DIR}/$1" 17 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 18 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 19 | elif [ -r "$1" ]; then 20 | local source="$1" 21 | fi 22 | 23 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 24 | 25 | if [ -L "${source}" ]; then 26 | echo "Symlinked..." 27 | source="$(readlink "${source}")" 28 | fi 29 | 30 | # Use filter instead of exclude so missing patterns don't throw errors. 31 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 32 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 33 | 34 | local basename 35 | basename="$(basename -s .framework "$1")" 36 | binary="${destination}/${basename}.framework/${basename}" 37 | if ! [ -r "$binary" ]; then 38 | binary="${destination}/${basename}" 39 | fi 40 | 41 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 42 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 43 | strip_invalid_archs "$binary" 44 | fi 45 | 46 | # Resign the code if required by the build settings to avoid unstable apps 47 | code_sign_if_enabled "${destination}/$(basename "$1")" 48 | 49 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 50 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 51 | local swift_runtime_libs 52 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 53 | for lib in $swift_runtime_libs; do 54 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 55 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 56 | code_sign_if_enabled "${destination}/${lib}" 57 | done 58 | fi 59 | } 60 | 61 | # Copies the dSYM of a vendored framework 62 | install_dsym() { 63 | local source="$1" 64 | if [ -r "$source" ]; then 65 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DWARF_DSYM_FOLDER_PATH}\"" 66 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DWARF_DSYM_FOLDER_PATH}" 67 | fi 68 | 69 | local basename 70 | basename="$(basename -s .framework.dSYM "$source")" 71 | binary="${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 72 | 73 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 74 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 75 | strip_invalid_archs "$binary" 76 | fi 77 | } 78 | 79 | # Signs a framework with the provided identity 80 | code_sign_if_enabled() { 81 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 82 | # Use the current code_sign_identitiy 83 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 84 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 85 | 86 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 87 | code_sign_cmd="$code_sign_cmd &" 88 | fi 89 | echo "$code_sign_cmd" 90 | eval "$code_sign_cmd" 91 | fi 92 | } 93 | 94 | # Strip invalid architectures 95 | strip_invalid_archs() { 96 | binary="$1" 97 | # Get architectures for current file 98 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 99 | stripped="" 100 | for arch in $archs; do 101 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 102 | # Strip non-valid architectures in-place 103 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 104 | stripped="$stripped $arch" 105 | fi 106 | done 107 | if [[ "$stripped" ]]; then 108 | echo "Stripped $binary of architectures:$stripped" 109 | fi 110 | } 111 | 112 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 113 | wait 114 | fi 115 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 12 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 13 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 14 | 15 | case "${TARGETED_DEVICE_FAMILY}" in 16 | 1,2) 17 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 18 | ;; 19 | 1) 20 | TARGET_DEVICE_ARGS="--target-device iphone" 21 | ;; 22 | 2) 23 | TARGET_DEVICE_ARGS="--target-device ipad" 24 | ;; 25 | 3) 26 | TARGET_DEVICE_ARGS="--target-device tv" 27 | ;; 28 | 4) 29 | TARGET_DEVICE_ARGS="--target-device watch" 30 | ;; 31 | *) 32 | TARGET_DEVICE_ARGS="--target-device mac" 33 | ;; 34 | esac 35 | 36 | install_resource() 37 | { 38 | if [[ "$1" = /* ]] ; then 39 | RESOURCE_PATH="$1" 40 | else 41 | RESOURCE_PATH="${PODS_ROOT}/$1" 42 | fi 43 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 44 | cat << EOM 45 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 46 | EOM 47 | exit 1 48 | fi 49 | case $RESOURCE_PATH in 50 | *.storyboard) 51 | 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 52 | 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} 53 | ;; 54 | *.xib) 55 | 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 56 | 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} 57 | ;; 58 | *.framework) 59 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 60 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 61 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 62 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 63 | ;; 64 | *.xcdatamodel) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 67 | ;; 68 | *.xcdatamodeld) 69 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true 70 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 71 | ;; 72 | *.xcmappingmodel) 73 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true 74 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 75 | ;; 76 | *.xcassets) 77 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 78 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 79 | ;; 80 | *) 81 | echo "$RESOURCE_PATH" || true 82 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 83 | ;; 84 | esac 85 | } 86 | 87 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 89 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 90 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 91 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 92 | fi 93 | rm -f "$RESOURCES_TO_COPY" 94 | 95 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 96 | then 97 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 98 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 99 | while read line; do 100 | if [[ $line != "${PODS_ROOT}*" ]]; then 101 | XCASSET_FILES+=("$line") 102 | fi 103 | done <<<"$OTHER_XCASSETS" 104 | 105 | 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}" 106 | fi 107 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests-umbrella.h: -------------------------------------------------------------------------------- 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 | 14 | FOUNDATION_EXPORT double Pods_PinCodeField_TestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_PinCodeField_TestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField/PinCodeField.framework/Headers" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_PinCodeField_Tests { 2 | umbrella header "Pods-PinCodeField_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-PinCodeField_Tests/Pods-PinCodeField_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PinCodeField/PinCodeField.framework/Headers" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Example/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Example/Tests/Tests.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import XCTest 3 | import PinCodeField 4 | 5 | class Tests: XCTestCase { 6 | 7 | override func setUp() { 8 | super.setUp() 9 | // Put setup code here. This method is called before the invocation of each test method in the class. 10 | } 11 | 12 | override func tearDown() { 13 | // Put teardown code here. This method is called after the invocation of each test method in the class. 14 | super.tearDown() 15 | } 16 | 17 | func testExample() { 18 | // This is an example of a functional test case. 19 | XCTAssert(true, "Pass") 20 | } 21 | 22 | func testPerformanceExample() { 23 | // This is an example of a performance test case. 24 | self.measure() { 25 | // Put the code you want to measure the time of here. 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 nestorpopko 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /PinCodeField.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'PinCodeField' 3 | s.version = '0.2.0' 4 | s.summary = 'Customizable pin code control for iOS apps.' 5 | s.description = <<-DESC 6 | PinCodeField is a simple and customizable control, designed for entering PIN-codes. 7 | DESC 8 | 9 | s.homepage = 'https://github.com/nestorpopko/PinCodeField' 10 | s.license = { :type => 'MIT', :file => 'LICENSE' } 11 | s.author = { 'nestorpopko' => 'nestorpopko@gmail.com' } 12 | s.source = { :git => 'https://github.com/nestorpopko/PinCodeField.git', :tag => s.version.to_s } 13 | 14 | s.ios.deployment_target = '8.0' 15 | 16 | s.source_files = 'PinCodeField/Classes/**/*' 17 | 18 | end 19 | -------------------------------------------------------------------------------- /PinCodeField/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nestor-huma/PinCodeField/40e7575fdc0745fdb7b71dd3802c7cf244d7c92c/PinCodeField/Assets/.gitkeep -------------------------------------------------------------------------------- /PinCodeField/Classes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nestor-huma/PinCodeField/40e7575fdc0745fdb7b71dd3802c7cf244d7c92c/PinCodeField/Classes/.gitkeep -------------------------------------------------------------------------------- /PinCodeField/Classes/PinCodeField.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PinCodeField.swift 3 | // PinCodeField 4 | // 5 | // Created by nestorpopko on 11/25/2017. 6 | // Copyright (c) 2017 nestorpopko. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @IBDesignable 12 | open class PinCodeField: UIControl, UITextInputTraits { 13 | 14 | /** The text entered by user. */ 15 | @IBInspectable open var text: String = "" { 16 | didSet { 17 | setNeedsDisplay() 18 | } 19 | } 20 | 21 | /** Length of the pin code */ 22 | @IBInspectable open var length: Int = 4 { 23 | didSet { 24 | invalidateIntrinsicContentSize() 25 | setNeedsDisplay() 26 | } 27 | } 28 | 29 | /** Color of the dots. */ 30 | @IBInspectable open var color: UIColor = .black { 31 | didSet { 32 | setNeedsDisplay() 33 | } 34 | } 35 | 36 | /** Diameter of the dots. */ 37 | @IBInspectable open var diameter: CGFloat = 20.0 { 38 | didSet { 39 | invalidateIntrinsicContentSize() 40 | setNeedsDisplay() 41 | } 42 | } 43 | 44 | /** Spacing between the dots. */ 45 | @IBInspectable open var spacing: CGFloat = 16.0 { 46 | didSet { 47 | invalidateIntrinsicContentSize() 48 | setNeedsDisplay() 49 | } 50 | } 51 | 52 | /** Line thickness. */ 53 | @IBInspectable open var thickness: CGFloat = 2.0 { 54 | didSet { 55 | invalidateIntrinsicContentSize() 56 | setNeedsDisplay() 57 | } 58 | } 59 | 60 | /** Display numbers inside circles */ 61 | @IBInspectable open var displayLetters: Bool = false { 62 | didSet { 63 | invalidateIntrinsicContentSize() 64 | setNeedsDisplay() 65 | } 66 | } 67 | 68 | /** Font of numbers inside circles */ 69 | @IBInspectable open var lettersFont: UIFont = UIFont.systemFont(ofSize: 17) { 70 | didSet { 71 | invalidateIntrinsicContentSize() 72 | setNeedsDisplay() 73 | } 74 | } 75 | 76 | /** Color of numbers inside circles */ 77 | @IBInspectable open var lettersColor: UIColor = .white { 78 | didSet { 79 | invalidateIntrinsicContentSize() 80 | setNeedsDisplay() 81 | } 82 | } 83 | 84 | /** Tells whether the pin code is empty. */ 85 | open var isEmpty: Bool { 86 | return text.isEmpty 87 | } 88 | 89 | /** Tells whether all characters were entered. */ 90 | open var isFilled: Bool { 91 | return text.count == length 92 | } 93 | 94 | 95 | // MARK: UITextInputTraits protocol properties 96 | open var autocapitalizationType = UITextAutocapitalizationType.none 97 | open var autocorrectionType = UITextAutocorrectionType.no 98 | open var spellCheckingType = UITextSpellCheckingType.no 99 | open var keyboardType = UIKeyboardType.numberPad 100 | open var keyboardAppearance = UIKeyboardAppearance.default 101 | open var returnKeyType = UIReturnKeyType.done 102 | open var enablesReturnKeyAutomatically = true 103 | 104 | 105 | // MARK: initialization 106 | public override init(frame: CGRect) { 107 | super.init(frame: frame) 108 | initialSetup() 109 | } 110 | 111 | public required init?(coder aDecoder: NSCoder) { 112 | super.init(coder: aDecoder) 113 | initialSetup() 114 | } 115 | 116 | private func initialSetup() { 117 | addTarget(self, action: #selector(becomeFirstResponder), for: .touchUpInside) 118 | } 119 | 120 | 121 | // MARK: UIResponder 122 | open override var canBecomeFirstResponder: Bool { 123 | return true 124 | } 125 | 126 | private var accessoryView: UIView? 127 | 128 | override open var inputAccessoryView: UIView? { 129 | get { 130 | return accessoryView 131 | } 132 | set(value) { 133 | accessoryView = value 134 | } 135 | } 136 | 137 | 138 | //MARK: UIView 139 | open override var intrinsicContentSize: CGSize { 140 | let width = CGFloat(length) * (diameter + spacing) - spacing + thickness 141 | let height = diameter + thickness 142 | return CGSize(width: width, height: height) 143 | } 144 | 145 | open override func draw(_ rect: CGRect) { 146 | guard let context = UIGraphicsGetCurrentContext() else { 147 | return 148 | } 149 | context.setFillColor(color.cgColor) 150 | context.setStrokeColor(color.cgColor) 151 | context.setLineWidth(thickness) 152 | 153 | let chars = text.map { String($0) } 154 | let paragraphStyle = NSMutableParagraphStyle() 155 | paragraphStyle.alignment = .center 156 | 157 | let attrs: [NSAttributedStringKey : Any] = [ 158 | NSAttributedStringKey.font: self.lettersFont, 159 | NSAttributedStringKey.paragraphStyle: paragraphStyle, 160 | NSAttributedStringKey.foregroundColor: self.lettersColor 161 | ] 162 | 163 | 164 | // Draw circles 165 | var origin = CGPoint.zero 166 | for i in 0..