From 4c38a182958474a20e6bae241561fe87df6ce4b6 Mon Sep 17 00:00:00 2001 From: Ric Santos Date: Mon, 25 Sep 2023 21:30:58 +0930 Subject: [PATCH] Update for Xcode 15 and also fix an assertion due to zero size (#60) * Update the readme * Make the project build in Xcode 15 by bumping min target and adding a version for the demo * Don't redraw if the image size is zero to avoid an assertion https://developer.apple.com/forums/thread/733326 --- Demo/Podfile.lock | 4 +- .../Local Podspecs/TouchDraw.podspec.json | 2 +- Demo/Pods/Manifest.lock | 4 +- Demo/Pods/Pods.xcodeproj/project.pbxproj | 485 +++++++++--------- .../Pods-TouchDrawDemo-frameworks.sh | 113 ++-- .../Pods-TouchDrawDemo.debug.xcconfig | 10 +- .../Pods-TouchDrawDemo.release.xcconfig | 10 +- Demo/TouchDrawDemo.xcodeproj/project.pbxproj | 15 +- Demo/TouchDrawDemo/Info.plist | 2 + Sources/TouchDrawView.swift | 1 + TouchDraw.podspec | 2 +- TouchDraw.xcodeproj/project.pbxproj | 5 +- 12 files changed, 360 insertions(+), 293 deletions(-) diff --git a/Demo/Podfile.lock b/Demo/Podfile.lock index 891dcce..59f88b4 100644 --- a/Demo/Podfile.lock +++ b/Demo/Podfile.lock @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - TouchDraw: 02074f86f08957eceb8ee3012b6b8740405e6109 + TouchDraw: ceed566f08865e4c7e41a338659117224788a95b PODFILE CHECKSUM: f850bd72d12b5fb4f18cad822d3a3481b9ad2931 -COCOAPODS: 1.5.3 +COCOAPODS: 1.12.1 diff --git a/Demo/Pods/Local Podspecs/TouchDraw.podspec.json b/Demo/Pods/Local Podspecs/TouchDraw.podspec.json index b327c7f..fb656b3 100644 --- a/Demo/Pods/Local Podspecs/TouchDraw.podspec.json +++ b/Demo/Pods/Local Podspecs/TouchDraw.podspec.json @@ -13,7 +13,7 @@ }, "social_media_url": "http://twitter.com/cpdehli", "platforms": { - "ios": "8.0" + "ios": "12.0" }, "source": { "git": "https://github.com/dehli/TouchDraw.git", diff --git a/Demo/Pods/Manifest.lock b/Demo/Pods/Manifest.lock index 891dcce..59f88b4 100644 --- a/Demo/Pods/Manifest.lock +++ b/Demo/Pods/Manifest.lock @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - TouchDraw: 02074f86f08957eceb8ee3012b6b8740405e6109 + TouchDraw: ceed566f08865e4c7e41a338659117224788a95b PODFILE CHECKSUM: f850bd72d12b5fb4f18cad822d3a3481b9ad2931 -COCOAPODS: 1.5.3 +COCOAPODS: 1.12.1 diff --git a/Demo/Pods/Pods.xcodeproj/project.pbxproj b/Demo/Pods/Pods.xcodeproj/project.pbxproj index e785418..9a972b0 100644 --- a/Demo/Pods/Pods.xcodeproj/project.pbxproj +++ b/Demo/Pods/Pods.xcodeproj/project.pbxproj @@ -7,212 +7,213 @@ objects = { /* Begin PBXBuildFile section */ - 14040A60A6D97C332289898D036FB0F4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - 1A06261ECC24E3CF4E0128AB1EEC67C9 /* Pods-TouchDrawDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ED012F5343741B588913D37ADA0F208A /* Pods-TouchDrawDemo-dummy.m */; }; - 540DA4C977BB1EB83AC3429456AB57A7 /* Stroke.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5757E5834DC91823EF2209EC5711BFE1 /* Stroke.swift */; }; - 710137ADBBBF8A48C808244FC62D297F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; - 77B489A6B667A67FB29CAF772249E8F2 /* TouchDrawView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2FD25BF3696680CF183BDA514962A4E /* TouchDrawView.swift */; }; - 89FCBC63F997A86D4E6C7DE16554F95A /* TouchDraw-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC5B11770B0463A6F855BE9BC66C0BE6 /* TouchDraw-dummy.m */; }; - D2896764543D11E9EF00D43E50832E8F /* Pods-TouchDrawDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 690B6B972AA4BA0628F0108A4BA5C185 /* Pods-TouchDrawDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D75775C43EC30E2F9EEBC9C750958B93 /* StrokeSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 471D241AC2AE2D47DEF589BFBF6255BE /* StrokeSettings.swift */; }; - F30434CB38D87A55A32714821060AE84 /* TouchDraw-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CF7E4ABD9284152023AE9181F9559A4 /* TouchDraw-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0B7FB5AEF4AFE5656F49FC413EF85A68 /* TouchDraw-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5444EA758DA8277797948CF46A4BD61D /* TouchDraw-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 211BC6B5249B4019D4E96B2DC1C033B1 /* Pods-TouchDrawDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A3948C35DF87486E5418BBAF280C0B9 /* Pods-TouchDrawDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 230738C53AF1FD048536B89BC2F237E0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 305A60A5D22337086B06415810425658 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 8AACAB505466AEEBB659723597BC0010 /* TouchDraw-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 535B4437B92483FE0DEFB49F0233CAA2 /* TouchDraw-dummy.m */; }; + 901A90B21627B4D541D9D2E3E097620C /* Stroke.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89A502373D3E56EA893765C0E295F34 /* Stroke.swift */; }; + 9265DE468D201652203B28B34C88A41A /* TouchDrawView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C58B4D42B366C162788F3E351D5FFC9 /* TouchDrawView.swift */; }; + A563B92956DA6B1FA7658D6CDB436D05 /* StrokeSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 292F083F3164B387807405A151E5087A /* StrokeSettings.swift */; }; + C6C09CF502546B170BC035E6949EED3E /* Pods-TouchDrawDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F306792AB76CFE9BD510C21C21DDA11 /* Pods-TouchDrawDemo-dummy.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - A5150F110282B41959C3B04C5282849C /* PBXContainerItemProxy */ = { + 8E35F417A86D02995FEDB2F4D222642B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 8A664C61952295D65EF88D6C26E6D1F6; + remoteGlobalIDString = 4078B568085D268C4E7C16909219F06F; remoteInfo = TouchDraw; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 1B90DD716E2C6FC5BA5475042927EDD2 /* Pods-TouchDrawDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-TouchDrawDemo.modulemap"; sourceTree = ""; }; - 1CF060493070FAC4B5749C740B90244F /* TouchDraw.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = TouchDraw.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 1CF7E4ABD9284152023AE9181F9559A4 /* TouchDraw-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TouchDraw-umbrella.h"; sourceTree = ""; }; - 1D0B72476F05A0CC38FC4DBF106CBBAA /* Pods-TouchDrawDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TouchDrawDemo-acknowledgements.plist"; sourceTree = ""; }; - 471D241AC2AE2D47DEF589BFBF6255BE /* StrokeSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeSettings.swift; path = Sources/StrokeSettings.swift; sourceTree = ""; }; - 54EB6CB1AC201CFB3D6322E3C95BFE83 /* Pods-TouchDrawDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-TouchDrawDemo-acknowledgements.markdown"; sourceTree = ""; }; - 5757E5834DC91823EF2209EC5711BFE1 /* Stroke.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stroke.swift; path = Sources/Stroke.swift; sourceTree = ""; }; - 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 690B6B972AA4BA0628F0108A4BA5C185 /* Pods-TouchDrawDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-TouchDrawDemo-umbrella.h"; sourceTree = ""; }; - 7952030671E6CB4890FE0FD7D4708782 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 85E9A9E5982B228807D55DE3C6184FE3 /* Pods-TouchDrawDemo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-TouchDrawDemo-resources.sh"; sourceTree = ""; }; - 86C1D0F22E480D6EC9D9EB69C3F344BF /* Pods_TouchDrawDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_TouchDrawDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8DFD433397FEB7BBB36D11772D8E766A /* Pods-TouchDrawDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TouchDrawDemo.release.xcconfig"; sourceTree = ""; }; - 9049C6C4D412D05000D515734CCA53B5 /* TouchDraw.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TouchDraw.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A17E9596518A98B6F36BDAFC98CF58ED /* Pods-TouchDrawDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-TouchDrawDemo-frameworks.sh"; sourceTree = ""; }; - B03A35E56F64A79658C671621D48E157 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B7A20CC8A469F8EA1D07FA29D719483C /* Pods-TouchDrawDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TouchDrawDemo.debug.xcconfig"; sourceTree = ""; }; - D9D008CEC81CF49BD4ED7EC10CF15C4B /* TouchDraw-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TouchDraw-prefix.pch"; sourceTree = ""; }; - E16EA0D1D61AB16D47CA211256EAFBE0 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E2FD25BF3696680CF183BDA514962A4E /* TouchDrawView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TouchDrawView.swift; path = Sources/TouchDrawView.swift; sourceTree = ""; }; - E6532C1CC6EA56806D582433FED4F597 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - ED012F5343741B588913D37ADA0F208A /* Pods-TouchDrawDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-TouchDrawDemo-dummy.m"; sourceTree = ""; }; - EEAC8C2DC0377C3D9D1954EFD00FEE54 /* TouchDraw.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TouchDraw.xcconfig; sourceTree = ""; }; - FAD03DDE9F824CCE3F63561D29275EDC /* TouchDraw.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TouchDraw.modulemap; sourceTree = ""; }; - FC5B11770B0463A6F855BE9BC66C0BE6 /* TouchDraw-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TouchDraw-dummy.m"; sourceTree = ""; }; + 161082C63FE27DE5BDBF540696422C47 /* TouchDraw.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = TouchDraw.modulemap; sourceTree = ""; }; + 17EFE0D395529165BA88E757E8C6E423 /* Pods-TouchDrawDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TouchDrawDemo-acknowledgements.plist"; sourceTree = ""; }; + 252BDC1E3A1D8CE686615CAF040C40C2 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = ""; }; + 292F083F3164B387807405A151E5087A /* StrokeSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StrokeSettings.swift; path = Sources/StrokeSettings.swift; sourceTree = ""; }; + 4B47A45C432BE77F7E85543804AAB36F /* Pods-TouchDrawDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-TouchDrawDemo-acknowledgements.markdown"; sourceTree = ""; }; + 4C79E5A67192ACCB8A58F6FEC33A66B0 /* Pods-TouchDrawDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-TouchDrawDemo-frameworks.sh"; sourceTree = ""; }; + 4D21F92790C27EBBAC4B52FD72B2DE46 /* Pods-TouchDrawDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-TouchDrawDemo-Info.plist"; sourceTree = ""; }; + 535B4437B92483FE0DEFB49F0233CAA2 /* TouchDraw-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "TouchDraw-dummy.m"; sourceTree = ""; }; + 5444EA758DA8277797948CF46A4BD61D /* TouchDraw-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TouchDraw-umbrella.h"; sourceTree = ""; }; + 5BE9E964E64F49A3514053001C6A7D9B /* Pods-TouchDrawDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-TouchDrawDemo.modulemap"; sourceTree = ""; }; + 6A3948C35DF87486E5418BBAF280C0B9 /* Pods-TouchDrawDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-TouchDrawDemo-umbrella.h"; sourceTree = ""; }; + 6C58B4D42B366C162788F3E351D5FFC9 /* TouchDrawView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TouchDrawView.swift; path = Sources/TouchDrawView.swift; sourceTree = ""; }; + 71BB46656F90C919FB96A3D59DF9B448 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = ""; }; + 71C93A90E631872513BD16F6A5CBB773 /* TouchDraw.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TouchDraw.debug.xcconfig; sourceTree = ""; }; + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 8F306792AB76CFE9BD510C21C21DDA11 /* Pods-TouchDrawDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-TouchDrawDemo-dummy.m"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9DF14A2248C17B3DE202FAACF1A74E0F /* Pods-TouchDrawDemo */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-TouchDrawDemo"; path = Pods_TouchDrawDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AB4305B9D381159CE22D0332EF5F3E94 /* TouchDraw-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "TouchDraw-prefix.pch"; sourceTree = ""; }; + B25A89A67988EC6476500922FAA6DBB1 /* TouchDraw.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = TouchDraw.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + B99C1463AE131BB2E21DC0A3289E396C /* TouchDraw.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = TouchDraw.release.xcconfig; sourceTree = ""; }; + C12551E4E94CE844862E86A3A662F241 /* Pods-TouchDrawDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TouchDrawDemo.debug.xcconfig"; sourceTree = ""; }; + D0496BAB559274643EE7EE1E2E099158 /* Pods-TouchDrawDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-TouchDrawDemo.release.xcconfig"; sourceTree = ""; }; + D5A344F9F2434E66FB5F1D5A3846DB8D /* TouchDraw */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = TouchDraw; path = TouchDraw.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E89A502373D3E56EA893765C0E295F34 /* Stroke.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stroke.swift; path = Sources/Stroke.swift; sourceTree = ""; }; + F83D3ADF240DC34AEA8AAC618DF185D2 /* TouchDraw-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "TouchDraw-Info.plist"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 297FD8A2E02439679B727FBC012234CA /* Frameworks */ = { + 32782AA11DFFDB9B9E789BAB5CFA401F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 14040A60A6D97C332289898D036FB0F4 /* Foundation.framework in Frameworks */, + 305A60A5D22337086B06415810425658 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2D77D4D06259C69A794D61B9EB2BF076 /* Frameworks */ = { + C001423B88228A2DADC9DEEB52DA98F9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 710137ADBBBF8A48C808244FC62D297F /* Foundation.framework in Frameworks */, + 230738C53AF1FD048536B89BC2F237E0 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1A61429307C062363CC987B76042F3AA /* Pods-TouchDrawDemo */ = { + 03C6AAD9D1FB7A7931B4004660D51EAA /* TouchDraw */ = { isa = PBXGroup; children = ( - E16EA0D1D61AB16D47CA211256EAFBE0 /* Info.plist */, - 1B90DD716E2C6FC5BA5475042927EDD2 /* Pods-TouchDrawDemo.modulemap */, - 54EB6CB1AC201CFB3D6322E3C95BFE83 /* Pods-TouchDrawDemo-acknowledgements.markdown */, - 1D0B72476F05A0CC38FC4DBF106CBBAA /* Pods-TouchDrawDemo-acknowledgements.plist */, - ED012F5343741B588913D37ADA0F208A /* Pods-TouchDrawDemo-dummy.m */, - A17E9596518A98B6F36BDAFC98CF58ED /* Pods-TouchDrawDemo-frameworks.sh */, - 85E9A9E5982B228807D55DE3C6184FE3 /* Pods-TouchDrawDemo-resources.sh */, - 690B6B972AA4BA0628F0108A4BA5C185 /* Pods-TouchDrawDemo-umbrella.h */, - B7A20CC8A469F8EA1D07FA29D719483C /* Pods-TouchDrawDemo.debug.xcconfig */, - 8DFD433397FEB7BBB36D11772D8E766A /* Pods-TouchDrawDemo.release.xcconfig */, + E89A502373D3E56EA893765C0E295F34 /* Stroke.swift */, + 292F083F3164B387807405A151E5087A /* StrokeSettings.swift */, + 6C58B4D42B366C162788F3E351D5FFC9 /* TouchDrawView.swift */, + 07ADAD9DCDD5FC17491CE21F994D6C5D /* Pod */, + 94007F4A847109372D820901155BDADE /* Support Files */, ); - name = "Pods-TouchDrawDemo"; - path = "Target Support Files/Pods-TouchDrawDemo"; + name = TouchDraw; + path = ../..; sourceTree = ""; }; - 5E0D919E635D23B70123790B8308F8EF /* iOS */ = { + 0754750D27FCB4E9AD45783F7F7ED513 /* Pods-TouchDrawDemo */ = { isa = PBXGroup; children = ( - 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */, + 5BE9E964E64F49A3514053001C6A7D9B /* Pods-TouchDrawDemo.modulemap */, + 4B47A45C432BE77F7E85543804AAB36F /* Pods-TouchDrawDemo-acknowledgements.markdown */, + 17EFE0D395529165BA88E757E8C6E423 /* Pods-TouchDrawDemo-acknowledgements.plist */, + 8F306792AB76CFE9BD510C21C21DDA11 /* Pods-TouchDrawDemo-dummy.m */, + 4C79E5A67192ACCB8A58F6FEC33A66B0 /* Pods-TouchDrawDemo-frameworks.sh */, + 4D21F92790C27EBBAC4B52FD72B2DE46 /* Pods-TouchDrawDemo-Info.plist */, + 6A3948C35DF87486E5418BBAF280C0B9 /* Pods-TouchDrawDemo-umbrella.h */, + C12551E4E94CE844862E86A3A662F241 /* Pods-TouchDrawDemo.debug.xcconfig */, + D0496BAB559274643EE7EE1E2E099158 /* Pods-TouchDrawDemo.release.xcconfig */, ); - name = iOS; + name = "Pods-TouchDrawDemo"; + path = "Target Support Files/Pods-TouchDrawDemo"; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 07ADAD9DCDD5FC17491CE21F994D6C5D /* Pod */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - C0544D9056987953E1D028DB42DB96D2 /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - DDD76B1D8DA4F9149B42CF7ECFCCF7A9 /* Products */, - 8725E2AC80B50C13A64469D2A341B690 /* Targets Support Files */, + 71BB46656F90C919FB96A3D59DF9B448 /* LICENSE */, + 252BDC1E3A1D8CE686615CAF040C40C2 /* README.md */, + B25A89A67988EC6476500922FAA6DBB1 /* TouchDraw.podspec */, ); + name = Pod; sourceTree = ""; }; - 8725E2AC80B50C13A64469D2A341B690 /* Targets Support Files */ = { + 3077EFCD38303A48958BA55B2CD44E5C /* Products */ = { isa = PBXGroup; children = ( - 1A61429307C062363CC987B76042F3AA /* Pods-TouchDrawDemo */, + 9DF14A2248C17B3DE202FAACF1A74E0F /* Pods-TouchDrawDemo */, + D5A344F9F2434E66FB5F1D5A3846DB8D /* TouchDraw */, ); - name = "Targets Support Files"; + name = Products; sourceTree = ""; }; - BA6BE01DF0254F9BEAA01F3F68DBC6BD /* TouchDraw */ = { + 578452D2E740E91742655AC8F1636D1F /* iOS */ = { isa = PBXGroup; children = ( - 5757E5834DC91823EF2209EC5711BFE1 /* Stroke.swift */, - 471D241AC2AE2D47DEF589BFBF6255BE /* StrokeSettings.swift */, - E2FD25BF3696680CF183BDA514962A4E /* TouchDrawView.swift */, - C876898B85B969C5312AA492FAC82681 /* Pod */, - D364163B230110BB2E11ED4D418CDFA1 /* Support Files */, + 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, ); - name = TouchDraw; - path = ../..; + name = iOS; sourceTree = ""; }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + 94007F4A847109372D820901155BDADE /* Support Files */ = { isa = PBXGroup; children = ( - 5E0D919E635D23B70123790B8308F8EF /* iOS */, + 161082C63FE27DE5BDBF540696422C47 /* TouchDraw.modulemap */, + 535B4437B92483FE0DEFB49F0233CAA2 /* TouchDraw-dummy.m */, + F83D3ADF240DC34AEA8AAC618DF185D2 /* TouchDraw-Info.plist */, + AB4305B9D381159CE22D0332EF5F3E94 /* TouchDraw-prefix.pch */, + 5444EA758DA8277797948CF46A4BD61D /* TouchDraw-umbrella.h */, + 71C93A90E631872513BD16F6A5CBB773 /* TouchDraw.debug.xcconfig */, + B99C1463AE131BB2E21DC0A3289E396C /* TouchDraw.release.xcconfig */, ); - name = Frameworks; + name = "Support Files"; + path = "Demo/Pods/Target Support Files/TouchDraw"; sourceTree = ""; }; - C0544D9056987953E1D028DB42DB96D2 /* Development Pods */ = { + 965DDADE1A5FCA7F4F91F39C75A16D20 /* Development Pods */ = { isa = PBXGroup; children = ( - BA6BE01DF0254F9BEAA01F3F68DBC6BD /* TouchDraw */, + 03C6AAD9D1FB7A7931B4004660D51EAA /* TouchDraw */, ); name = "Development Pods"; sourceTree = ""; }; - C876898B85B969C5312AA492FAC82681 /* Pod */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 7952030671E6CB4890FE0FD7D4708782 /* LICENSE */, - E6532C1CC6EA56806D582433FED4F597 /* README.md */, - 1CF060493070FAC4B5749C740B90244F /* TouchDraw.podspec */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 965DDADE1A5FCA7F4F91F39C75A16D20 /* Development Pods */, + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, + 3077EFCD38303A48958BA55B2CD44E5C /* Products */, + E1D450F7B48CE34D607114A7299BD9A6 /* Targets Support Files */, ); - name = Pod; sourceTree = ""; }; - D364163B230110BB2E11ED4D418CDFA1 /* Support Files */ = { + D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { isa = PBXGroup; children = ( - B03A35E56F64A79658C671621D48E157 /* Info.plist */, - FAD03DDE9F824CCE3F63561D29275EDC /* TouchDraw.modulemap */, - EEAC8C2DC0377C3D9D1954EFD00FEE54 /* TouchDraw.xcconfig */, - FC5B11770B0463A6F855BE9BC66C0BE6 /* TouchDraw-dummy.m */, - D9D008CEC81CF49BD4ED7EC10CF15C4B /* TouchDraw-prefix.pch */, - 1CF7E4ABD9284152023AE9181F9559A4 /* TouchDraw-umbrella.h */, + 578452D2E740E91742655AC8F1636D1F /* iOS */, ); - name = "Support Files"; - path = "Demo/Pods/Target Support Files/TouchDraw"; + name = Frameworks; sourceTree = ""; }; - DDD76B1D8DA4F9149B42CF7ECFCCF7A9 /* Products */ = { + E1D450F7B48CE34D607114A7299BD9A6 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 86C1D0F22E480D6EC9D9EB69C3F344BF /* Pods_TouchDrawDemo.framework */, - 9049C6C4D412D05000D515734CCA53B5 /* TouchDraw.framework */, + 0754750D27FCB4E9AD45783F7F7ED513 /* Pods-TouchDrawDemo */, ); - name = Products; + name = "Targets Support Files"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 7822C20686F04D833562CF1495C307AC /* Headers */ = { + 89813EFE68021BE7D0CD023843A6C1A5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D2896764543D11E9EF00D43E50832E8F /* Pods-TouchDrawDemo-umbrella.h in Headers */, + 211BC6B5249B4019D4E96B2DC1C033B1 /* Pods-TouchDrawDemo-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E8736C0938189B9BEC246E1B526A978C /* Headers */ = { + FC3F0EA066AC99758052AF1B2DCC65F4 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - F30434CB38D87A55A32714821060AE84 /* TouchDraw-umbrella.h in Headers */, + 0B7FB5AEF4AFE5656F49FC413EF85A68 /* TouchDraw-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 8A664C61952295D65EF88D6C26E6D1F6 /* TouchDraw */ = { + 4078B568085D268C4E7C16909219F06F /* TouchDraw */ = { isa = PBXNativeTarget; - buildConfigurationList = B49A96FAF06DD89BDF11D087A7A9C41B /* Build configuration list for PBXNativeTarget "TouchDraw" */; + buildConfigurationList = 4EBB3B7E7AA48F79976D8FDD4DC27228 /* Build configuration list for PBXNativeTarget "TouchDraw" */; buildPhases = ( - B69D2F33B36BC464C8F74A9902F84817 /* Sources */, - 297FD8A2E02439679B727FBC012234CA /* Frameworks */, - E8736C0938189B9BEC246E1B526A978C /* Headers */, + FC3F0EA066AC99758052AF1B2DCC65F4 /* Headers */, + B6E795E9C40AF26135EEE154F89DCEB9 /* Sources */, + C001423B88228A2DADC9DEEB52DA98F9 /* Frameworks */, + FA8C4BC0E1F7AAE8E9B334B62A71B051 /* Resources */, ); buildRules = ( ); @@ -220,96 +221,110 @@ ); name = TouchDraw; productName = TouchDraw; - productReference = 9049C6C4D412D05000D515734CCA53B5 /* TouchDraw.framework */; + productReference = D5A344F9F2434E66FB5F1D5A3846DB8D /* TouchDraw */; productType = "com.apple.product-type.framework"; }; - C4A29C4C601FBFE6B24F6FDE72449E08 /* Pods-TouchDrawDemo */ = { + 7A871CE577368070176CD9511C551648 /* Pods-TouchDrawDemo */ = { isa = PBXNativeTarget; - buildConfigurationList = ACCBC9F6DD72BEFE4561BCAA45F02BEE /* Build configuration list for PBXNativeTarget "Pods-TouchDrawDemo" */; + buildConfigurationList = 3728BAD3BB84AAE1B5FEBDA7FF2D2B09 /* Build configuration list for PBXNativeTarget "Pods-TouchDrawDemo" */; buildPhases = ( - A15273B6A6AC454B55C935800E0CE375 /* Sources */, - 2D77D4D06259C69A794D61B9EB2BF076 /* Frameworks */, - 7822C20686F04D833562CF1495C307AC /* Headers */, + 89813EFE68021BE7D0CD023843A6C1A5 /* Headers */, + 8B2227A61DCCD495A8555782349AF713 /* Sources */, + 32782AA11DFFDB9B9E789BAB5CFA401F /* Frameworks */, + 48D3178E20C35F2FDDB895826A9E0517 /* Resources */, ); buildRules = ( ); dependencies = ( - 31462CF90EF471D4E28F7408DF563E57 /* PBXTargetDependency */, + D3B35B855917C6BBB1199C778A8CE4BC /* PBXTargetDependency */, ); name = "Pods-TouchDrawDemo"; - productName = "Pods-TouchDrawDemo"; - productReference = 86C1D0F22E480D6EC9D9EB69C3F344BF /* Pods_TouchDrawDemo.framework */; + productName = Pods_TouchDrawDemo; + productReference = 9DF14A2248C17B3DE202FAACF1A74E0F /* Pods-TouchDrawDemo */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; - TargetAttributes = { - 8A664C61952295D65EF88D6C26E6D1F6 = { - LastSwiftMigration = 1000; - }; - }; + LastSwiftUpdateCheck = 1300; + LastUpgradeCheck = 1300; }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( + Base, en, ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = DDD76B1D8DA4F9149B42CF7ECFCCF7A9 /* Products */; + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 3077EFCD38303A48958BA55B2CD44E5C /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - C4A29C4C601FBFE6B24F6FDE72449E08 /* Pods-TouchDrawDemo */, - 8A664C61952295D65EF88D6C26E6D1F6 /* TouchDraw */, + 7A871CE577368070176CD9511C551648 /* Pods-TouchDrawDemo */, + 4078B568085D268C4E7C16909219F06F /* TouchDraw */, ); }; /* End PBXProject section */ +/* Begin PBXResourcesBuildPhase section */ + 48D3178E20C35F2FDDB895826A9E0517 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FA8C4BC0E1F7AAE8E9B334B62A71B051 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ - A15273B6A6AC454B55C935800E0CE375 /* Sources */ = { + 8B2227A61DCCD495A8555782349AF713 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1A06261ECC24E3CF4E0128AB1EEC67C9 /* Pods-TouchDrawDemo-dummy.m in Sources */, + C6C09CF502546B170BC035E6949EED3E /* Pods-TouchDrawDemo-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - B69D2F33B36BC464C8F74A9902F84817 /* Sources */ = { + B6E795E9C40AF26135EEE154F89DCEB9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 540DA4C977BB1EB83AC3429456AB57A7 /* Stroke.swift in Sources */, - D75775C43EC30E2F9EEBC9C750958B93 /* StrokeSettings.swift in Sources */, - 89FCBC63F997A86D4E6C7DE16554F95A /* TouchDraw-dummy.m in Sources */, - 77B489A6B667A67FB29CAF772249E8F2 /* TouchDrawView.swift in Sources */, + 901A90B21627B4D541D9D2E3E097620C /* Stroke.swift in Sources */, + A563B92956DA6B1FA7658D6CDB436D05 /* StrokeSettings.swift in Sources */, + 8AACAB505466AEEBB659723597BC0010 /* TouchDraw-dummy.m in Sources */, + 9265DE468D201652203B28B34C88A41A /* TouchDrawView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 31462CF90EF471D4E28F7408DF563E57 /* PBXTargetDependency */ = { + D3B35B855917C6BBB1199C778A8CE4BC /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = TouchDraw; - target = 8A664C61952295D65EF88D6C26E6D1F6 /* TouchDraw */; - targetProxy = A5150F110282B41959C3B04C5282849C /* PBXContainerItemProxy */; + target = 4078B568085D268C4E7C16909219F06F /* TouchDraw */; + targetProxy = 8E35F417A86D02995FEDB2F4D222642B /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 26F1E8EB877E8DBEC15797D9156B1CC4 /* Release */ = { + 68503FC2431E8A37AE0FB79845599370 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EEAC8C2DC0377C3D9D1954EFD00FEE54 /* TouchDraw.xcconfig */; + baseConfigurationReference = D0496BAB559274643EE7EE1E2E099158 /* Pods-TouchDrawDemo.release.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = ""; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -318,19 +333,19 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/TouchDraw/TouchDraw-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/TouchDraw/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/TouchDraw/TouchDraw.modulemap"; - PRODUCT_MODULE_NAME = TouchDraw; - PRODUCT_NAME = TouchDraw; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -338,12 +353,11 @@ }; name = Release; }; - 688403BFA3609BBA41CFFF78A23A8727 /* Debug */ = { + 6E2567B4BB8D2927ED8D381CC59A6391 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B7A20CC8A469F8EA1D07FA29D719483C /* Pods-TouchDrawDemo.debug.xcconfig */; + baseConfigurationReference = C12551E4E94CE844862E86A3A662F241 /* Pods-TouchDrawDemo.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -352,7 +366,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-TouchDrawDemo/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -365,18 +379,48 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 85CB0722012504192AEDFF2AC824F695 /* Release */ = { + 6F8841CFBC22A1D21664A78055B72922 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 71C93A90E631872513BD16F6A5CBB773 /* TouchDraw.debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/TouchDraw/TouchDraw-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/TouchDraw/TouchDraw-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/TouchDraw/TouchDraw.modulemap"; + PRODUCT_MODULE_NAME = TouchDraw; + PRODUCT_NAME = TouchDraw; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8F43E8ACC75C6601D5016EC4DBD476D1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -399,22 +443,24 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; + DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -424,19 +470,23 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; - name = Release; + name = Debug; }; - B5E1F9E9C97F621392EEA35F0C664198 /* Release */ = { + 96FC937F9C05C7467D7014D952B370B2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8DFD433397FEB7BBB36D11772D8E766A /* Pods-TouchDrawDemo.release.xcconfig */; + baseConfigurationReference = B99C1463AE131BB2E21DC0A3289E396C /* TouchDraw.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -445,20 +495,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-TouchDrawDemo/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/TouchDraw/TouchDraw-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/TouchDraw/TouchDraw-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/TouchDraw/TouchDraw.modulemap"; + PRODUCT_MODULE_NAME = TouchDraw; + PRODUCT_NAME = TouchDraw; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -466,10 +514,11 @@ }; name = Release; }; - B7E209B13D30439ACA24E5A807A68220 /* Debug */ = { + 975D96EA061DE0BC33417E43C6BC053C /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -492,25 +541,21 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", + "POD_CONFIGURATION_RELEASE=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -520,78 +565,48 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; SYMROOT = "${SRCROOT}/../build"; }; - name = Debug; - }; - BD8BBAB7931DA090DBCAEFD328DB9DF7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EEAC8C2DC0377C3D9D1954EFD00FEE54 /* TouchDraw.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/TouchDraw/TouchDraw-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/TouchDraw/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/TouchDraw/TouchDraw.modulemap"; - PRODUCT_MODULE_NAME = TouchDraw; - PRODUCT_NAME = TouchDraw; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 3728BAD3BB84AAE1B5FEBDA7FF2D2B09 /* Build configuration list for PBXNativeTarget "Pods-TouchDrawDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( - B7E209B13D30439ACA24E5A807A68220 /* Debug */, - 85CB0722012504192AEDFF2AC824F695 /* Release */, + 6E2567B4BB8D2927ED8D381CC59A6391 /* Debug */, + 68503FC2431E8A37AE0FB79845599370 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - ACCBC9F6DD72BEFE4561BCAA45F02BEE /* Build configuration list for PBXNativeTarget "Pods-TouchDrawDemo" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 688403BFA3609BBA41CFFF78A23A8727 /* Debug */, - B5E1F9E9C97F621392EEA35F0C664198 /* Release */, + 8F43E8ACC75C6601D5016EC4DBD476D1 /* Debug */, + 975D96EA061DE0BC33417E43C6BC053C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B49A96FAF06DD89BDF11D087A7A9C41B /* Build configuration list for PBXNativeTarget "TouchDraw" */ = { + 4EBB3B7E7AA48F79976D8FDD4DC27228 /* Build configuration list for PBXNativeTarget "TouchDraw" */ = { isa = XCConfigurationList; buildConfigurations = ( - BD8BBAB7931DA090DBCAEFD328DB9DF7 /* Debug */, - 26F1E8EB877E8DBEC15797D9156B1CC4 /* Release */, + 6F8841CFBC22A1D21664A78055B72922 /* Debug */, + 96FC937F9C05C7467D7014D952B370B2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; } diff --git a/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh b/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh index ff6dcba..3e54abd 100755 --- a/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh +++ b/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh @@ -3,10 +3,15 @@ set -e set -u set -o pipefail +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" @@ -14,9 +19,8 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 # This protects against multiple targets copying the same framework dependency at the same time. The solution # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html @@ -36,19 +40,34 @@ install_framework() local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" + echo "Symlinked..." + source="$(readlink -f "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" fi # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" fi # Strip invalid architectures so "fat" simulator / device frameworks work on device @@ -62,7 +81,7 @@ install_framework() # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" @@ -70,77 +89,91 @@ install_framework() done fi } - # Copies and strips a vendored dSYM install_dsym() { local source="$1" + warn_missing_arch=${2:-true} if [ -r "$source" ]; then - # Copy the dSYM into a the targets temp dir. + # Copy the dSYM into the targets temp dir. echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" local basename - basename="$(basename -s .framework.dSYM "$source")" - binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then - strip_invalid_archs "$binary" + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" else # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" fi fi } -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 # Strip invalid architectures strip_invalid_archs() { binary="$1" + warn_missing_arch=${2:-true} # Get architectures for current target binary binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" # Intersect them with the architectures we are building for intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" # If there are no archs supported by this binary then warn the user if [[ -z "$intersected_archs" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - STRIP_BINARY_RETVAL=0 + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 return fi stripped="" for arch in $binary_archs; do if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + lipo -remove "$arch" -output "$binary" "$binary" stripped="$stripped $arch" fi done if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi - STRIP_BINARY_RETVAL=1 + STRIP_BINARY_RETVAL=0 } +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/TouchDraw/TouchDraw.framework" diff --git a/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.debug.xcconfig b/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.debug.xcconfig index b8ae4e1..0d3d4a0 100644 --- a/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.debug.xcconfig +++ b/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.debug.xcconfig @@ -1,11 +1,15 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TouchDraw" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/TouchDraw/TouchDraw.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TouchDraw/TouchDraw.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "TouchDraw" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.release.xcconfig b/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.release.xcconfig index b8ae4e1..0d3d4a0 100644 --- a/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.release.xcconfig +++ b/Demo/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo.release.xcconfig @@ -1,11 +1,15 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TouchDraw" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/TouchDraw/TouchDraw.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/TouchDraw/TouchDraw.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift OTHER_LDFLAGS = $(inherited) -framework "TouchDraw" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Demo/TouchDrawDemo.xcodeproj/project.pbxproj b/Demo/TouchDrawDemo.xcodeproj/project.pbxproj index d498bc8..e6e5bfd 100644 --- a/Demo/TouchDrawDemo.xcodeproj/project.pbxproj +++ b/Demo/TouchDrawDemo.xcodeproj/project.pbxproj @@ -152,6 +152,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -204,7 +205,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh", "${BUILT_PRODUCTS_DIR}/TouchDraw/TouchDraw.framework", ); name = "[CP] Embed Pods Frameworks"; @@ -213,7 +214,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TouchDrawDemo/Pods-TouchDrawDemo-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -296,7 +297,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -343,7 +344,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -357,7 +358,10 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; INFOPLIST_FILE = TouchDrawDemo/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "TouchDraw Demo"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.dehli.touchdraw; @@ -373,7 +377,10 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; INFOPLIST_FILE = TouchDrawDemo/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "TouchDraw Demo"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.dehli.touchdraw; diff --git a/Demo/TouchDrawDemo/Info.plist b/Demo/TouchDrawDemo/Info.plist index db36e5d..17176d2 100644 --- a/Demo/TouchDrawDemo/Info.plist +++ b/Demo/TouchDrawDemo/Info.plist @@ -14,6 +14,8 @@ $(PRODUCT_NAME) CFBundlePackageType APPL + CFBundleShortVersionString + 1.0 CFBundleSignature ???? CFBundleVersion diff --git a/Sources/TouchDrawView.swift b/Sources/TouchDrawView.swift index 4b56b7d..03c711c 100644 --- a/Sources/TouchDrawView.swift +++ b/Sources/TouchDrawView.swift @@ -290,6 +290,7 @@ fileprivate extension TouchDrawView { /// Clears view, then draws stack func redrawStack() { + if imageView.frame.size == .zero { return } beginImageContext() image?.draw(in: imageView.bounds) for stroke in stack { diff --git a/TouchDraw.podspec b/TouchDraw.podspec index b031ad5..0d2ce00 100644 --- a/TouchDraw.podspec +++ b/TouchDraw.podspec @@ -35,7 +35,7 @@ Pod::Spec.new do |s| s.social_media_url = "http://twitter.com/cpdehli" s.platform = :ios - s.ios.deployment_target = "8.0" + s.ios.deployment_target = "12.0" s.source = { :git => "https://github.com/dehli/TouchDraw.git", :tag => "#{s.version}"} s.source_files = "Sources/**/*.{swift}" diff --git a/TouchDraw.xcodeproj/project.pbxproj b/TouchDraw.xcodeproj/project.pbxproj index 02f1881..2cd005a 100644 --- a/TouchDraw.xcodeproj/project.pbxproj +++ b/TouchDraw.xcodeproj/project.pbxproj @@ -178,6 +178,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 89F60F611BC9580000BCDD93; @@ -387,7 +388,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = TouchDraw/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = io.dehli.TouchDraw; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -409,7 +410,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = TouchDraw/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = io.dehli.TouchDraw; PRODUCT_NAME = "$(TARGET_NAME)";