From b391257f59288b5b7b71eb53a2eac6dc844557f4 Mon Sep 17 00:00:00 2001 From: Wes Smith Date: Thu, 25 Aug 2022 13:03:47 -0400 Subject: [PATCH] Rename ObjC Order to BTNOrder with alias for compatibility --- ButtonMerchant.xcodeproj/project.pbxproj | 228 +++++++------- Examples/Objective-C/Order.h | 37 +++ Examples/Objective-C/Order.m | 30 ++ Gemfile.lock | 286 ++++++++++-------- Podfile | 2 - Podfile.lock | 11 +- Source/ButtonMerchant.h | 1 + Source/Order.swift | 2 +- .../IntegrationTests/OrderCompatibilityTest.m | 66 ++++ 9 files changed, 421 insertions(+), 242 deletions(-) create mode 100644 Examples/Objective-C/Order.h create mode 100644 Examples/Objective-C/Order.m create mode 100644 Tests/IntegrationTests/OrderCompatibilityTest.m diff --git a/ButtonMerchant.xcodeproj/project.pbxproj b/ButtonMerchant.xcodeproj/project.pbxproj index dbd7dd1..1813b91 100644 --- a/ButtonMerchant.xcodeproj/project.pbxproj +++ b/ButtonMerchant.xcodeproj/project.pbxproj @@ -7,14 +7,12 @@ objects = { /* Begin PBXBuildFile section */ - 5C19E2D01D793A58AB966D9F /* Pods_Example_ObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 085266E31E9802713F658F7F /* Pods_Example_ObjC.framework */; }; + 20B25FD4CC0EFA64DBAB0EC0 /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA88F4BE24264325D8DECC5F /* Pods_Example.framework */; }; + 3579B34EB4DCF4A18957F94F /* Pods_IntegrationTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74EAA781E3DE83E6946977A0 /* Pods_IntegrationTests.framework */; }; 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; - 64F2126DB5F1EF510385A537 /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17BD78D774301269568AEED3 /* Pods_Example.framework */; }; - 7A698220663E96029C986423 /* Pods_IntegrationTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68DBE9F4142EFF985186194F /* Pods_IntegrationTests.framework */; }; - 84599F861351D17A31822AE6 /* Pods_UnitTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C56FB26591C085EA0C43519A /* Pods_UnitTests.framework */; }; 9E0DBB1C207BB55A0066A35D /* SystemTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0DBB1B207BB55A0066A35D /* SystemTests.swift */; }; 9E145C90208F86E600B01ECD /* BundleExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EF66C35208F851100D73AB1 /* BundleExtensions.swift */; }; 9E2B4311206C1275009F2886 /* Client.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2B4310206C1275009F2886 /* Client.swift */; }; @@ -48,6 +46,8 @@ 9EDED112208FA4D70049A56A /* TestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EDED111208FA4D70049A56A /* TestBundle.swift */; }; 9EEF58DD208F9161009DA9B6 /* UserAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9ED488D4208F75C7000DA7FC /* UserAgent.swift */; }; 9EFF2B5A2065965000250269 /* UserDefaultsExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EFF2B592065965000250269 /* UserDefaultsExtensions.swift */; }; + C58F12C310C9036F54044E4E /* Pods_UnitTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E584BA5ABAAD6A414C0E197 /* Pods_UnitTests.framework */; }; + CF54FF8248C97A71A146C47C /* Pods_Example_ObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 699CD12BFB034BA9B96E4424 /* Pods_Example_ObjC.framework */; }; DA0FA2A0205C1B3A008296A6 /* Core.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0FA29F205C1B3A008296A6 /* Core.swift */; }; DA0FA2A3205C1EF2008296A6 /* TestCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA0FA2A2205C1EF2008296A6 /* TestCore.swift */; }; DA191A2422D4F75C00ED88B9 /* TestReportOrderRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA191A2322D4F75B00ED88B9 /* TestReportOrderRequest.swift */; }; @@ -92,6 +92,7 @@ DC4AAD4422B13CD3005CE460 /* OrderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4AAD4322B13CD3005CE460 /* OrderTests.swift */; }; DCF4AD0422B421FB000DA3B2 /* ReportOrderBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF4AD0322B421FB000DA3B2 /* ReportOrderBody.swift */; }; DCF4AD0722B7E31C000DA3B2 /* ReportOrderBodyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF4AD0522B7E2FF000DA3B2 /* ReportOrderBodyTests.swift */; }; + DE0F12AB28B7CD160047A61E /* OrderCompatibilityTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0F12AA28B7CD160047A61E /* OrderCompatibilityTest.m */; }; DE1706DB20855B06009FF30B /* UIDeviceExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE1706DA20855B06009FF30B /* UIDeviceExtensions.swift */; }; DE1706DD20855B22009FF30B /* UIScreenExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE1706DC20855B22009FF30B /* UIScreenExtensions.swift */; }; DE1706E020855F4C009FF30B /* LocaleExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE1706DE20855B31009FF30B /* LocaleExtensions.swift */; }; @@ -107,6 +108,8 @@ DE5464DB2107CB6E001809F3 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE5464DA2107CB6E001809F3 /* ViewController.m */; }; DE5464E02107CB6F001809F3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DE5464DF2107CB6F001809F3 /* Assets.xcassets */; }; DE5464E32107CB6F001809F3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE5464E12107CB6F001809F3 /* LaunchScreen.storyboard */; }; + DE5D375328B7D173001AA004 /* Order.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0F12AD28B7CD970047A61E /* Order.m */; }; + DE5D375428B7D174001AA004 /* Order.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0F12AD28B7CD970047A61E /* Order.m */; }; DE865F722052E79A00F4054D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE865F712052E79A00F4054D /* AppDelegate.swift */; }; DE865F8D2052FE5D00F4054D /* ButtonMerchant.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE865F842052FE5D00F4054D /* ButtonMerchant.framework */; }; DE865F962052FE5D00F4054D /* ButtonMerchant.h in Headers */ = {isa = PBXBuildFile; fileRef = DE865F862052FE5D00F4054D /* ButtonMerchant.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -141,6 +144,20 @@ remoteGlobalIDString = DE865F832052FE5D00F4054D; remoteInfo = ButtonMerchant; }; + DE18FC5A28B7E24500558C2E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 607FACC81AFB9204008FA782 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DE865F832052FE5D00F4054D; + remoteInfo = ButtonMerchant; + }; + DE18FC5C28B7E24900558C2E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 607FACC81AFB9204008FA782 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DE865F832052FE5D00F4054D; + remoteInfo = ButtonMerchant; + }; DE865F8E2052FE5D00F4054D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 607FACC81AFB9204008FA782 /* Project object */; @@ -151,9 +168,11 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 085266E31E9802713F658F7F /* Pods_Example_ObjC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example_ObjC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 17BD78D774301269568AEED3 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 46CACCC0188FD96E41F2056C /* Pods-Example-ObjC.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-ObjC.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Example-ObjC/Pods-Example-ObjC.debug.xcconfig"; sourceTree = ""; }; + 1056D6CD4EC26DA7A7B7E86D /* Pods-Example-ObjC.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-ObjC.release.xcconfig"; path = "Target Support Files/Pods-Example-ObjC/Pods-Example-ObjC.release.xcconfig"; sourceTree = ""; }; + 1885C61CD9A0729B7F905B78 /* Pods-UnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.release.xcconfig"; path = "Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig"; sourceTree = ""; }; + 2623BFDF579D600A4D1EF03D /* Pods-Example-ObjC.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-ObjC.debug.xcconfig"; path = "Target Support Files/Pods-Example-ObjC/Pods-Example-ObjC.debug.xcconfig"; sourceTree = ""; }; + 30A5E61E3961827FE1DC1313 /* Pods-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-IntegrationTests/Pods-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; + 3E584BA5ABAAD6A414C0E197 /* Pods_UnitTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UnitTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACD01AFB9204008FA782 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -162,9 +181,10 @@ 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACEB1AFB9204008FA782 /* ButtonMerchantTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonMerchantTests.swift; sourceTree = ""; }; - 62DF1DB6AC59E20539F259BE /* Pods-UnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig"; sourceTree = ""; }; - 68DBE9F4142EFF985186194F /* Pods_IntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8B26E3706FAA0AA4ED9D4CE1 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = ""; }; + 699CD12BFB034BA9B96E4424 /* Pods_Example_ObjC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example_ObjC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74EAA781E3DE83E6946977A0 /* Pods_IntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9124C494009EAB665509D4B8 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = ""; }; + 9CEBDCB053D975319805ABD0 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = ""; }; 9E0DBB1B207BB55A0066A35D /* SystemTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemTests.swift; sourceTree = ""; }; 9E2B4310206C1275009F2886 /* Client.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Client.swift; sourceTree = ""; }; 9E2B4312206C12BC009F2886 /* URLSessionDataTaskExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLSessionDataTaskExtensions.swift; sourceTree = ""; }; @@ -198,10 +218,8 @@ 9EDED111208FA4D70049A56A /* TestBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestBundle.swift; sourceTree = ""; }; 9EF66C35208F851100D73AB1 /* BundleExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleExtensions.swift; sourceTree = ""; }; 9EFF2B592065965000250269 /* UserDefaultsExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtensions.swift; sourceTree = ""; }; - A449A8C8A52DA7018CB71758 /* Pods-Example-ObjC.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-ObjC.release.xcconfig"; path = "Pods/Target Support Files/Pods-Example-ObjC/Pods-Example-ObjC.release.xcconfig"; sourceTree = ""; }; - C56FB26591C085EA0C43519A /* Pods_UnitTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UnitTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CB54C99D707D2F86DA15C699 /* Pods-IntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IntegrationTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-IntegrationTests/Pods-IntegrationTests.release.xcconfig"; sourceTree = ""; }; - CFBF1D501F9B477113362BEF /* Pods-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IntegrationTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-IntegrationTests/Pods-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; + BFE0F7CF68C0AC747C9567E2 /* Pods-IntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IntegrationTests.release.xcconfig"; path = "Target Support Files/Pods-IntegrationTests/Pods-IntegrationTests.release.xcconfig"; sourceTree = ""; }; + CA88F4BE24264325D8DECC5F /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; DA0FA29F205C1B3A008296A6 /* Core.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Core.swift; sourceTree = ""; }; DA0FA2A2205C1EF2008296A6 /* TestCore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestCore.swift; sourceTree = ""; }; DA191A2322D4F75B00ED88B9 /* TestReportOrderRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestReportOrderRequest.swift; sourceTree = ""; }; @@ -246,8 +264,9 @@ DC4AAD4322B13CD3005CE460 /* OrderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderTests.swift; sourceTree = ""; }; DCF4AD0322B421FB000DA3B2 /* ReportOrderBody.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportOrderBody.swift; sourceTree = ""; }; DCF4AD0522B7E2FF000DA3B2 /* ReportOrderBodyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportOrderBodyTests.swift; sourceTree = ""; }; - DDA5C34AC9410445D780EB22 /* Pods-UnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig"; sourceTree = ""; }; - DE153DA4FDE6DCF451A438B1 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = ""; }; + DE0F12AA28B7CD160047A61E /* OrderCompatibilityTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OrderCompatibilityTest.m; sourceTree = ""; }; + DE0F12AC28B7CD970047A61E /* Order.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Order.h; sourceTree = ""; }; + DE0F12AD28B7CD970047A61E /* Order.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Order.m; sourceTree = ""; }; DE1706D820855676009FF30B /* ASIdentifierManagerExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ASIdentifierManagerExtensions.swift; sourceTree = ""; }; DE1706DA20855B06009FF30B /* UIDeviceExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIDeviceExtensions.swift; sourceTree = ""; }; DE1706DC20855B22009FF30B /* UIScreenExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIScreenExtensions.swift; sourceTree = ""; }; @@ -281,7 +300,7 @@ DE865F8C2052FE5D00F4054D /* UnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DE865FA2205304C700F4054D /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; DEE61B2C20656A090039E47A /* XCTestExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTestExtensions.swift; sourceTree = ""; }; - ECBD32D6815889EF663EBA5B /* Pods_ButtonMerchant.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ButtonMerchant.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F3F48F5FBD0D52C07A253FB6 /* Pods-UnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.debug.xcconfig"; path = "Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig"; sourceTree = ""; }; FB5AA6AA24D0A11D0057F3A0 /* ApplicationId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationId.swift; sourceTree = ""; }; FB5AA6AC24D0A19B0057F3A0 /* ApplicationIdTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationIdTests.swift; sourceTree = ""; }; FB70030724CF2FDE0050E021 /* AppEventsRequestBody.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppEventsRequestBody.swift; sourceTree = ""; }; @@ -304,7 +323,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 64F2126DB5F1EF510385A537 /* Pods_Example.framework in Frameworks */, + 20B25FD4CC0EFA64DBAB0EC0 /* Pods_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -313,7 +332,7 @@ buildActionMask = 2147483647; files = ( 9E771543206AAC0F0051728C /* ButtonMerchant.framework in Frameworks */, - 7A698220663E96029C986423 /* Pods_IntegrationTests.framework in Frameworks */, + 3579B34EB4DCF4A18957F94F /* Pods_IntegrationTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -321,7 +340,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5C19E2D01D793A58AB966D9F /* Pods_Example_ObjC.framework in Frameworks */, + CF54FF8248C97A71A146C47C /* Pods_Example_ObjC.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -337,28 +356,13 @@ buildActionMask = 2147483647; files = ( DE865F8D2052FE5D00F4054D /* ButtonMerchant.framework in Frameworks */, - 84599F861351D17A31822AE6 /* Pods_UnitTests.framework in Frameworks */, + C58F12C310C9036F54044E4E /* Pods_UnitTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 50D6E3CC979FCE372E4339F9 /* Pods */ = { - isa = PBXGroup; - children = ( - 8B26E3706FAA0AA4ED9D4CE1 /* Pods-Example.debug.xcconfig */, - DE153DA4FDE6DCF451A438B1 /* Pods-Example.release.xcconfig */, - CFBF1D501F9B477113362BEF /* Pods-IntegrationTests.debug.xcconfig */, - CB54C99D707D2F86DA15C699 /* Pods-IntegrationTests.release.xcconfig */, - DDA5C34AC9410445D780EB22 /* Pods-UnitTests.debug.xcconfig */, - 62DF1DB6AC59E20539F259BE /* Pods-UnitTests.release.xcconfig */, - 46CACCC0188FD96E41F2056C /* Pods-Example-ObjC.debug.xcconfig */, - A449A8C8A52DA7018CB71758 /* Pods-Example-ObjC.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 607FACC71AFB9204008FA782 = { isa = PBXGroup; children = ( @@ -367,8 +371,8 @@ DE865F762052F90600F4054D /* Source */, 9E77154A206AACEA0051728C /* Tests */, 607FACD11AFB9204008FA782 /* Products */, - 50D6E3CC979FCE372E4339F9 /* Pods */, - CBD1C029810C0BA07350C85F /* Frameworks */, + 641E1866FA1FE48269C7CC51 /* Pods */, + 84EEF673781F500EC720ECFA /* Frameworks */, ); sourceTree = ""; }; @@ -456,11 +460,38 @@ name = Deployment; sourceTree = ""; }; + 641E1866FA1FE48269C7CC51 /* Pods */ = { + isa = PBXGroup; + children = ( + 9124C494009EAB665509D4B8 /* Pods-Example.debug.xcconfig */, + 9CEBDCB053D975319805ABD0 /* Pods-Example.release.xcconfig */, + 2623BFDF579D600A4D1EF03D /* Pods-Example-ObjC.debug.xcconfig */, + 1056D6CD4EC26DA7A7B7E86D /* Pods-Example-ObjC.release.xcconfig */, + 30A5E61E3961827FE1DC1313 /* Pods-IntegrationTests.debug.xcconfig */, + BFE0F7CF68C0AC747C9567E2 /* Pods-IntegrationTests.release.xcconfig */, + F3F48F5FBD0D52C07A253FB6 /* Pods-UnitTests.debug.xcconfig */, + 1885C61CD9A0729B7F905B78 /* Pods-UnitTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 84EEF673781F500EC720ECFA /* Frameworks */ = { + isa = PBXGroup; + children = ( + CA88F4BE24264325D8DECC5F /* Pods_Example.framework */, + 699CD12BFB034BA9B96E4424 /* Pods_Example_ObjC.framework */, + 74EAA781E3DE83E6946977A0 /* Pods_IntegrationTests.framework */, + 3E584BA5ABAAD6A414C0E197 /* Pods_UnitTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9E77153F206AAC0F0051728C /* IntegrationTests */ = { isa = PBXGroup; children = ( 9E771540206AAC0F0051728C /* IntegrationTests.swift */, FB78CBC5261A6C110076D9C3 /* CustomerCompatibilityTest.m */, + DE0F12AA28B7CD160047A61E /* OrderCompatibilityTest.m */, 9E771542206AAC0F0051728C /* Info.plist */, ); path = IntegrationTests; @@ -524,18 +555,6 @@ path = Foundation; sourceTree = ""; }; - CBD1C029810C0BA07350C85F /* Frameworks */ = { - isa = PBXGroup; - children = ( - ECBD32D6815889EF663EBA5B /* Pods_ButtonMerchant.framework */, - 17BD78D774301269568AEED3 /* Pods_Example.framework */, - 68DBE9F4142EFF985186194F /* Pods_IntegrationTests.framework */, - C56FB26591C085EA0C43519A /* Pods_UnitTests.framework */, - 085266E31E9802713F658F7F /* Pods_Example_ObjC.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; DA0FA2A1205C1EE8008296A6 /* TestObjects */ = { isa = PBXGroup; children = ( @@ -607,6 +626,8 @@ DE5464D72107CB6E001809F3 /* AppDelegate.m */, DE5464D92107CB6E001809F3 /* ViewController.h */, DE5464DA2107CB6E001809F3 /* ViewController.m */, + DE0F12AC28B7CD970047A61E /* Order.h */, + DE0F12AD28B7CD970047A61E /* Order.m */, FB78CADF2618F9360076D9C3 /* Customer.h */, FB78CAE02618F9360076D9C3 /* Customer.m */, DE5464DC2107CB6E001809F3 /* Main.storyboard */, @@ -714,16 +735,16 @@ isa = PBXNativeTarget; buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "Example" */; buildPhases = ( - 0DBF513C760B01B0241CCCCB /* [CP] Check Pods Manifest.lock */, + A9ED7CCF6D5965D6D96DB67A /* [CP] Check Pods Manifest.lock */, DA0FA2BC2061AAD8008296A6 /* Swift Lint */, 607FACCC1AFB9204008FA782 /* Sources */, 607FACCD1AFB9204008FA782 /* Frameworks */, 607FACCE1AFB9204008FA782 /* Resources */, - B62D71854EA4037BEFF32151 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( + DE18FC5B28B7E24500558C2E /* PBXTargetDependency */, ); name = Example; productName = ButtonMerchant; @@ -734,7 +755,7 @@ isa = PBXNativeTarget; buildConfigurationList = 9E771548206AAC0F0051728C /* Build configuration list for PBXNativeTarget "IntegrationTests" */; buildPhases = ( - 0016642E65A8ACB4D6547E6D /* [CP] Check Pods Manifest.lock */, + 93D97D13BD72B5168C032C8F /* [CP] Check Pods Manifest.lock */, DECF9F28206B01F0009F3930 /* Swift Lint */, 9E77153A206AAC0F0051728C /* Sources */, 9E77153B206AAC0F0051728C /* Frameworks */, @@ -754,15 +775,15 @@ isa = PBXNativeTarget; buildConfigurationList = DE5464E92107CB70001809F3 /* Build configuration list for PBXNativeTarget "Example-ObjC" */; buildPhases = ( - 2A4B7DC1975AE2A7E042432F /* [CP] Check Pods Manifest.lock */, + 74E14F1295CD0C71CC67D747 /* [CP] Check Pods Manifest.lock */, DE5464D02107CB6E001809F3 /* Sources */, DE5464D12107CB6E001809F3 /* Frameworks */, DE5464D22107CB6E001809F3 /* Resources */, - F83DAB34F2D9FE164B737764 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( + DE18FC5D28B7E24900558C2E /* PBXTargetDependency */, ); name = "Example-ObjC"; productName = "Example-ObjC"; @@ -792,7 +813,7 @@ isa = PBXNativeTarget; buildConfigurationList = DE865F9F2052FE5D00F4054D /* Build configuration list for PBXNativeTarget "UnitTests" */; buildPhases = ( - E8730FA8780FE86FBE23AF57 /* [CP] Check Pods Manifest.lock */, + E17EC2204AFACB21E9903C79 /* [CP] Check Pods Manifest.lock */, DECAAF592065816600E2D983 /* Swift Lint */, DE865F882052FE5D00F4054D /* Sources */, DE865F892052FE5D00F4054D /* Frameworks */, @@ -928,76 +949,70 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 0016642E65A8ACB4D6547E6D /* [CP] Check Pods Manifest.lock */ = { + 74E14F1295CD0C71CC67D747 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-IntegrationTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-Example-ObjC-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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"; showEnvVarsInLog = 0; }; - 0DBF513C760B01B0241CCCCB /* [CP] Check Pods Manifest.lock */ = { + 93D97D13BD72B5168C032C8F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Example-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-IntegrationTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; 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"; showEnvVarsInLog = 0; }; - 2A4B7DC1975AE2A7E042432F /* [CP] Check Pods Manifest.lock */ = { + A9ED7CCF6D5965D6D96DB67A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Example-ObjC-checkManifestLockResult.txt", + outputFileListPaths = ( ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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"; - showEnvVarsInLog = 0; - }; - B62D71854EA4037BEFF32151 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/ButtonMerchant/ButtonMerchant.framework", - ); - name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ButtonMerchant.framework", + "$(DERIVED_FILE_DIR)/Pods-Example-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; DA0FA2BC2061AAD8008296A6 /* Swift Lint */ = { @@ -1056,16 +1071,20 @@ shellPath = /bin/sh; shellScript = "if [ -z \"$CI\" ] && [ ! \"$CARTHAGE\" ]; then\n \"${PODS_ROOT}/SwiftLint/swiftlint\"\nfi\n"; }; - E8730FA8780FE86FBE23AF57 /* [CP] Check Pods Manifest.lock */ = { + E17EC2204AFACB21E9903C79 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-UnitTests-checkManifestLockResult.txt", ); @@ -1074,24 +1093,6 @@ 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"; showEnvVarsInLog = 0; }; - F83DAB34F2D9FE164B737764 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Example-ObjC/Pods-Example-ObjC-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/ButtonMerchant/ButtonMerchant.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ButtonMerchant.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example-ObjC/Pods-Example-ObjC-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -1110,6 +1111,8 @@ buildActionMask = 2147483647; files = ( FB78CBC6261A6C110076D9C3 /* CustomerCompatibilityTest.m in Sources */, + DE5D375428B7D174001AA004 /* Order.m in Sources */, + DE0F12AB28B7CD160047A61E /* OrderCompatibilityTest.m in Sources */, FB78CBCC261A6C4F0076D9C3 /* Customer.m in Sources */, 9E771541206AAC0F0051728C /* IntegrationTests.swift in Sources */, ); @@ -1119,6 +1122,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + DE5D375328B7D173001AA004 /* Order.m in Sources */, DE38184A2108F7F900CCE1C1 /* main.m in Sources */, DE5464DB2107CB6E001809F3 /* ViewController.m in Sources */, DE5464D82107CB6E001809F3 /* AppDelegate.m in Sources */, @@ -1242,6 +1246,16 @@ target = DE865F832052FE5D00F4054D /* ButtonMerchant */; targetProxy = 9E771544206AAC0F0051728C /* PBXContainerItemProxy */; }; + DE18FC5B28B7E24500558C2E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE865F832052FE5D00F4054D /* ButtonMerchant */; + targetProxy = DE18FC5A28B7E24500558C2E /* PBXContainerItemProxy */; + }; + DE18FC5D28B7E24900558C2E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE865F832052FE5D00F4054D /* ButtonMerchant */; + targetProxy = DE18FC5C28B7E24900558C2E /* PBXContainerItemProxy */; + }; DE865F8F2052FE5D00F4054D /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = DE865F832052FE5D00F4054D /* ButtonMerchant */; @@ -1396,7 +1410,7 @@ }; 607FACF01AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8B26E3706FAA0AA4ED9D4CE1 /* Pods-Example.debug.xcconfig */; + baseConfigurationReference = 9124C494009EAB665509D4B8 /* Pods-Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1415,7 +1429,7 @@ }; 607FACF11AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DE153DA4FDE6DCF451A438B1 /* Pods-Example.release.xcconfig */; + baseConfigurationReference = 9CEBDCB053D975319805ABD0 /* Pods-Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1433,7 +1447,7 @@ }; 9E771546206AAC0F0051728C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CFBF1D501F9B477113362BEF /* Pods-IntegrationTests.debug.xcconfig */; + baseConfigurationReference = 30A5E61E3961827FE1DC1313 /* Pods-IntegrationTests.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -1460,7 +1474,7 @@ }; 9E771547206AAC0F0051728C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CB54C99D707D2F86DA15C699 /* Pods-IntegrationTests.release.xcconfig */; + baseConfigurationReference = BFE0F7CF68C0AC747C9567E2 /* Pods-IntegrationTests.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -1484,7 +1498,7 @@ }; DE5464E72107CB70001809F3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 46CACCC0188FD96E41F2056C /* Pods-Example-ObjC.debug.xcconfig */; + baseConfigurationReference = 2623BFDF579D600A4D1EF03D /* Pods-Example-ObjC.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -1512,7 +1526,7 @@ }; DE5464E82107CB70001809F3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A449A8C8A52DA7018CB71758 /* Pods-Example-ObjC.release.xcconfig */; + baseConfigurationReference = 1056D6CD4EC26DA7A7B7E86D /* Pods-Example-ObjC.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -1606,7 +1620,7 @@ }; DE865FA02052FE5D00F4054D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DDA5C34AC9410445D780EB22 /* Pods-UnitTests.debug.xcconfig */; + baseConfigurationReference = F3F48F5FBD0D52C07A253FB6 /* Pods-UnitTests.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -1631,7 +1645,7 @@ }; DE865FA12052FE5D00F4054D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 62DF1DB6AC59E20539F259BE /* Pods-UnitTests.release.xcconfig */; + baseConfigurationReference = 1885C61CD9A0729B7F905B78 /* Pods-UnitTests.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; diff --git a/Examples/Objective-C/Order.h b/Examples/Objective-C/Order.h new file mode 100644 index 0000000..37d5524 --- /dev/null +++ b/Examples/Objective-C/Order.h @@ -0,0 +1,37 @@ +// +// Order.h +// +// Copyright © 2022 Button, Inc. All rights reserved. (https://usebutton.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + + +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Exists to create an intentional conflict with ButtonMerchant Order class + */ +@interface Order : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/Examples/Objective-C/Order.m b/Examples/Objective-C/Order.m new file mode 100644 index 0000000..3500dc2 --- /dev/null +++ b/Examples/Objective-C/Order.m @@ -0,0 +1,30 @@ +// +// Order.m +// +// Copyright © 2022 Button, Inc. All rights reserved. (https://usebutton.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + + +#import "Order.h" + +@implementation Order + +@end diff --git a/Gemfile.lock b/Gemfile.lock index c16a64b..270222b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,108 +1,131 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.2) - activesupport (4.2.11.1) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) - algoliasearch (1.27.1) + CFPropertyList (3.0.5) + rexml + activesupport (6.1.6.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) + artifactory (3.0.15) atomos (0.1.3) - aws-eventstream (1.1.0) - aws-partitions (1.388.0) - aws-sdk-core (3.109.1) + aws-eventstream (1.2.0) + aws-partitions (1.621.0) + aws-sdk-core (3.135.0) aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.239.0) + aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) - jmespath (~> 1.0) - aws-sdk-kms (1.39.0) - aws-sdk-core (~> 3, >= 3.109.0) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.58.0) + aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.83.1) - aws-sdk-core (~> 3, >= 3.109.0) + aws-sdk-s3 (1.114.0) + aws-sdk-core (~> 3, >= 3.127.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.1) - aws-sigv4 (1.2.2) + aws-sigv4 (~> 1.4) + aws-sigv4 (1.5.1) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) - claide (1.0.3) - clamp (1.3.0) - cocoapods (1.9.1) - activesupport (>= 4.0.2, < 5) + claide (1.1.0) + clamp (1.3.2) + cocoapods (1.11.3) + addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.9.1) + cocoapods-core (= 1.11.3) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.2.2, < 2.0) + cocoapods-downloader (>= 1.4.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-stats (>= 1.0.0, < 2.0) cocoapods-trunk (>= 1.4.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) fourflusher (>= 2.3.0, < 3.0) gh_inspector (~> 1.0) - molinillo (~> 0.6.6) + molinillo (~> 0.8.0) nap (~> 1.0) - ruby-macho (~> 1.4) - xcodeproj (>= 1.14.0, < 2.0) - cocoapods-core (1.9.1) - activesupport (>= 4.0.2, < 6) + ruby-macho (>= 1.0, < 3.0) + xcodeproj (>= 1.21.0, < 2.0) + cocoapods-core (1.11.3) + activesupport (>= 5.0, < 7) + addressable (~> 2.8) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) fuzzy_match (~> 2.0.4) nap (~> 1.0) netrc (~> 0.11) + public_suffix (~> 4.0) typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.4) - cocoapods-downloader (1.3.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (1.6.3) cocoapods-plugins (1.0.0) nap - cocoapods-search (1.0.0) - cocoapods-stats (1.1.0) - cocoapods-trunk (1.4.1) + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) nap (>= 0.8, < 2.0) netrc (~> 0.11) - cocoapods-try (1.1.0) + cocoapods-try (1.2.0) colored (1.2) colored2 (3.1.2) - commander-fastlane (4.4.6) - highline (~> 1.7.2) - concurrent-ruby (1.1.6) + commander (4.6.0) + highline (~> 2.0.0) + concurrent-ruby (1.1.10) declarative (0.0.20) - declarative-option (0.1.0) - digest-crc (0.6.1) - rake (~> 13.0) + digest-crc (0.6.4) + rake (>= 12.0.0, < 14.0.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.6) - emoji_regex (3.2.1) + dotenv (2.8.1) + emoji_regex (3.2.3) escape (0.0.4) - ethon (0.12.0) - ffi (>= 1.3.0) - excon (0.78.0) - faraday (1.1.0) - multipart-post (>= 1.2, < 3) - ruby2_keywords + ethon (0.15.0) + ffi (>= 1.15.0) + excon (0.92.4) + faraday (1.10.2) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) http-cookie (~> 1.0.0) - faraday_middleware (1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) faraday (~> 1.0) - fastimage (2.2.0) - fastlane (2.166.0) + fastimage (2.2.6) + fastlane (2.209.1) CFPropertyList (>= 2.3, < 4.0.0) - addressable (>= 2.3, < 3.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) aws-sdk-s3 (~> 1.0) babosa (>= 1.0.3, < 2.0.0) bundler (>= 1.12.0, < 3.0.0) colored - commander-fastlane (>= 4.4.6, < 5.0.0) + commander (~> 4.6) dotenv (>= 2.1.1, < 3.0.0) emoji_regex (>= 0.1, < 4.0) excon (>= 0.71.0, < 1.0.0) @@ -111,18 +134,20 @@ GEM faraday_middleware (~> 1.0) fastimage (>= 2.1.0, < 3.0.0) gh_inspector (>= 1.1.2, < 2.0.0) - google-api-client (>= 0.37.0, < 0.39.0) - google-cloud-storage (>= 1.15.0, < 2.0.0) - highline (>= 1.7.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-storage (~> 1.31) + highline (~> 2.0) json (< 3.0.0) jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) multipart-post (~> 2.0.0) + naturally (~> 2.2) + optparse (~> 0.1.1) plist (>= 3.1.0, < 4.0.0) rubyzip (>= 2.0.0, < 3.0.0) security (= 0.1.3) simctl (~> 1.6.3) - slack-notifier (>= 2.0.0, < 3.0.0) terminal-notifier (>= 2.0.0, < 3.0.0) terminal-table (>= 1.4.5, < 2.0.0) tty-screen (>= 0.6.3, < 1.0.0) @@ -131,138 +156,153 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - ffi (1.12.2) + ffi (1.15.5) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) - google-api-client (0.38.0) + google-apis-androidpublisher_v3 (0.25.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-core (0.7.0) addressable (~> 2.5, >= 2.5.1) - googleauth (~> 0.9) - httpclient (>= 2.8.1, < 3.0) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) mini_mime (~> 1.0) representable (~> 3.0) - retriable (>= 2.0, < 4.0) - signet (~> 0.12) - google-cloud-core (1.5.0) + retriable (>= 2.0, < 4.a) + rexml + webrick + google-apis-iamcredentials_v1 (0.13.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-playcustomapp_v1 (0.10.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-storage_v1 (0.17.0) + google-apis-core (>= 0.7, < 2.a) + google-cloud-core (1.6.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) - google-cloud-env (1.4.0) - faraday (>= 0.17.3, < 2.0) - google-cloud-errors (1.0.1) - google-cloud-storage (1.29.1) - addressable (~> 2.5) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.2.0) + google-cloud-storage (1.39.0) + addressable (~> 2.8) digest-crc (~> 0.4) - google-api-client (~> 0.33) - google-cloud-core (~> 1.2) - googleauth (~> 0.9) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.17.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (0.14.0) - faraday (>= 0.17.3, < 2.0) + googleauth (1.2.0) + faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.14) - highline (1.7.10) - http-cookie (1.0.3) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) - i18n (0.9.5) + i18n (1.12.0) concurrent-ruby (~> 1.0) - jazzy (0.13.2) + jazzy (0.14.2) cocoapods (~> 1.5) mustache (~> 1.1) - open4 + open4 (~> 1.3) redcarpet (~> 3.4) + rexml (~> 3.2) rouge (>= 2.0.6, < 4.0) sassc (~> 2.1) sqlite3 (~> 1.3) xcinvoke (~> 0.3.0) - jmespath (1.4.0) - json (2.3.1) - jwt (2.2.2) + jmespath (1.6.1) + json (2.6.2) + jwt (2.4.1) liferaft (0.0.6) memoist (0.16.2) - mini_magick (4.10.1) - mini_mime (1.0.2) - mini_portile2 (2.5.0) - minitest (5.14.0) - molinillo (0.6.6) + mini_magick (4.11.0) + mini_mime (1.1.2) + mini_portile2 (2.8.0) + minitest (5.16.3) + molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.0.0) mustache (1.1.1) nanaimo (0.3.0) nap (1.1.0) - naturally (2.2.0) + naturally (2.2.1) netrc (0.11.0) - nokogiri (1.11.2) - mini_portile2 (~> 2.5.0) + nokogiri (1.13.8) + mini_portile2 (~> 2.8.0) racc (~> 1.4) open4 (1.3.4) - os (1.1.1) - plist (3.5.0) - public_suffix (4.0.6) - racc (1.5.2) - rake (13.0.1) + optparse (0.1.1) + os (1.1.4) + plist (3.6.0) + public_suffix (4.0.7) + racc (1.6.0) + rake (13.0.6) redcarpet (3.5.1) - representable (3.0.4) + representable (3.2.0) declarative (< 0.1.0) - declarative-option (< 0.2.0) + trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) + rexml (3.2.5) rouge (2.0.7) - ruby-macho (1.4.0) - ruby2_keywords (0.0.2) - rubyzip (2.3.0) - sassc (2.2.1) + ruby-macho (2.5.1) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + sassc (2.4.0) ffi (~> 1.9) security (0.1.3) - signet (0.14.0) - addressable (~> 2.3) - faraday (>= 0.17.3, < 2.0) + signet (0.17.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) simctl (1.6.8) CFPropertyList naturally - slack-notifier (2.3.2) - slather (2.4.7) + slather (2.7.2) CFPropertyList (>= 2.2, < 4) - activesupport (>= 4.0.2, < 5) + activesupport clamp (~> 1.3) - nokogiri (~> 1.8) - xcodeproj (~> 1.7) - sqlite3 (1.4.2) + nokogiri (~> 1.12) + xcodeproj (~> 1.21) + sqlite3 (1.4.4) terminal-notifier (2.0.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) + trailblazer-option (0.1.2) tty-cursor (0.7.1) tty-screen (0.8.1) tty-spinner (0.9.3) tty-cursor (~> 0.7) - typhoeus (1.3.1) + typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.7) - thread_safe (~> 0.1) + tzinfo (2.0.5) + concurrent-ruby (~> 1.0) uber (0.1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.7) - unicode-display_width (1.7.0) + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + webrick (1.7.0) word_wrap (1.0.0) xcinvoke (0.3.0) liferaft (~> 0.0.6) - xcodeproj (1.19.0) + xcodeproj (1.22.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.3.0) + rexml (~> 3.2.4) xcpretty (0.3.0) rouge (~> 2.0.7) - xcpretty-travis-formatter (1.0.0) + xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) + zeitwerk (2.6.0) PLATFORMS ruby diff --git a/Podfile b/Podfile index dffdfb8..8dcdb5e 100644 --- a/Podfile +++ b/Podfile @@ -4,11 +4,9 @@ use_frameworks! pod 'SwiftLint' target 'Example' do - pod 'ButtonMerchant', :path => './' end target 'Example-ObjC' do - pod 'ButtonMerchant', :path => './' end target 'UnitTests' do diff --git a/Podfile.lock b/Podfile.lock index f1241de..78ebad8 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,23 +1,16 @@ PODS: - - ButtonMerchant (1.4.4) - SwiftLint (0.25.0) DEPENDENCIES: - - ButtonMerchant (from `./`) - SwiftLint SPEC REPOS: trunk: - SwiftLint -EXTERNAL SOURCES: - ButtonMerchant: - :path: "./" - SPEC CHECKSUMS: - ButtonMerchant: bbd1e0519215d6ce4c9a990eae51d084854cd7af SwiftLint: e14651157288e9e01d6e1a71db7014fb5744a8ea -PODFILE CHECKSUM: e6864df46b69637ee2822533e793512d9403dc79 +PODFILE CHECKSUM: e9cd3d2666ced63918b1c94ad12206c66e3f14c0 -COCOAPODS: 1.10.1 +COCOAPODS: 1.11.3 diff --git a/Source/ButtonMerchant.h b/Source/ButtonMerchant.h index 058939e..6783925 100644 --- a/Source/ButtonMerchant.h +++ b/Source/ButtonMerchant.h @@ -27,4 +27,5 @@ FOUNDATION_EXPORT double ButtonMerchantVersionNumber; FOUNDATION_EXPORT const unsigned char ButtonMerchantVersionString[]; +#define Order BTNOrder #define Customer BTNCustomer diff --git a/Source/Order.swift b/Source/Order.swift index cf7dd34..8e20e9c 100644 --- a/Source/Order.swift +++ b/Source/Order.swift @@ -28,7 +28,7 @@ import Foundation Represents an order placed by the user to be reported using `ButtonMerchant.reportOrder(order)`. */ @objcMembers -final public class Order: NSObject, Codable { +@objc(BTNOrder) final public class Order: NSObject, Codable { /** The order identifier (required). diff --git a/Tests/IntegrationTests/OrderCompatibilityTest.m b/Tests/IntegrationTests/OrderCompatibilityTest.m new file mode 100644 index 0000000..4f54124 --- /dev/null +++ b/Tests/IntegrationTests/OrderCompatibilityTest.m @@ -0,0 +1,66 @@ +// +// OrderCompatibilityTest.m +// +// Copyright © 2022 Button, Inc. All rights reserved. (https://usebutton.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + + +#import +#import "Order.h" +@import ButtonMerchant; + +@interface OrderCompatibilityTest : XCTestCase + +@end + +@implementation OrderCompatibilityTest + +- (void)testOrderAliasesBTNOrder { + Order *order = [[Order alloc] initWithId:@"test" purchaseDate:NSDate.new lineItems:@[]]; + XCTAssert([order.class isSubclassOfClass:BTNOrder.class]); +} + +- (void)testOrderByStringLookupIsNotBTNOrder { + XCTAssertFalse([NSClassFromString(@"Order") isSubclassOfClass:BTNOrder.class]); +} + +#undef Order + +- (void)testOrderAliasCanBeUndefined { + id unexpectedOrder = nil; + @try { + Class orderClass = Order.class; + unexpectedOrder = [[orderClass alloc] initWithId:@"test" purchaseDate:NSDate.new lineItems:@[]]; + } @catch (NSException *exception) { + XCTAssertEqual(exception.name, NSInvalidArgumentException); + XCTAssertTrue([exception.reason hasPrefix:@"-[Order initWithId:purchaseDate:lineItems:]: unrecognized selector sent to instance"]); + } + XCTAssertNil(unexpectedOrder, @"Did not expect an order"); +} + + +- (void)testConflictingOrderClassCanBeInitialized { + Order *order = [[Order alloc] init]; + XCTAssertTrue([order.class isSubclassOfClass:Order.class]); +} + +@end +