From 5b2d07dca8e8bec8d8d3af7f68387672ed970e9d Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Thu, 14 Nov 2019 14:29:29 -0800 Subject: [PATCH 01/18] Passing iOS UI Test --- .../ios/sample61.xcodeproj/project.pbxproj | 351 +++++------------- .../xcshareddata/xcschemes/sample61.xcscheme | 32 +- sample61/ios/sample61/Info.plist | 2 + sample61/ios/sample61Tests-Bridging-Header.h | 6 + sample61/ios/sample61Tests/sample61Tests.m | 2 +- sample61/ios/sample61UITests/Info.plist | 22 ++ .../ios/sample61UITests/sample61UITests.swift | 39 ++ 7 files changed, 175 insertions(+), 279 deletions(-) create mode 100644 sample61/ios/sample61Tests-Bridging-Header.h create mode 100644 sample61/ios/sample61UITests/Info.plist create mode 100644 sample61/ios/sample61UITests/sample61UITests.swift diff --git a/sample61/ios/sample61.xcodeproj/project.pbxproj b/sample61/ios/sample61.xcodeproj/project.pbxproj index f90a11a..137523b 100644 --- a/sample61/ios/sample61.xcodeproj/project.pbxproj +++ b/sample61/ios/sample61.xcodeproj/project.pbxproj @@ -13,12 +13,7 @@ 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2DCD954D1E0B4F2C00145EB5 /* sample61Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* sample61Tests.m */; }; - 69C449A1FBEAFC96069788D1 /* libPods-sample61-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A05B32BFD9D31D3AD722E168 /* libPods-sample61-tvOSTests.a */; }; - A9B1CC7AE70F678B32C7E3E2 /* libPods-sample61-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DD5E44D758F79269163FB3B /* libPods-sample61-tvOS.a */; }; + 34B6CBE9237E074C008779EB /* sample61UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B6CBE8237E074C008779EB /* sample61UITests.swift */; }; FFDED37CF7E9A6AAE0B64809 /* libPods-sample61Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A99076CEF6FFD888417741F5 /* libPods-sample61Tests.a */; }; /* End PBXBuildFile section */ @@ -30,12 +25,12 @@ remoteGlobalIDString = 13B07F861A680F5B00A75B9A; remoteInfo = sample61; }; - 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { + 34B6CBEB237E074C008779EB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; proxyType = 1; - remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; - remoteInfo = "sample61-tvOS"; + remoteGlobalIDString = 13B07F861A680F5B00A75B9A; + remoteInfo = sample61; }; /* End PBXContainerItemProxy section */ @@ -52,8 +47,10 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = sample61/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = sample61/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = sample61/main.m; sourceTree = ""; }; - 2D02E47B1E0B4A5D006451C7 /* sample61-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "sample61-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D02E4901E0B4A5D006451C7 /* sample61-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "sample61-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 34B6CBDF237E04D5008779EB /* sample61Tests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "sample61Tests-Bridging-Header.h"; sourceTree = ""; }; + 34B6CBE6237E074C008779EB /* sample61UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = sample61UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 34B6CBE8237E074C008779EB /* sample61UITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = sample61UITests.swift; sourceTree = ""; }; + 34B6CBEA237E074C008779EB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7B02AC6EA2F3518FA14201FC /* Pods-sample61.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample61.release.xcconfig"; path = "Target Support Files/Pods-sample61/Pods-sample61.release.xcconfig"; sourceTree = ""; }; 7C6C22E4D58CF9B232F9FA92 /* Pods-sample61-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample61-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-sample61-tvOSTests/Pods-sample61-tvOSTests.debug.xcconfig"; sourceTree = ""; }; 7DD5E44D758F79269163FB3B /* libPods-sample61-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-sample61-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -86,19 +83,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { + 34B6CBE3237E074C008779EB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A9B1CC7AE70F678B32C7E3E2 /* libPods-sample61-tvOS.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 69C449A1FBEAFC96069788D1 /* libPods-sample61-tvOSTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -132,6 +120,7 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 13B07FB71A68108700A75B9A /* main.m */, + 34B6CBDF237E04D5008779EB /* sample61Tests-Bridging-Header.h */, ); name = sample61; sourceTree = ""; @@ -149,6 +138,15 @@ name = Frameworks; sourceTree = ""; }; + 34B6CBE7237E074C008779EB /* sample61UITests */ = { + isa = PBXGroup; + children = ( + 34B6CBE8237E074C008779EB /* sample61UITests.swift */, + 34B6CBEA237E074C008779EB /* Info.plist */, + ); + path = sample61UITests; + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -162,6 +160,7 @@ 13B07FAE1A68108700A75B9A /* sample61 */, 832341AE1AAA6A7D00B99B32 /* Libraries */, 00E356EF1AD99517003FC87E /* sample61Tests */, + 34B6CBE7237E074C008779EB /* sample61UITests */, 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, E06D88CD994679CBD566703D /* Pods */, @@ -176,8 +175,7 @@ children = ( 13B07F961A680F5B00A75B9A /* sample61.app */, 00E356EE1AD99517003FC87E /* sample61Tests.xctest */, - 2D02E47B1E0B4A5D006451C7 /* sample61-tvOS.app */, - 2D02E4901E0B4A5D006451C7 /* sample61-tvOSTests.xctest */, + 34B6CBE6237E074C008779EB /* sample61UITests.xctest */, ); name = Products; sourceTree = ""; @@ -194,7 +192,6 @@ BFF9B0909E7CF4C4A3E4D831 /* Pods-sample61Tests.debug.xcconfig */, 11F8C90FB48A4F350D99CF79 /* Pods-sample61Tests.release.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -241,44 +238,23 @@ productReference = 13B07F961A680F5B00A75B9A /* sample61.app */; productType = "com.apple.product-type.application"; }; - 2D02E47A1E0B4A5D006451C7 /* sample61-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample61-tvOS" */; - buildPhases = ( - 4E297982F75E7633833CFE79 /* [CP] Check Pods Manifest.lock */, - FD10A7F122414F3F0027D42C /* Start Packager */, - 2D02E4771E0B4A5D006451C7 /* Sources */, - 2D02E4781E0B4A5D006451C7 /* Frameworks */, - 2D02E4791E0B4A5D006451C7 /* Resources */, - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "sample61-tvOS"; - productName = "sample61-tvOS"; - productReference = 2D02E47B1E0B4A5D006451C7 /* sample61-tvOS.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E48F1E0B4A5D006451C7 /* sample61-tvOSTests */ = { + 34B6CBE5237E074C008779EB /* sample61UITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample61-tvOSTests" */; + buildConfigurationList = 34B6CBED237E074C008779EB /* Build configuration list for PBXNativeTarget "sample61UITests" */; buildPhases = ( - 593EFB2334742E1969B34E1A /* [CP] Check Pods Manifest.lock */, - 2D02E48C1E0B4A5D006451C7 /* Sources */, - 2D02E48D1E0B4A5D006451C7 /* Frameworks */, - 2D02E48E1E0B4A5D006451C7 /* Resources */, + 34B6CBE2237E074C008779EB /* Sources */, + 34B6CBE3237E074C008779EB /* Frameworks */, + 34B6CBE4237E074C008779EB /* Resources */, ); buildRules = ( ); dependencies = ( - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, + 34B6CBEC237E074C008779EB /* PBXTargetDependency */, ); - name = "sample61-tvOSTests"; - productName = "sample61-tvOSTests"; - productReference = 2D02E4901E0B4A5D006451C7 /* sample61-tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + name = sample61UITests; + productName = sample61UITests; + productReference = 34B6CBE6237E074C008779EB /* sample61UITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ @@ -286,21 +262,19 @@ 83CBB9F71A601CBA00E9B192 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftUpdateCheck = 1100; LastUpgradeCheck = 0940; ORGANIZATIONNAME = Facebook; TargetAttributes = { 00E356ED1AD99517003FC87E = { CreatedOnToolsVersion = 6.2; + LastSwiftMigration = 1100; TestTargetID = 13B07F861A680F5B00A75B9A; }; - 2D02E47A1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - 2D02E48F1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; + 34B6CBE5237E074C008779EB = { + CreatedOnToolsVersion = 11.0; ProvisioningStyle = Automatic; - TestTargetID = 2D02E47A1E0B4A5D006451C7; + TestTargetID = 13B07F861A680F5B00A75B9A; }; }; }; @@ -309,6 +283,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -319,8 +294,7 @@ targets = ( 13B07F861A680F5B00A75B9A /* sample61 */, 00E356ED1AD99517003FC87E /* sample61Tests */, - 2D02E47A1E0B4A5D006451C7 /* sample61-tvOS */, - 2D02E48F1E0B4A5D006451C7 /* sample61-tvOSTests */, + 34B6CBE5237E074C008779EB /* sample61UITests */, ); }; /* End PBXProject section */ @@ -342,15 +316,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4791E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48E1E0B4A5D006451C7 /* Resources */ = { + 34B6CBE4237E074C008779EB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -374,64 +340,6 @@ shellPath = /bin/sh; shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native Code And Images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; - }; - 4E297982F75E7633833CFE79 /* [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-sample61-tvOS-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; - }; - 593EFB2334742E1969B34E1A /* [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-sample61-tvOSTests-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; - }; 7B7B5B79B5D6B53780E32D9D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -513,25 +421,6 @@ shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; showEnvVarsInLog = 0; }; - FD10A7F122414F3F0027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -552,20 +441,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2D02E4771E0B4A5D006451C7 /* Sources */ = { + 34B6CBE2237E074C008779EB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48C1E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DCD954D1E0B4F2C00145EB5 /* sample61Tests.m in Sources */, + 34B6CBE9237E074C008779EB /* sample61UITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -577,10 +457,10 @@ target = 13B07F861A680F5B00A75B9A /* sample61 */; targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; }; - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { + 34B6CBEC237E074C008779EB /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 2D02E47A1E0B4A5D006451C7 /* sample61-tvOS */; - targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; + target = 13B07F861A680F5B00A75B9A /* sample61 */; + targetProxy = 34B6CBEB237E074C008779EB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -602,6 +482,7 @@ baseConfigurationReference = BFF9B0909E7CF4C4A3E4D831 /* Pods-sample61Tests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ENABLE_MODULES = YES; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -616,6 +497,9 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "sample61Tests-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample61.app/sample61"; }; name = Debug; @@ -625,6 +509,7 @@ baseConfigurationReference = 11F8C90FB48A4F350D99CF79 /* Pods-sample61Tests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ENABLE_MODULES = YES; COPY_PHASE_STRIP = NO; INFOPLIST_FILE = sample61Tests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; @@ -636,6 +521,8 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "sample61Tests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample61.app/sample61"; }; name = Release; @@ -679,113 +566,56 @@ }; name = Release; }; - 2D02E4971E0B4A5E006451C7 /* Debug */ = { + 34B6CBEE237E074C008779EB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F044C9F906E724B127C73E88 /* Pods-sample61-tvOS.debug.xcconfig */; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample61-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.sample61-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Debug; - }; - 2D02E4981E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E5F344FD880A130937E213A5 /* Pods-sample61-tvOS.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample61-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.sample61-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Release; - }; - 2D02E4991E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7C6C22E4D58CF9B232F9FA92 /* Pods-sample61-tvOSTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample61-tvOSTests/Info.plist"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = sample61UITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.sample61-tvOSTests"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = play.sample61UITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample61-tvOS.app/sample61-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = sample61; }; name = Debug; }; - 2D02E49A1E0B4A5E006451C7 /* Release */ = { + 34B6CBEF237E074C008779EB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 95887DF89B0E19853D78E0D8 /* Pods-sample61-tvOSTests.release.xcconfig */; buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample61-tvOSTests/Info.plist"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = sample61UITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.sample61-tvOSTests"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = play.sample61UITests; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample61-tvOS.app/sample61-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = sample61; }; name = Release; }; @@ -909,20 +739,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample61-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4971E0B4A5E006451C7 /* Debug */, - 2D02E4981E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample61-tvOSTests" */ = { + 34B6CBED237E074C008779EB /* Build configuration list for PBXNativeTarget "sample61UITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2D02E4991E0B4A5E006451C7 /* Debug */, - 2D02E49A1E0B4A5E006451C7 /* Release */, + 34B6CBEE237E074C008779EB /* Debug */, + 34B6CBEF237E074C008779EB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61.xcscheme b/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61.xcscheme index 2623e63..3834160 100644 --- a/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61.xcscheme +++ b/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61.xcscheme @@ -55,6 +55,15 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + + + @@ -66,18 +75,17 @@ ReferencedContainer = "container:sample61.xcodeproj"> + + + + - - - - - - - - NSLocationWhenInUseUsageDescription + NSMainNibFile + LaunchScreen UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities diff --git a/sample61/ios/sample61Tests-Bridging-Header.h b/sample61/ios/sample61Tests-Bridging-Header.h new file mode 100644 index 0000000..4022f03 --- /dev/null +++ b/sample61/ios/sample61Tests-Bridging-Header.h @@ -0,0 +1,6 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + +#import +#import diff --git a/sample61/ios/sample61Tests/sample61Tests.m b/sample61/ios/sample61Tests/sample61Tests.m index 7a22679..2954e64 100644 --- a/sample61/ios/sample61Tests/sample61Tests.m +++ b/sample61/ios/sample61Tests/sample61Tests.m @@ -12,7 +12,7 @@ #import #define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" +#define TEXT_TO_LOOK_FOR @"Engage" @interface sample61Tests : XCTestCase diff --git a/sample61/ios/sample61UITests/Info.plist b/sample61/ios/sample61UITests/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/sample61/ios/sample61UITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/sample61/ios/sample61UITests/sample61UITests.swift b/sample61/ios/sample61UITests/sample61UITests.swift new file mode 100644 index 0000000..f0d7ec9 --- /dev/null +++ b/sample61/ios/sample61UITests/sample61UITests.swift @@ -0,0 +1,39 @@ +import XCTest + +class sample61UITests: XCTestCase { + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + // NOTE: This test assumes there is a valid Apptentive key / signature. + func testExample() { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + XCTAssert(!app.alerts.element.staticTexts["Please, provide Apptentive Key"].exists) + app.textFields["input-event-name"].tap() + app.typeText("fake") + app.buttons["button-engage"].tap() + XCTAssertEqual(app.alerts.element.label, "Interaction") + XCTAssert(app.alerts.element.staticTexts["Interaction \"fake\" was not engaged"].exists) + } + + func testLaunchPerformance() { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTOSSignpostMetric.applicationLaunch]) { + XCUIApplication().launch() + } + } + } +} From ad5b33a395f974db3af84b5f31b0c8d0c4117bf0 Mon Sep 17 00:00:00 2001 From: Brett McGinnis Date: Mon, 18 Nov 2019 09:56:12 -0800 Subject: [PATCH 02/18] SEA-1445: Added basic e2e test for react native android --- .gitignore | 3 +- sample61/android/app/build.gradle | 7 ++ .../com/sample61/ChangeTextBehaviorTest.java | 109 ++++++++++++++++++ sample61/android/build.gradle | 2 +- 4 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java diff --git a/.gitignore b/.gitignore index 30cbe45..b4707df 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ build/ .gradle local.properties *.iml +android/captures/ # BUCK buck-out/ @@ -45,4 +46,4 @@ buck-out/ *.keystore # CocoaPods -Pods \ No newline at end of file +Pods diff --git a/sample61/android/app/build.gradle b/sample61/android/app/build.gradle index 227d18a..f867de1 100644 --- a/sample61/android/app/build.gradle +++ b/sample61/android/app/build.gradle @@ -133,6 +133,8 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } splits { abi { @@ -189,6 +191,11 @@ dependencies { } else { implementation jscFlavor } + + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' + + androidTestImplementation 'androidx.test:rules:1.1.0' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' } // Run this once to be able to run the application with BUCK diff --git a/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java b/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java new file mode 100644 index 0000000..efe760c --- /dev/null +++ b/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java @@ -0,0 +1,109 @@ +package com.sample61; + +import android.view.View; +import android.widget.TextView; + +import org.hamcrest.Matcher; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import androidx.test.espresso.DataInteraction; +import androidx.test.espresso.Root; +import androidx.test.espresso.UiController; +import androidx.test.espresso.ViewAction; +import androidx.test.rule.ActivityTestRule; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.clearText; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.RootMatchers.isDialog; +import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.endsWith; +import static org.hamcrest.CoreMatchers.not; + +@RunWith(AndroidJUnit4.class) +public class ChangeTextBehaviorTest { + @Rule + public ActivityTestRule activityRule + = new ActivityTestRule<>(MainActivity.class); + + @Before + public void initValidString() { +// TODO: Replace with idler + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public String getText(final Matcher matcher) { + final String[] stringHolder = { null }; + onView(matcher).perform(new ViewAction() { + @Override + public Matcher getConstraints() { + return isAssignableFrom(TextView.class); + } + + @Override + public String getDescription() { + return "getting text from a TextView"; + } + + @Override + public void perform(UiController uiController, View view) { + TextView tv = (TextView)view; + stringHolder[0] = tv.getText().toString(); + } + }); + return stringHolder[0]; + } + + @Test + public void canShowInteraction() { + onView(withContentDescription("input-event-name")) + .perform(clearText()) + .perform(typeText("test")); + + onView(withContentDescription("button-can-show-interaction")) + .check(matches(isDisplayed())) + .perform(click()); + + onView(withId(android.R.id.message)) + .inRoot(isDialog()) + .check(matches(withText(endsWith("true")))); + + onView(withId(android.R.id.button1)) + .inRoot(isDialog()) + .perform(click()); + } + + @Test + public void canShowInteraction() { + onView(withContentDescription("input-event-name")) + .perform(clearText()) + .perform(typeText("test")); + + onView(withContentDescription("button-can-show-interaction")) + .check(matches(isDisplayed())) + .perform(click()); + + onView(withId(android.R.id.message)) + .inRoot(isDialog()) + .check(matches(withText(endsWith("true")))); + + onView(withId(android.R.id.button1)) + .inRoot(isDialog()) + .perform(click()); + } +} diff --git a/sample61/android/build.gradle b/sample61/android/build.gradle index 28f7ec6..5d980b9 100644 --- a/sample61/android/build.gradle +++ b/sample61/android/build.gradle @@ -12,7 +12,7 @@ buildscript { jcenter() } dependencies { - classpath("com.android.tools.build:gradle:3.4.2") + classpath('com.android.tools.build:gradle:3.5.2') // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From e6e6056cc61d3292efcdbd6184876e64042b2b19 Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Mon, 18 Nov 2019 14:36:26 -0800 Subject: [PATCH 03/18] Add Travis file for iOS --- .travis.yml | 5 + .../xcschemes/sample61-tvOS.xcscheme | 129 ------------------ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ 3 files changed, 13 insertions(+), 129 deletions(-) create mode 100644 .travis.yml delete mode 100644 sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61-tvOS.xcscheme create mode 100644 sample61/ios/sample61.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..29f950c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +language: objective-c +podfile: sample61/ios/Podfile +osx_image: xcode11.2 +script: + - xcodebuild -workspace sample61/ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.0' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO diff --git a/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61-tvOS.xcscheme b/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61-tvOS.xcscheme deleted file mode 100644 index 7801d78..0000000 --- a/sample61/ios/sample61.xcodeproj/xcshareddata/xcschemes/sample61-tvOS.xcscheme +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sample61/ios/sample61.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/sample61/ios/sample61.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/sample61/ios/sample61.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + From 47c47e69d572d4e7f5e298afb91929361f37fe80 Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Tue, 19 Nov 2019 11:37:17 -0800 Subject: [PATCH 04/18] Add ENV vars for keys --- .travis.yml | 11 +++++++++-- sample61/App.js | 12 ++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 29f950c..b7baaae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,12 @@ language: objective-c -podfile: sample61/ios/Podfile osx_image: xcode11.2 +install: + - npm install + - cd sample61 + - npm install + - cd ios + - pod install + - cd .. script: - - xcodebuild -workspace sample61/ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.0' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + - npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios + - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.0' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO diff --git a/sample61/App.js b/sample61/App.js index c822ced..203fb01 100644 --- a/sample61/App.js +++ b/sample61/App.js @@ -25,12 +25,12 @@ import showAlert from './src/helpers'; // From https://be.apptentive.com/apps/:id/settings/api const credentials = Platform.select({ ios: { - apptentiveKey: '___YOUR_IOS_APPTENTIVE_KEY___', - apptentiveSignature: '___YOUR_IOS_APPTENTIVE_SIGNATURE___', + apptentiveKey: process.env.IOS_APPTENTIVE_KEY || '', + apptentiveSignature: process.env.IOS_APPTENTIVE_SIGNATURE || '', }, android: { - apptentiveKey: '___YOUR_ANDROID_APPTENTIVE_KEY___', - apptentiveSignature: '___YOUR_ANDROID_APPTENTIVE_SIGNATURE___', + apptentiveKey: process.env.ANDROID_APPTENTIVE_KEY || '', + apptentiveSignature: process.env.ANDROID_APPTENTIVE_SIGNATURE || '', }, }); @@ -77,12 +77,12 @@ class App extends React.Component { } componentDidMount() { - if (!credentials.apptentiveKey || credentials.apptentiveKey === '___YOUR_IOS_APPTENTIVE_KEY___' || credentials.apptentiveKey === '___YOUR_ANDROID_APPTENTIVE_KEY___') { + if (!credentials.apptentiveKey) { showAlert('Error', 'Please, provide Apptentive Key'); return; } - if (!credentials.apptentiveSignature || credentials.apptentiveSignature === '___YOUR_IOS_APPTENTIVE_SIGNATURE___' || credentials.apptentiveSignature === '___YOUR_ANDROID_APPTENTIVE_SIGNATURE___') { + if (!credentials.apptentiveSignature) { showAlert('Error', 'Please, provide Apptentive Signature'); return; } From f40c414d2758ae804154c2901c6ab6ede17dffd1 Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Tue, 19 Nov 2019 11:50:13 -0800 Subject: [PATCH 05/18] Remove TV Pod --- sample61/ios/Podfile | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/sample61/ios/Podfile b/sample61/ios/Podfile index 37c6d06..27cc03f 100644 --- a/sample61/ios/Podfile +++ b/sample61/ios/Podfile @@ -41,13 +41,3 @@ target 'sample61' do use_native_modules! end - -target 'sample61-tvOS' do - # Pods for sample61-tvOS - - target 'sample61-tvOSTests' do - inherit! :search_paths - # Pods for testing - end - -end From 16477918116a808e9175deb248dfe70eadbc38cc Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Tue, 19 Nov 2019 12:54:28 -0800 Subject: [PATCH 06/18] Change device for Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b7baaae..bba5af2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ install: - cd .. script: - npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios - - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.0' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.2' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO From 6d0b6b8f34bf2225217c312caa583ec8e3c44fbb Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Tue, 19 Nov 2019 13:48:42 -0800 Subject: [PATCH 07/18] Remove debug codepath --- sample61/ios/sample61/AppDelegate.m | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sample61/ios/sample61/AppDelegate.m b/sample61/ios/sample61/AppDelegate.m index 8d9c1fa..85a4b44 100644 --- a/sample61/ios/sample61/AppDelegate.m +++ b/sample61/ios/sample61/AppDelegate.m @@ -32,11 +32,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; -#else return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif } @end From 57872472fa5ab294e50480b0ae8c2eb919fb65c2 Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Tue, 19 Nov 2019 15:07:09 -0800 Subject: [PATCH 08/18] Fixes from testing --- sample61/App.js | 8 ++++---- sample61/ios/assets/app.json | 4 ++++ sample61/ios/sample61.xcodeproj/project.pbxproj | 4 +++- sample61/ios/sample61/Info.plist | 2 ++ 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 sample61/ios/assets/app.json diff --git a/sample61/App.js b/sample61/App.js index 203fb01..72f6c8d 100644 --- a/sample61/App.js +++ b/sample61/App.js @@ -25,12 +25,12 @@ import showAlert from './src/helpers'; // From https://be.apptentive.com/apps/:id/settings/api const credentials = Platform.select({ ios: { - apptentiveKey: process.env.IOS_APPTENTIVE_KEY || '', - apptentiveSignature: process.env.IOS_APPTENTIVE_SIGNATURE || '', + apptentiveKey: '___YOUR_IOS_APPTENTIVE_KEY___', + apptentiveSignature: '___YOUR_IOS_APPTENTIVE_SIGNATURE___', }, android: { - apptentiveKey: process.env.ANDROID_APPTENTIVE_KEY || '', - apptentiveSignature: process.env.ANDROID_APPTENTIVE_SIGNATURE || '', + apptentiveKey: '___YOUR_ANDROID_APPTENTIVE_KEY___', + apptentiveSignature: '___YOUR_ANDROID_APPTENTIVE_SIGNATURE___', }, }); diff --git a/sample61/ios/assets/app.json b/sample61/ios/assets/app.json new file mode 100644 index 0000000..53bb8c4 --- /dev/null +++ b/sample61/ios/assets/app.json @@ -0,0 +1,4 @@ +{ + "name": "sample61", + "displayName": "sample61" +} \ No newline at end of file diff --git a/sample61/ios/sample61.xcodeproj/project.pbxproj b/sample61/ios/sample61.xcodeproj/project.pbxproj index 137523b..d70d1a7 100644 --- a/sample61/ios/sample61.xcodeproj/project.pbxproj +++ b/sample61/ios/sample61.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 34A0B32C2384AA05005DC742 /* main.jsbundle in Resources */ = {isa = PBXBuildFile; fileRef = 008F07F21AC5B25A0029DE68 /* main.jsbundle */; }; 34B6CBE9237E074C008779EB /* sample61UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34B6CBE8237E074C008779EB /* sample61UITests.swift */; }; FFDED37CF7E9A6AAE0B64809 /* libPods-sample61Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A99076CEF6FFD888417741F5 /* libPods-sample61Tests.a */; }; /* End PBXBuildFile section */ @@ -311,6 +312,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 34A0B32C2384AA05005DC742 /* main.jsbundle in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, ); @@ -338,7 +340,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; 7B7B5B79B5D6B53780E32D9D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; diff --git a/sample61/ios/sample61/Info.plist b/sample61/ios/sample61/Info.plist index 6369f36..f0c25e3 100644 --- a/sample61/ios/sample61/Info.plist +++ b/sample61/ios/sample61/Info.plist @@ -53,6 +53,8 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + NSAllowsLocalNetworking + UIViewControllerBasedStatusBarAppearance From ad02a97288360986f047e60b85316800ff842096 Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Tue, 19 Nov 2019 15:23:28 -0800 Subject: [PATCH 09/18] Add readme --- sample61/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 sample61/README.md diff --git a/sample61/README.md b/sample61/README.md new file mode 100644 index 0000000..d05f48a --- /dev/null +++ b/sample61/README.md @@ -0,0 +1,16 @@ +# Sample Setup + +Ensure you have updated `App.js` with your key / signature. + +Generate the bundle: + +```shell +npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios +npx react-native bundle --entry-file index.js --platform android --dev false --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ +``` + +Test the UI, adjust the destination name and OS to fit your needs: + +```shell +xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.2.2' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO +``` From a01d6cbebcf19c2fbae928e62eb8e06b82e5c9b9 Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Wed, 4 Dec 2019 11:20:31 -0800 Subject: [PATCH 10/18] Remove OS, update Cocoapods --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bba5af2..df7979d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ language: objective-c osx_image: xcode11.2 +before_install: + - gem install cocoapods -v '0.32.1' install: - npm install - cd sample61 @@ -9,4 +11,4 @@ install: - cd .. script: - npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios - - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.2' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO From e4f361d0fc5d1cd9e51a3c3c889f425cb667cecc Mon Sep 17 00:00:00 2001 From: Matthew Callis Date: Wed, 4 Dec 2019 11:27:10 -0800 Subject: [PATCH 11/18] Add caching --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index df7979d..d89f8b3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,9 @@ language: objective-c +cache: + bundler: true + cocoapods: true + npm: true + pip: true osx_image: xcode11.2 before_install: - gem install cocoapods -v '0.32.1' From bd1092575ae7065420c332b77bdd00024eaded35 Mon Sep 17 00:00:00 2001 From: Brett McGinnis Date: Thu, 5 Dec 2019 14:38:33 -0800 Subject: [PATCH 12/18] SEA-1450: Added android e2e build to travis ci (#109) --- .gitignore | 4 +- .travis.yml | 82 ++++++++++++++----- .../com/sample61/ChangeTextBehaviorTest.java | 45 +++------- sample61/ios/Podfile.lock | 2 +- sample61/package-lock.json | 10 +-- 5 files changed, 85 insertions(+), 58 deletions(-) diff --git a/.gitignore b/.gitignore index b4707df..615ed56 100644 --- a/.gitignore +++ b/.gitignore @@ -38,7 +38,7 @@ build/ .gradle local.properties *.iml -android/captures/ +captures/ # BUCK buck-out/ @@ -47,3 +47,5 @@ buck-out/ # CocoaPods Pods + +.vscode diff --git a/.travis.yml b/.travis.yml index d89f8b3..675354a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,19 +1,63 @@ -language: objective-c -cache: - bundler: true - cocoapods: true - npm: true - pip: true -osx_image: xcode11.2 -before_install: - - gem install cocoapods -v '0.32.1' -install: - - npm install - - cd sample61 - - npm install - - cd ios - - pod install - - cd .. -script: - - npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios - - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO +addons: + artifacts: + paths: + - ./sample61/android/captures/* + +jobs: + include: + - stage: e2e + os: osx + language: objective-c + cache: + bundler: true + cocoapods: true + npm: true + pip: true + osx_image: xcode11.2 + before_install: + - gem install cocoapods -v '0.32.1' + install: + - npm install + - cd sample61 + - npm install + - cd ios + - pod install + - cd .. + script: + - npx react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios + - xcodebuild -workspace ios/sample61.xcworkspace/ -scheme sample61 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 11' clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + - stage: e2e + os: linux + language: android + dist: trusty + android: + components: + # Project + - tools + - platform-tools + - build-tools-28.0.3 + - android-28 + - extra-google-google_play_services + - extra-google-m2repository + - extra-android-m2repository + + # Emulator + - android-24 + - sys-img-armeabi-v7a-android-24 + licenses: ".+" + before_install: + - nvm install 12 + install: skip + before_script: + - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a -c 100M + - emulator -avd test -no-window & + - android-wait-for-emulator + - adb shell input keyevent 82 & + script: + - node --version + - cd sample61 + - npm install + - mkdir -p android/app/src/main/assets + - npx react-native bundle --entry-file index.js --platform android --dev false --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ + - cd android + - ./gradlew assembleAndroidTest diff --git a/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java b/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java index efe760c..dd13641 100644 --- a/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java +++ b/sample61/android/app/src/androidTest/java/com/sample61/ChangeTextBehaviorTest.java @@ -41,7 +41,7 @@ public class ChangeTextBehaviorTest { public void initValidString() { // TODO: Replace with idler try { - Thread.sleep(5000); + Thread.sleep(30000); } catch (InterruptedException e) { e.printStackTrace(); } @@ -71,39 +71,20 @@ public void perform(UiController uiController, View view) { @Test public void canShowInteraction() { - onView(withContentDescription("input-event-name")) - .perform(clearText()) - .perform(typeText("test")); + onView(withContentDescription("input-event-name")) + .perform(clearText()) + .perform(typeText("test")); - onView(withContentDescription("button-can-show-interaction")) - .check(matches(isDisplayed())) - .perform(click()); +// onView(withContentDescription("button-can-show-interaction")) +// .check(matches(isDisplayed())) +// .perform(click()); - onView(withId(android.R.id.message)) - .inRoot(isDialog()) - .check(matches(withText(endsWith("true")))); + // onView(withId(android.R.id.message)) + // .inRoot(isDialog()) + // .check(matches(withText(endsWith("true")))); - onView(withId(android.R.id.button1)) - .inRoot(isDialog()) - .perform(click()); - } - - @Test - public void canShowInteraction() { - onView(withContentDescription("input-event-name")) - .perform(clearText()) - .perform(typeText("test")); - - onView(withContentDescription("button-can-show-interaction")) - .check(matches(isDisplayed())) - .perform(click()); - - onView(withId(android.R.id.message)) - .inRoot(isDialog()) - .check(matches(withText(endsWith("true")))); - - onView(withId(android.R.id.button1)) - .inRoot(isDialog()) - .perform(click()); + // onView(withId(android.R.id.button1)) + // .inRoot(isDialog()) + // .perform(click()); } } diff --git a/sample61/ios/Podfile.lock b/sample61/ios/Podfile.lock index e84373d..c4e34f7 100644 --- a/sample61/ios/Podfile.lock +++ b/sample61/ios/Podfile.lock @@ -343,6 +343,6 @@ SPEC CHECKSUMS: ReactCommon: a6a294e7028ed67b926d29551aa9394fd989c24c Yoga: ba3d99dbee6c15ea6bbe3783d1f0cb1ffb79af0f -PODFILE CHECKSUM: 5f5a4918d6972b0d5c916d6597369031142e3951 +PODFILE CHECKSUM: 22988c2207567a6eddc8fc72f7d82661d162b93a COCOAPODS: 1.8.4 diff --git a/sample61/package-lock.json b/sample61/package-lock.json index ed11868..b115a40 100644 --- a/sample61/package-lock.json +++ b/sample61/package-lock.json @@ -1,6 +1,6 @@ { - "name": "sample61", - "version": "0.0.1", + "name": "sample", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1439,9 +1439,9 @@ } }, "apptentive-react-native": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/apptentive-react-native/-/apptentive-react-native-5.4.6.tgz", - "integrity": "sha512-tMk73WywMMaPVkrXrdXAr1N+KW/QAMtAmXySmeAzERcYR8yJrVzcH6qfPPJEUCp7CBZmwjLzcshKs+Hw+Ire6w==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/apptentive-react-native/-/apptentive-react-native-5.5.0.tgz", + "integrity": "sha512-gtNvcCB6TpUJALjxI50QjqwBVjcIpHhm5xYOnRi41+6BpMA4naq639gcWldToZAizRn1aHQMlOhtJbkL7XFv0w==" }, "argparse": { "version": "1.0.10", From a6118ee7777e9432dbedecf7cdc6fab5ef82defe Mon Sep 17 00:00:00 2001 From: Frank Schmitt Date: Mon, 6 Jul 2020 17:49:16 -0700 Subject: [PATCH 13/18] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 769fee6..b338bd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "apptentive-react-native", - "version": "5.5.0", + "version": "5.5.1", "description": "React Native Module for Apptentive SDK", "main": "js/index.js", "types": "js/index.d.ts", From 34851ff60e84bafea9110a87874b13b2ad12a72c Mon Sep 17 00:00:00 2001 From: Frank Schmitt Date: Mon, 6 Jul 2020 17:58:32 -0700 Subject: [PATCH 14/18] Add CHANGELOG entry --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d49b16e..963196b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ This document lets you know what has changed in the React Native module. For cha - [Android Changelog](https://github.com/apptentive/apptentive-android/blob/master/CHANGELOG.md) - [iOS Changelog](https://github.com/apptentive/apptentive-ios/blob/master/CHANGELOG.md) +# 2020-07-06 - v5.5.1 + +- Apptentive Android SDK: 5.5.3 +- Apptentive iOS SDK: 5.2.13 + # 2019-11-14 - v5.5.0 - Fixed React Native `0.60.+` incompatibility on Android. For more information: https://learn.apptentive.com/knowledge-base/react-native-integration-reference/#migrating-from-support-library-to-androidx From 3bf7fb923215991c4807a01dd1c5439dd07178a4 Mon Sep 17 00:00:00 2001 From: Frank Schmitt Date: Mon, 6 Jul 2020 17:58:56 -0700 Subject: [PATCH 15/18] Updated files for 5.5.1 release --- android/src/main/res/values/strings.xml | 2 +- apptentive-react-native.podspec | 2 +- ios/RNApptentiveModule.m | 2 +- sample/ios/Podfile | 2 +- sample/ios/Podfile.lock | 12 ++++++------ 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml index 3e59bdf..0eafe6f 100644 --- a/android/src/main/res/values/strings.xml +++ b/android/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ React Native - 5.5.0 + 5.5.1 diff --git a/apptentive-react-native.podspec b/apptentive-react-native.podspec index c87c30e..21cb9eb 100644 --- a/apptentive-react-native.podspec +++ b/apptentive-react-native.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "apptentive-react-native" - s.version = "5.4.6" + s.version = "5.5.1" s.summary = "Apptentive SDK module for React Native" s.description = <<-DESC diff --git a/ios/RNApptentiveModule.m b/ios/RNApptentiveModule.m index 8ec892b..46ecdc2 100644 --- a/ios/RNApptentiveModule.m +++ b/ios/RNApptentiveModule.m @@ -52,7 +52,7 @@ - (dispatch_queue_t)methodQueue if (configuration) { configuration.appID = configurationDictionary[@"appleID"]; configuration.distributionName = @"React Native"; - configuration.distributionVersion = @"5.5.0"; + configuration.distributionVersion = @"5.5.1"; [Apptentive registerWithConfiguration:configuration]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(messageCenterUnreadCountChangedNotification:) name:ApptentiveMessageCenterUnreadCountChangedNotification object:nil]; diff --git a/sample/ios/Podfile b/sample/ios/Podfile index 1430362..7a2381b 100644 --- a/sample/ios/Podfile +++ b/sample/ios/Podfile @@ -6,6 +6,6 @@ target 'sample' do use_frameworks! # Pods for sample - pod 'apptentive-ios', '5.2.7' + pod 'apptentive-ios', '5.2.13' end diff --git a/sample/ios/Podfile.lock b/sample/ios/Podfile.lock index 6e511b9..ad9ea5c 100644 --- a/sample/ios/Podfile.lock +++ b/sample/ios/Podfile.lock @@ -1,16 +1,16 @@ PODS: - - apptentive-ios (5.2.7) + - apptentive-ios (5.2.13) DEPENDENCIES: - - apptentive-ios (= 5.2.7) + - apptentive-ios (= 5.2.13) SPEC REPOS: - https://github.com/CocoaPods/Specs.git: + trunk: - apptentive-ios SPEC CHECKSUMS: - apptentive-ios: fc0c29a9599737240b5fe93d10d2a90150fb6b7a + apptentive-ios: d99c34d093015a81d2c8621dcd749d95ad750569 -PODFILE CHECKSUM: 3b112418f2faa6ed3cde7a7ee73502794a46f47c +PODFILE CHECKSUM: 1870fe30ec5057223850deb0fc666a7e0fe40e8a -COCOAPODS: 1.8.4 +COCOAPODS: 1.9.3 From 1337bfdc42cedb2d7d1b2e546a8187443fb2ccf5 Mon Sep 17 00:00:00 2001 From: Frank Schmitt Date: Wed, 8 Jul 2020 14:51:38 -0700 Subject: [PATCH 16/18] Update CHANGELOG entry --- CHANGELOG.md | 4 ++-- android/build.gradle | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 963196b..166ef76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,10 @@ This document lets you know what has changed in the React Native module. For cha - [Android Changelog](https://github.com/apptentive/apptentive-android/blob/master/CHANGELOG.md) - [iOS Changelog](https://github.com/apptentive/apptentive-ios/blob/master/CHANGELOG.md) -# 2020-07-06 - v5.5.1 +# 2020-07-08 - v5.5.1 - Apptentive Android SDK: 5.5.3 -- Apptentive iOS SDK: 5.2.13 +- Apptentive iOS SDK: 5.2.14 # 2019-11-14 - v5.5.0 diff --git a/android/build.gradle b/android/build.gradle index 6256476..ae43da6 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -32,5 +32,5 @@ repositories { dependencies { implementation 'com.facebook.react:react-native:+' - implementation 'com.apptentive:apptentive-android:5.5.0' + implementation 'com.apptentive:apptentive-android:5.5.3' } \ No newline at end of file diff --git a/package.json b/package.json index b338bd2..8200fd5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "apptentive-react-native", - "version": "5.5.1", + "version": "5.5.2", "description": "React Native Module for Apptentive SDK", "main": "js/index.js", "types": "js/index.d.ts", From 6ce9d08624ac2f3615312f3a515178dcb78723ad Mon Sep 17 00:00:00 2001 From: Frank Schmitt Date: Wed, 8 Jul 2020 15:00:10 -0700 Subject: [PATCH 17/18] Revert version to 5.5.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8200fd5..b338bd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "apptentive-react-native", - "version": "5.5.2", + "version": "5.5.1", "description": "React Native Module for Apptentive SDK", "main": "js/index.js", "types": "js/index.d.ts", From 27bf799496d6ccf399511b6c062af49cb02551bf Mon Sep 17 00:00:00 2001 From: Frank Schmitt Date: Wed, 8 Jul 2020 15:00:25 -0700 Subject: [PATCH 18/18] Updated files for 5.5.1 release --- sample/ios/Podfile | 2 +- sample/ios/Podfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sample/ios/Podfile b/sample/ios/Podfile index 7a2381b..9d00965 100644 --- a/sample/ios/Podfile +++ b/sample/ios/Podfile @@ -6,6 +6,6 @@ target 'sample' do use_frameworks! # Pods for sample - pod 'apptentive-ios', '5.2.13' + pod 'apptentive-ios', '5.2.14' end diff --git a/sample/ios/Podfile.lock b/sample/ios/Podfile.lock index ad9ea5c..3816927 100644 --- a/sample/ios/Podfile.lock +++ b/sample/ios/Podfile.lock @@ -1,16 +1,16 @@ PODS: - - apptentive-ios (5.2.13) + - apptentive-ios (5.2.14) DEPENDENCIES: - - apptentive-ios (= 5.2.13) + - apptentive-ios (= 5.2.14) SPEC REPOS: trunk: - apptentive-ios SPEC CHECKSUMS: - apptentive-ios: d99c34d093015a81d2c8621dcd749d95ad750569 + apptentive-ios: 16951b1f9546bbae9165792679f865dc53bbe82f -PODFILE CHECKSUM: 1870fe30ec5057223850deb0fc666a7e0fe40e8a +PODFILE CHECKSUM: 6054e413be9c8c5ca4dd0d946a9d8e08124d4257 COCOAPODS: 1.9.3