mirror of
				https://gitcode.com/gh_mirrors/re/react-native-pushy.git
				synced 2025-10-31 21:33:12 +08:00 
			
		
		
		
	feat: CI测试
This commit is contained in:
		
							
								
								
									
										6
									
								
								Example/testHotUpdate/.buckconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Example/testHotUpdate/.buckconfig
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  |  | ||||||
|  | [android] | ||||||
|  |   target = Google Inc.:Google APIs:23 | ||||||
|  |  | ||||||
|  | [maven_repositories] | ||||||
|  |   central = https://repo1.maven.org/maven2 | ||||||
| @@ -12,16 +12,16 @@ module.exports = { | |||||||
|   apps: { |   apps: { | ||||||
|     'ios.debug': { |     'ios.debug': { | ||||||
|       type: 'ios.app', |       type: 'ios.app', | ||||||
|       binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/testHotUpdate.app', |       binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/AwesomeProject.app', | ||||||
|       build: |       build: | ||||||
|         'xcodebuild -workspace ios/testHotUpdate.xcworkspace -scheme testHotUpdate -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build', |         'xcodebuild -workspace ios/AwesomeProject.xcworkspace -scheme AwesomeProject -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build', | ||||||
|     }, |     }, | ||||||
|     'ios.release': { |     'ios.release': { | ||||||
|       type: 'ios.app', |       type: 'ios.app', | ||||||
|       binaryPath: |       binaryPath: | ||||||
|         'ios/build/Build/Products/Release-iphonesimulator/testHotUpdate.app', |         'ios/build/Build/Products/Release-iphonesimulator/AwesomeProject.app', | ||||||
|       build: |       build: | ||||||
|         'xcodebuild -workspace ios/testHotUpdate.xcworkspace -scheme testHotUpdate -configuration Release -sdk iphonesimulator -derivedDataPath ios/build', |         'xcodebuild -workspace ios/AwesomeProject.xcworkspace -scheme AwesomeProject -configuration Release -sdk iphonesimulator -derivedDataPath ios/build', | ||||||
|     }, |     }, | ||||||
|     'android.debug': { |     'android.debug': { | ||||||
|       type: 'android.apk', |       type: 'android.apk', | ||||||
							
								
								
									
										4
									
								
								Example/testHotUpdate/.eslintrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Example/testHotUpdate/.eslintrc.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | module.exports = { | ||||||
|  |   root: true, | ||||||
|  |   extends: '@react-native-community', | ||||||
|  | }; | ||||||
							
								
								
									
										66
									
								
								Example/testHotUpdate/.flowconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								Example/testHotUpdate/.flowconfig
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  | [ignore] | ||||||
|  | ; We fork some components by platform | ||||||
|  | .*/*[.]android.js | ||||||
|  |  | ||||||
|  | ; Ignore "BUCK" generated dirs | ||||||
|  | <PROJECT_ROOT>/\.buckd/ | ||||||
|  |  | ||||||
|  | ; Ignore polyfills | ||||||
|  | node_modules/react-native/Libraries/polyfills/.* | ||||||
|  |  | ||||||
|  | ; Flow doesn't support platforms | ||||||
|  | .*/Libraries/Utilities/LoadingView.js | ||||||
|  |  | ||||||
|  | .*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ | ||||||
|  |  | ||||||
|  | [untyped] | ||||||
|  | .*/node_modules/@react-native-community/cli/.*/.* | ||||||
|  |  | ||||||
|  | [include] | ||||||
|  |  | ||||||
|  | [libs] | ||||||
|  | node_modules/react-native/interface.js | ||||||
|  | node_modules/react-native/flow/ | ||||||
|  |  | ||||||
|  | [options] | ||||||
|  | emoji=true | ||||||
|  |  | ||||||
|  | exact_by_default=true | ||||||
|  |  | ||||||
|  | format.bracket_spacing=false | ||||||
|  |  | ||||||
|  | module.file_ext=.js | ||||||
|  | module.file_ext=.json | ||||||
|  | module.file_ext=.ios.js | ||||||
|  |  | ||||||
|  | munge_underscores=true | ||||||
|  |  | ||||||
|  | module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1' | ||||||
|  | module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub' | ||||||
|  |  | ||||||
|  | suppress_type=$FlowIssue | ||||||
|  | suppress_type=$FlowFixMe | ||||||
|  | suppress_type=$FlowFixMeProps | ||||||
|  | suppress_type=$FlowFixMeState | ||||||
|  |  | ||||||
|  | [lints] | ||||||
|  | sketchy-null-number=warn | ||||||
|  | sketchy-null-mixed=warn | ||||||
|  | sketchy-number=warn | ||||||
|  | untyped-type-import=warn | ||||||
|  | nonstrict-import=warn | ||||||
|  | deprecated-type=warn | ||||||
|  | unsafe-getters-setters=warn | ||||||
|  | unnecessary-invariant=warn | ||||||
|  |  | ||||||
|  | [strict] | ||||||
|  | deprecated-type | ||||||
|  | nonstrict-import | ||||||
|  | sketchy-null | ||||||
|  | unclear-type | ||||||
|  | unsafe-getters-setters | ||||||
|  | untyped-import | ||||||
|  | untyped-type-import | ||||||
|  |  | ||||||
|  | [version] | ||||||
|  | ^0.176.3 | ||||||
							
								
								
									
										59
									
								
								Example/testHotUpdate/.github/workflows/e2e-android.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								Example/testHotUpdate/.github/workflows/e2e-android.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | |||||||
|  | name: e2e-android | ||||||
|  | on: push | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   e2e-android: | ||||||
|  |     runs-on: macos-latest | ||||||
|  |     env: | ||||||
|  |       DETOX_CONFIGURATION: android.emu.release | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout repository | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|  |       - name: Setup Node.js | ||||||
|  |         uses: actions/setup-node@v3 | ||||||
|  |         with: | ||||||
|  |           cache: yarn | ||||||
|  |           node-version-file: .nvmrc | ||||||
|  |  | ||||||
|  |       - name: Install Yarn dependencies | ||||||
|  |         run: yarn --frozen-lockfile --prefer-offline | ||||||
|  |  | ||||||
|  |       - name: Setup Java | ||||||
|  |         uses: actions/setup-java@v3 | ||||||
|  |         with: | ||||||
|  |           cache: gradle | ||||||
|  |           distribution: temurin | ||||||
|  |           java-version: 17 | ||||||
|  |  | ||||||
|  |       - name: Cache Detox build | ||||||
|  |         id: cache-detox-build | ||||||
|  |         uses: actions/cache@v3 | ||||||
|  |         with: | ||||||
|  |           path: android/app/build | ||||||
|  |           key: ${{ runner.os }}-detox-build | ||||||
|  |           restore-keys: | | ||||||
|  |             ${{ runner.os }}-detox-build | ||||||
|  |  | ||||||
|  |       - name: Detox build | ||||||
|  |         run: yarn detox build --configuration ${{ env.DETOX_CONFIGURATION }} | ||||||
|  |  | ||||||
|  |       - name: Get device name | ||||||
|  |         id: device | ||||||
|  |         run: node -e "console.log('AVD_NAME=' + require('./.detoxrc').devices.emulator.device.avdName)" >> $GITHUB_OUTPUT | ||||||
|  |  | ||||||
|  |       - name: Detox test | ||||||
|  |         uses: reactivecircus/android-emulator-runner@v2 | ||||||
|  |         with: | ||||||
|  |           api-level: 31 | ||||||
|  |           arch: x86_64 | ||||||
|  |           avd-name: ${{ steps.device.outputs.AVD_NAME }} | ||||||
|  |           script: yarn detox test --configuration ${{ env.DETOX_CONFIGURATION }} --headless --record-logs all | ||||||
|  |  | ||||||
|  |       - name: Upload artifacts | ||||||
|  |         if: failure() | ||||||
|  |         uses: actions/upload-artifact@v3 | ||||||
|  |         with: | ||||||
|  |           name: detox-artifacts | ||||||
|  |           path: artifacts | ||||||
							
								
								
									
										13
									
								
								Example/testHotUpdate/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								Example/testHotUpdate/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -24,16 +24,12 @@ ios/.xcode.env.local | |||||||
|  |  | ||||||
| # Android/IntelliJ | # Android/IntelliJ | ||||||
| # | # | ||||||
| release/ |  | ||||||
| build/ | build/ | ||||||
| .idea | .idea | ||||||
| .gradle | .gradle | ||||||
| local.properties | local.properties | ||||||
| *.iml | *.iml | ||||||
| *.hprof | *.hprof | ||||||
| .cxx/ |  | ||||||
| *.keystore |  | ||||||
| !debug.keystore |  | ||||||
|  |  | ||||||
| # node.js | # node.js | ||||||
| # | # | ||||||
| @@ -41,6 +37,12 @@ node_modules/ | |||||||
| npm-debug.log | npm-debug.log | ||||||
| yarn-error.log | yarn-error.log | ||||||
|  |  | ||||||
|  | # BUCK | ||||||
|  | buck-out/ | ||||||
|  | \.buckd/ | ||||||
|  | *.keystore | ||||||
|  | !debug.keystore | ||||||
|  |  | ||||||
| # fastlane | # fastlane | ||||||
| # | # | ||||||
| # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the | ||||||
| @@ -59,6 +61,3 @@ yarn-error.log | |||||||
| # Ruby / CocoaPods | # Ruby / CocoaPods | ||||||
| /ios/Pods/ | /ios/Pods/ | ||||||
| /vendor/bundle/ | /vendor/bundle/ | ||||||
|  |  | ||||||
| # Temporary files created by Metro to check the health of the file watcher |  | ||||||
| .metro-health-check* |  | ||||||
							
								
								
									
										1
									
								
								Example/testHotUpdate/.nvmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Example/testHotUpdate/.nvmrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | 18 | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -1 +0,0 @@ | |||||||
| {} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| {"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/detox.config.js":{"path":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/detox.config.js","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":110,"column":2}}},"fnMap":{},"branchMap":{"0":{"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":47}},"type":"cond-expr","locations":[{"start":{"line":4,"column":28},"end":{"line":4,"column":35}},{"start":{"line":4,"column":38},"end":{"line":4,"column":47}}],"line":4},"1":{"loc":{"start":{"line":9,"column":18},"end":{"line":9,"column":48}},"type":"cond-expr","locations":[{"start":{"line":9,"column":35},"end":{"line":9,"column":36}},{"start":{"line":9,"column":39},"end":{"line":9,"column":48}}],"line":9},"2":{"loc":{"start":{"line":15,"column":11},"end":{"line":15,"column":49}},"type":"cond-expr","locations":[{"start":{"line":15,"column":28},"end":{"line":15,"column":37}},{"start":{"line":15,"column":40},"end":{"line":15,"column":49}}],"line":15},"3":{"loc":{"start":{"line":16,"column":18},"end":{"line":16,"column":56}},"type":"cond-expr","locations":[{"start":{"line":16,"column":35},"end":{"line":16,"column":44}},{"start":{"line":16,"column":47},"end":{"line":16,"column":56}}],"line":16},"4":{"loc":{"start":{"line":58,"column":15},"end":{"line":58,"column":49}},"type":"cond-expr","locations":[{"start":{"line":58,"column":32},"end":{"line":58,"column":37}},{"start":{"line":58,"column":40},"end":{"line":58,"column":49}}],"line":58}},"s":{"0":1},"f":{},"b":{"0":[0,1],"1":[0,1],"2":[0,1],"3":[0,1],"4":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"58bedfd3138217937b7d396abd7b0c5826481f79","contentHash":"522b38643de93a23c72e2d1e6fe4f7c043965dd9f6c9c9782d17180545d4bfd3"}} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| {"parent":"f45cbde3-af32-4880-b276-321a181077f9","pid":95187,"argv":["/usr/local/bin/node","/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/node_modules/.bin/jest","--config","e2e/jest.config.js","e2e"],"execArgv":[],"cwd":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate","time":1680248198332,"ppid":95181,"coverageFilename":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/.nyc_output/19bd8c73-3fb6-4ed1-a0bb-38f0a5fd9ee6.json","externalId":"","uuid":"19bd8c73-3fb6-4ed1-a0bb-38f0a5fd9ee6","files":["/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/e2e/globalSetup.ts"]} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| {"parent":null,"pid":95180,"argv":["/usr/local/bin/node","/opt/homebrew/bin/yarn","detox","test","--configuration","android.emu.release"],"execArgv":[],"cwd":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate","time":1680248197419,"ppid":95177,"coverageFilename":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/.nyc_output/d981de3a-162c-4c70-80a9-84bb168e00d7.json","externalId":"","uuid":"d981de3a-162c-4c70-80a9-84bb168e00d7","files":[]} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| {"parent":"d981de3a-162c-4c70-80a9-84bb168e00d7","pid":95181,"argv":["/usr/local/bin/node","/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/node_modules/.bin/detox","test","--configuration","android.emu.release"],"execArgv":[],"cwd":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate","time":1680248197907,"ppid":95180,"coverageFilename":"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/.nyc_output/f45cbde3-af32-4880-b276-321a181077f9.json","externalId":"","uuid":"f45cbde3-af32-4880-b276-321a181077f9","files":["/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/detox.config.js"]} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| {"processes":{"19bd8c73-3fb6-4ed1-a0bb-38f0a5fd9ee6":{"parent":"f45cbde3-af32-4880-b276-321a181077f9","children":[]},"d981de3a-162c-4c70-80a9-84bb168e00d7":{"parent":null,"children":["f45cbde3-af32-4880-b276-321a181077f9"]},"f45cbde3-af32-4880-b276-321a181077f9":{"parent":"d981de3a-162c-4c70-80a9-84bb168e00d7","children":["19bd8c73-3fb6-4ed1-a0bb-38f0a5fd9ee6"]}},"files":{"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/e2e/globalSetup.ts":["19bd8c73-3fb6-4ed1-a0bb-38f0a5fd9ee6"],"/Users/arvinh/Desktop/remotework/react-native-pushy/Example/testHotUpdate/detox.config.js":["f45cbde3-af32-4880-b276-321a181077f9"]},"externalIds":{}} |  | ||||||
| @@ -1 +1 @@ | |||||||
| 3.1.1 | 2.7.5 | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| source 'https://rubygems.org' | source 'https://rubygems.org' | ||||||
|  |  | ||||||
| # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version | ||||||
| ruby File.read(File.join(__dir__, '.ruby-version')).strip | ruby '3.1.1' | ||||||
|  |  | ||||||
| gem 'cocoapods', '~> 1.11', '>= 1.11.3' | gem 'cocoapods', '~> 1.11', '>= 1.11.2' | ||||||
|   | |||||||
| @@ -1,30 +1,29 @@ | |||||||
| GEM | GEM | ||||||
|   remote: https://rubygems.org/ |   remote: https://rubygems.org/ | ||||||
|   specs: |   specs: | ||||||
|     CFPropertyList (3.0.5) |     CFPropertyList (3.0.6) | ||||||
|       rexml |       rexml | ||||||
|     activesupport (6.1.5.1) |     activesupport (7.0.4.3) | ||||||
|       concurrent-ruby (~> 1.0, >= 1.0.2) |       concurrent-ruby (~> 1.0, >= 1.0.2) | ||||||
|       i18n (>= 1.6, < 2) |       i18n (>= 1.6, < 2) | ||||||
|       minitest (>= 5.1) |       minitest (>= 5.1) | ||||||
|       tzinfo (~> 2.0) |       tzinfo (~> 2.0) | ||||||
|       zeitwerk (~> 2.3) |     addressable (2.8.1) | ||||||
|     addressable (2.8.0) |       public_suffix (>= 2.0.2, < 6.0) | ||||||
|       public_suffix (>= 2.0.2, < 5.0) |  | ||||||
|     algoliasearch (1.27.5) |     algoliasearch (1.27.5) | ||||||
|       httpclient (~> 2.8, >= 2.8.3) |       httpclient (~> 2.8, >= 2.8.3) | ||||||
|       json (>= 1.5.1) |       json (>= 1.5.1) | ||||||
|     atomos (0.1.3) |     atomos (0.1.3) | ||||||
|     claide (1.1.0) |     claide (1.1.0) | ||||||
|     cocoapods (1.11.3) |     cocoapods (1.12.0) | ||||||
|       addressable (~> 2.8) |       addressable (~> 2.8) | ||||||
|       claide (>= 1.0.2, < 2.0) |       claide (>= 1.0.2, < 2.0) | ||||||
|       cocoapods-core (= 1.11.3) |       cocoapods-core (= 1.12.0) | ||||||
|       cocoapods-deintegrate (>= 1.0.3, < 2.0) |       cocoapods-deintegrate (>= 1.0.3, < 2.0) | ||||||
|       cocoapods-downloader (>= 1.4.0, < 2.0) |       cocoapods-downloader (>= 1.6.0, < 2.0) | ||||||
|       cocoapods-plugins (>= 1.0.0, < 2.0) |       cocoapods-plugins (>= 1.0.0, < 2.0) | ||||||
|       cocoapods-search (>= 1.0.0, < 2.0) |       cocoapods-search (>= 1.0.0, < 2.0) | ||||||
|       cocoapods-trunk (>= 1.4.0, < 2.0) |       cocoapods-trunk (>= 1.6.0, < 2.0) | ||||||
|       cocoapods-try (>= 1.1.0, < 2.0) |       cocoapods-try (>= 1.1.0, < 2.0) | ||||||
|       colored2 (~> 3.1) |       colored2 (~> 3.1) | ||||||
|       escape (~> 0.0.4) |       escape (~> 0.0.4) | ||||||
| @@ -32,10 +31,10 @@ GEM | |||||||
|       gh_inspector (~> 1.0) |       gh_inspector (~> 1.0) | ||||||
|       molinillo (~> 0.8.0) |       molinillo (~> 0.8.0) | ||||||
|       nap (~> 1.0) |       nap (~> 1.0) | ||||||
|       ruby-macho (>= 1.0, < 3.0) |       ruby-macho (>= 2.3.0, < 3.0) | ||||||
|       xcodeproj (>= 1.21.0, < 2.0) |       xcodeproj (>= 1.21.0, < 2.0) | ||||||
|     cocoapods-core (1.11.3) |     cocoapods-core (1.12.0) | ||||||
|       activesupport (>= 5.0, < 7) |       activesupport (>= 5.0, < 8) | ||||||
|       addressable (~> 2.8) |       addressable (~> 2.8) | ||||||
|       algoliasearch (~> 1.0) |       algoliasearch (~> 1.0) | ||||||
|       concurrent-ruby (~> 1.1) |       concurrent-ruby (~> 1.1) | ||||||
| @@ -54,19 +53,19 @@ GEM | |||||||
|       netrc (~> 0.11) |       netrc (~> 0.11) | ||||||
|     cocoapods-try (1.2.0) |     cocoapods-try (1.2.0) | ||||||
|     colored2 (3.1.2) |     colored2 (3.1.2) | ||||||
|     concurrent-ruby (1.1.10) |     concurrent-ruby (1.2.2) | ||||||
|     escape (0.0.4) |     escape (0.0.4) | ||||||
|     ethon (0.15.0) |     ethon (0.16.0) | ||||||
|       ffi (>= 1.15.0) |       ffi (>= 1.15.0) | ||||||
|     ffi (1.15.5) |     ffi (1.15.5) | ||||||
|     fourflusher (2.3.1) |     fourflusher (2.3.1) | ||||||
|     fuzzy_match (2.0.4) |     fuzzy_match (2.0.4) | ||||||
|     gh_inspector (1.1.3) |     gh_inspector (1.1.3) | ||||||
|     httpclient (2.8.3) |     httpclient (2.8.3) | ||||||
|     i18n (1.10.0) |     i18n (1.12.0) | ||||||
|       concurrent-ruby (~> 1.0) |       concurrent-ruby (~> 1.0) | ||||||
|     json (2.6.1) |     json (2.6.3) | ||||||
|     minitest (5.15.0) |     minitest (5.18.0) | ||||||
|     molinillo (0.8.0) |     molinillo (0.8.0) | ||||||
|     nanaimo (0.3.0) |     nanaimo (0.3.0) | ||||||
|     nap (1.1.0) |     nap (1.1.0) | ||||||
| @@ -76,25 +75,24 @@ GEM | |||||||
|     ruby-macho (2.5.1) |     ruby-macho (2.5.1) | ||||||
|     typhoeus (1.4.0) |     typhoeus (1.4.0) | ||||||
|       ethon (>= 0.9.0) |       ethon (>= 0.9.0) | ||||||
|     tzinfo (2.0.4) |     tzinfo (2.0.6) | ||||||
|       concurrent-ruby (~> 1.0) |       concurrent-ruby (~> 1.0) | ||||||
|     xcodeproj (1.21.0) |     xcodeproj (1.22.0) | ||||||
|       CFPropertyList (>= 2.3.3, < 4.0) |       CFPropertyList (>= 2.3.3, < 4.0) | ||||||
|       atomos (~> 0.1.3) |       atomos (~> 0.1.3) | ||||||
|       claide (>= 1.0.2, < 2.0) |       claide (>= 1.0.2, < 2.0) | ||||||
|       colored2 (~> 3.1) |       colored2 (~> 3.1) | ||||||
|       nanaimo (~> 0.3.0) |       nanaimo (~> 0.3.0) | ||||||
|       rexml (~> 3.2.4) |       rexml (~> 3.2.4) | ||||||
|     zeitwerk (2.5.4) |  | ||||||
|  |  | ||||||
| PLATFORMS | PLATFORMS | ||||||
|   ruby |   ruby | ||||||
|  |  | ||||||
| DEPENDENCIES | DEPENDENCIES | ||||||
|   cocoapods (~> 1.11, >= 1.11.3) |   cocoapods (~> 1.11, >= 1.11.2) | ||||||
|  |  | ||||||
| RUBY VERSION | RUBY VERSION | ||||||
|    ruby 3.1.1p18 |    ruby 3.1.1p18 | ||||||
|  |  | ||||||
| BUNDLED WITH | BUNDLED WITH | ||||||
|    2.2.27 |    2.1.4 | ||||||
|   | |||||||
							
								
								
									
										66
									
								
								Example/testHotUpdate/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								Example/testHotUpdate/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  | # react-native-android-detox | ||||||
|  |  | ||||||
|  | [](https://github.com/remarkablemark/react-native-android-detox/actions/workflows/e2e-android.yml) | ||||||
|  |  | ||||||
|  | React Native Android Detox. The project has already been patched with the [additional Android configuration](https://wix.github.io/Detox/docs/introduction/project-setup/). | ||||||
|  |  | ||||||
|  | ## Prerequisites | ||||||
|  |  | ||||||
|  | Follow the [environment setup](https://wix.github.io/Detox/docs/introduction/getting-started). | ||||||
|  |  | ||||||
|  | ## Install | ||||||
|  |  | ||||||
|  | Clone the repository: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | git clone https://github.com/remarkablemark/react-native-android-detox.git | ||||||
|  | cd react-native-android-detox | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Install the dependencies: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | yarn | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Build | ||||||
|  |  | ||||||
|  | ### Android (Debug) | ||||||
|  |  | ||||||
|  | Build the Android debug app: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | yarn detox build --configuration android.emu.debug | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Android (Release) | ||||||
|  |  | ||||||
|  | Build the Android release app: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | yarn detox build --configuration android.emu.release | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Test | ||||||
|  |  | ||||||
|  | ### Android (Debug) | ||||||
|  |  | ||||||
|  | Start the app: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | yarn start | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Run the test: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | yarn detox test --configuration android.emu.debug | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Android (Release) | ||||||
|  |  | ||||||
|  | Run the test: | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | yarn detox test --configuration android.emu.release | ||||||
|  | ``` | ||||||
							
								
								
									
										55
									
								
								Example/testHotUpdate/android/app/_BUCK
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								Example/testHotUpdate/android/app/_BUCK
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | # To learn about Buck see [Docs](https://buckbuild.com/). | ||||||
|  | # To run your application with Buck: | ||||||
|  | # - install Buck | ||||||
|  | # - `npm start` - to start the packager | ||||||
|  | # - `cd android` | ||||||
|  | # - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` | ||||||
|  | # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck | ||||||
|  | # - `buck install -r android/app` - compile, install and run application | ||||||
|  | # | ||||||
|  |  | ||||||
|  | load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") | ||||||
|  |  | ||||||
|  | lib_deps = [] | ||||||
|  |  | ||||||
|  | create_aar_targets(glob(["libs/*.aar"])) | ||||||
|  |  | ||||||
|  | create_jar_targets(glob(["libs/*.jar"])) | ||||||
|  |  | ||||||
|  | android_library( | ||||||
|  |     name = "all-libs", | ||||||
|  |     exported_deps = lib_deps, | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | android_library( | ||||||
|  |     name = "app-code", | ||||||
|  |     srcs = glob([ | ||||||
|  |         "src/main/java/**/*.java", | ||||||
|  |     ]), | ||||||
|  |     deps = [ | ||||||
|  |         ":all-libs", | ||||||
|  |         ":build_config", | ||||||
|  |         ":res", | ||||||
|  |     ], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | android_build_config( | ||||||
|  |     name = "build_config", | ||||||
|  |     package = "com.awesomeproject", | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | android_resource( | ||||||
|  |     name = "res", | ||||||
|  |     package = "com.awesomeproject", | ||||||
|  |     res = "src/main/res", | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | android_binary( | ||||||
|  |     name = "app", | ||||||
|  |     keystore = "//android/keystores:debug", | ||||||
|  |     manifest = "src/main/AndroidManifest.xml", | ||||||
|  |     package_type = "debug", | ||||||
|  |     deps = [ | ||||||
|  |         ":app-code", | ||||||
|  |     ], | ||||||
|  | ) | ||||||
| @@ -1,87 +1,127 @@ | |||||||
| apply plugin: "com.android.application" | apply plugin: "com.android.application" | ||||||
| apply plugin: "com.facebook.react" |  | ||||||
|  |  | ||||||
| import com.android.build.OutputFile | import com.android.build.OutputFile | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * This is the configuration block to customize your React Native Android app. |  * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets | ||||||
|  * By default you don't need to apply any configuration, just uncomment the lines you need. |  * and bundleReleaseJsAndAssets). | ||||||
|  |  * These basically call `react-native bundle` with the correct arguments during the Android build | ||||||
|  |  * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the | ||||||
|  |  * bundle directly from the development server. Below you can see all the possible configurations | ||||||
|  |  * and their defaults. If you decide to add a configuration block, make sure to add it before the | ||||||
|  |  * `apply from: "../../node_modules/react-native/react.gradle"` line. | ||||||
|  |  * | ||||||
|  |  * project.ext.react = [ | ||||||
|  |  *   // the name of the generated asset file containing your JS bundle | ||||||
|  |  *   bundleAssetName: "index.android.bundle", | ||||||
|  |  * | ||||||
|  |  *   // the entry file for bundle generation. If none specified and | ||||||
|  |  *   // "index.android.js" exists, it will be used. Otherwise "index.js" is | ||||||
|  |  *   // default. Can be overridden with ENTRY_FILE environment variable. | ||||||
|  |  *   entryFile: "index.android.js", | ||||||
|  |  * | ||||||
|  |  *   // https://reactnative.dev/docs/performance#enable-the-ram-format | ||||||
|  |  *   bundleCommand: "ram-bundle", | ||||||
|  |  * | ||||||
|  |  *   // whether to bundle JS and assets in debug mode | ||||||
|  |  *   bundleInDebug: false, | ||||||
|  |  * | ||||||
|  |  *   // whether to bundle JS and assets in release mode | ||||||
|  |  *   bundleInRelease: true, | ||||||
|  |  * | ||||||
|  |  *   // whether to bundle JS and assets in another build variant (if configured). | ||||||
|  |  *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants | ||||||
|  |  *   // The configuration property can be in the following formats | ||||||
|  |  *   //         'bundleIn${productFlavor}${buildType}' | ||||||
|  |  *   //         'bundleIn${buildType}' | ||||||
|  |  *   // bundleInFreeDebug: true, | ||||||
|  |  *   // bundleInPaidRelease: true, | ||||||
|  |  *   // bundleInBeta: true, | ||||||
|  |  * | ||||||
|  |  *   // whether to disable dev mode in custom build variants (by default only disabled in release) | ||||||
|  |  *   // for example: to disable dev mode in the staging build type (if configured) | ||||||
|  |  *   devDisabledInStaging: true, | ||||||
|  |  *   // The configuration property can be in the following formats | ||||||
|  |  *   //         'devDisabledIn${productFlavor}${buildType}' | ||||||
|  |  *   //         'devDisabledIn${buildType}' | ||||||
|  |  * | ||||||
|  |  *   // the root of your project, i.e. where "package.json" lives | ||||||
|  |  *   root: "../../", | ||||||
|  |  * | ||||||
|  |  *   // where to put the JS bundle asset in debug mode | ||||||
|  |  *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug", | ||||||
|  |  * | ||||||
|  |  *   // where to put the JS bundle asset in release mode | ||||||
|  |  *   jsBundleDirRelease: "$buildDir/intermediates/assets/release", | ||||||
|  |  * | ||||||
|  |  *   // where to put drawable resources / React Native assets, e.g. the ones you use via | ||||||
|  |  *   // require('./image.png')), in debug mode | ||||||
|  |  *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", | ||||||
|  |  * | ||||||
|  |  *   // where to put drawable resources / React Native assets, e.g. the ones you use via | ||||||
|  |  *   // require('./image.png')), in release mode | ||||||
|  |  *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release", | ||||||
|  |  * | ||||||
|  |  *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means | ||||||
|  |  *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to | ||||||
|  |  *   // date; if you have any other folders that you want to ignore for performance reasons (gradle | ||||||
|  |  *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ | ||||||
|  |  *   // for example, you might want to remove it from here. | ||||||
|  |  *   inputExcludes: ["android/**", "ios/**"], | ||||||
|  |  * | ||||||
|  |  *   // override which node gets called and with what additional arguments | ||||||
|  |  *   nodeExecutableAndArgs: ["node"], | ||||||
|  |  * | ||||||
|  |  *   // supply additional arguments to the packager | ||||||
|  |  *   extraPackagerArgs: [] | ||||||
|  |  * ] | ||||||
|  */ |  */ | ||||||
| react { |  | ||||||
|     /* Folders */ |  | ||||||
|     //   The root of your project, i.e. where "package.json" lives. Default is '..' |  | ||||||
|     // root = file("../") |  | ||||||
|     //   The folder where the react-native NPM package is. Default is ../node_modules/react-native |  | ||||||
|     // reactNativeDir = file("../node_modules/react-native") |  | ||||||
|     //   The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen |  | ||||||
|     // codegenDir = file("../node_modules/react-native-codegen") |  | ||||||
|     //   The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js |  | ||||||
|     // cliFile = file("../node_modules/react-native/cli.js") |  | ||||||
|  |  | ||||||
|     /* Variants */ | project.ext.react = [ | ||||||
|     //   The list of variants to that are debuggable. For those we're going to |     enableHermes: false,  // clean and rebuild if changing | ||||||
|     //   skip the bundling of the JS bundle and the assets. By default is just 'debug'. | ] | ||||||
|     //   If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. |  | ||||||
|     // debuggableVariants = ["liteDebug", "prodDebug"] |  | ||||||
|  |  | ||||||
|     /* Bundling */ | apply from: "../../node_modules/react-native/react.gradle" | ||||||
|     //   A list containing the node command and its flags. Default is just 'node'. |  | ||||||
|     // nodeExecutableAndArgs = ["node"] |  | ||||||
|     // |  | ||||||
|     //   The command to run when bundling. By default is 'bundle' |  | ||||||
|     // bundleCommand = "ram-bundle" |  | ||||||
|     // |  | ||||||
|     //   The path to the CLI configuration file. Default is empty. |  | ||||||
|     // bundleConfig = file(../rn-cli.config.js) |  | ||||||
|     // |  | ||||||
|     //   The name of the generated asset file containing your JS bundle |  | ||||||
|     // bundleAssetName = "MyApplication.android.bundle" |  | ||||||
|     // |  | ||||||
|     //   The entry file for bundle generation. Default is 'index.android.js' or 'index.js' |  | ||||||
|     // entryFile = file("../js/MyApplication.android.js") |  | ||||||
|     // |  | ||||||
|     //   A list of extra flags to pass to the 'bundle' commands. |  | ||||||
|     //   See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle |  | ||||||
|     // extraPackagerArgs = [] |  | ||||||
|  |  | ||||||
|     /* Hermes Commands */ |  | ||||||
|     //   The hermes compiler command to run. By default it is 'hermesc' |  | ||||||
|     // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" |  | ||||||
|     // |  | ||||||
|     //   The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" |  | ||||||
|     // hermesFlags = ["-O", "-output-source-map"] |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Set this to true to create four separate APKs instead of one, |  * Set this to true to create two separate APKs instead of one: | ||||||
|  * one for each native architecture. This is useful if you don't |  *   - An APK that only works on ARM devices | ||||||
|  * use App Bundles (https://developer.android.com/guide/app-bundle/) |  *   - An APK that only works on x86 devices | ||||||
|  * and want to have separate APKs to upload to the Play Store. |  * The advantage is the size of the APK is reduced by about 4MB. | ||||||
|  |  * Upload all the APKs to the Play Store and people will download | ||||||
|  |  * the correct one based on the CPU architecture of their device. | ||||||
|  */ |  */ | ||||||
| def enableSeparateBuildPerCPUArchitecture = false | def enableSeparateBuildPerCPUArchitecture = false | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Set this to true to Run Proguard on Release builds to minify the Java bytecode. |  * Run Proguard to shrink the Java bytecode in release builds. | ||||||
|  */ |  */ | ||||||
| def enableProguardInReleaseBuilds = false | def enableProguardInReleaseBuilds = false | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * The preferred build flavor of JavaScriptCore (JSC) |  * The preferred build flavor of JavaScriptCore. | ||||||
|  * |  * | ||||||
|  * For example, to use the international variant, you can use: |  * For example, to use the international variant, you can use: | ||||||
|  * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` |  * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` | ||||||
|  * |  * | ||||||
|  * The international variant includes ICU i18n library and necessary data |  * The international variant includes ICU i18n library and necessary data | ||||||
|  * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that |  * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that | ||||||
|  * give correct results when using with locales other than en-US. Note that |  * give correct results when using with locales other than en-US.  Note that | ||||||
|  * this variant is about 6MiB larger per architecture than default. |  * this variant is about 6MiB larger per architecture than default. | ||||||
|  */ |  */ | ||||||
| def jscFlavor = 'org.webkit:android-jsc:+' | def jscFlavor = 'org.webkit:android-jsc:+' | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Private function to get the list of Native Architectures you want to build. |  * Whether to enable the Hermes VM. | ||||||
|  * This reads the value from reactNativeArchitectures in your gradle.properties |  * | ||||||
|  * file and works together with the --active-arch-only flag of react-native run-android. |  * This should be set on project.ext.react and that value will be read here. If it is not set | ||||||
|  |  * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode | ||||||
|  |  * and the benefits of using Hermes will therefore be sharply reduced. | ||||||
|  |  */ | ||||||
|  | def enableHermes = project.ext.react.get("enableHermes", false); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Architectures to build native code for. | ||||||
|  */ |  */ | ||||||
| def reactNativeArchitectures() { | def reactNativeArchitectures() { | ||||||
|     def value = project.getProperties().get("reactNativeArchitectures") |     def value = project.getProperties().get("reactNativeArchitectures") | ||||||
| @@ -93,13 +133,82 @@ android { | |||||||
|  |  | ||||||
|     compileSdkVersion rootProject.ext.compileSdkVersion |     compileSdkVersion rootProject.ext.compileSdkVersion | ||||||
|  |  | ||||||
|     namespace "com.testhotupdate" |  | ||||||
|     defaultConfig { |     defaultConfig { | ||||||
|         applicationId "com.testhotupdate" |         applicationId "com.awesomeproject" | ||||||
|         minSdkVersion rootProject.ext.minSdkVersion |         minSdkVersion rootProject.ext.minSdkVersion | ||||||
|         targetSdkVersion rootProject.ext.targetSdkVersion |         targetSdkVersion rootProject.ext.targetSdkVersion | ||||||
|         versionCode 1 |         versionCode 1 | ||||||
|         versionName "1.0" |         versionName "1.0" | ||||||
|  |         testBuildType System.getProperty('testBuildType', 'debug') | ||||||
|  |         testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' | ||||||
|  |         buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() | ||||||
|  |  | ||||||
|  |         if (isNewArchitectureEnabled()) { | ||||||
|  |             // We configure the NDK build only if you decide to opt-in for the New Architecture. | ||||||
|  |             externalNativeBuild { | ||||||
|  |                 ndkBuild { | ||||||
|  |                     arguments "APP_PLATFORM=android-21", | ||||||
|  |                         "APP_STL=c++_shared", | ||||||
|  |                         "NDK_TOOLCHAIN_VERSION=clang", | ||||||
|  |                         "GENERATED_SRC_DIR=$buildDir/generated/source", | ||||||
|  |                         "PROJECT_BUILD_DIR=$buildDir", | ||||||
|  |                         "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", | ||||||
|  |                         "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", | ||||||
|  |                         "NODE_MODULES_DIR=$rootDir/../node_modules" | ||||||
|  |                     cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" | ||||||
|  |                     cppFlags "-std=c++17" | ||||||
|  |                     // Make sure this target name is the same you specify inside the | ||||||
|  |                     // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. | ||||||
|  |                     targets "awesomeproject_appmodules" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (!enableSeparateBuildPerCPUArchitecture) { | ||||||
|  |                 ndk { | ||||||
|  |                     abiFilters (*reactNativeArchitectures()) | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if (isNewArchitectureEnabled()) { | ||||||
|  |         // We configure the NDK build only if you decide to opt-in for the New Architecture. | ||||||
|  |         externalNativeBuild { | ||||||
|  |             ndkBuild { | ||||||
|  |                 path "$projectDir/src/main/jni/Android.mk" | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         def reactAndroidProjectDir = project(':ReactAndroid').projectDir | ||||||
|  |         def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { | ||||||
|  |             dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") | ||||||
|  |             from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") | ||||||
|  |             into("$buildDir/react-ndk/exported") | ||||||
|  |         } | ||||||
|  |         def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { | ||||||
|  |             dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") | ||||||
|  |             from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") | ||||||
|  |             into("$buildDir/react-ndk/exported") | ||||||
|  |         } | ||||||
|  |         afterEvaluate { | ||||||
|  |             // If you wish to add a custom TurboModule or component locally, | ||||||
|  |             // you should uncomment this line. | ||||||
|  |             // preBuild.dependsOn("generateCodegenArtifactsFromSchema") | ||||||
|  |             preDebugBuild.dependsOn(packageReactNdkDebugLibs) | ||||||
|  |             preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) | ||||||
|  |  | ||||||
|  |             // Due to a bug inside AGP, we have to explicitly set a dependency | ||||||
|  |             // between configureNdkBuild* tasks and the preBuild tasks. | ||||||
|  |             // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 | ||||||
|  |             configureNdkBuildRelease.dependsOn(preReleaseBuild) | ||||||
|  |             configureNdkBuildDebug.dependsOn(preDebugBuild) | ||||||
|  |             reactNativeArchitectures().each { architecture -> | ||||||
|  |                 tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure { | ||||||
|  |                     dependsOn("preDebugBuild") | ||||||
|  |                 } | ||||||
|  |                 tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure { | ||||||
|  |                     dependsOn("preReleaseBuild") | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     splits { |     splits { | ||||||
| @@ -128,6 +237,7 @@ android { | |||||||
|             signingConfig signingConfigs.debug |             signingConfig signingConfigs.debug | ||||||
|             minifyEnabled enableProguardInReleaseBuilds |             minifyEnabled enableProguardInReleaseBuilds | ||||||
|             proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" |             proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | ||||||
|  |             proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro" | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -149,22 +259,67 @@ android { | |||||||
| } | } | ||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     // The version of react-native is set by the React Native Gradle Plugin |     androidTestImplementation('com.wix:detox:+') | ||||||
|     implementation("com.facebook.react:react-android") |     implementation 'androidx.appcompat:appcompat:1.1.0' | ||||||
|  |     implementation fileTree(dir: "libs", include: ["*.jar"]) | ||||||
|  |  | ||||||
|     implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") |     //noinspection GradleDynamicVersion | ||||||
|  |     implementation "com.facebook.react:react-native:+"  // From node_modules | ||||||
|  |  | ||||||
|  |     implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" | ||||||
|  |  | ||||||
|  |     debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { | ||||||
|  |         exclude group:'com.facebook.fbjni' | ||||||
|  |     } | ||||||
|  |  | ||||||
|     debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") |  | ||||||
|     debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { |     debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { | ||||||
|  |         exclude group:'com.facebook.flipper' | ||||||
|         exclude group:'com.squareup.okhttp3', module:'okhttp' |         exclude group:'com.squareup.okhttp3', module:'okhttp' | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") |     debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { | ||||||
|     if (hermesEnabled.toBoolean()) { |         exclude group:'com.facebook.flipper' | ||||||
|         implementation("com.facebook.react:hermes-android") |     } | ||||||
|  |  | ||||||
|  |     if (enableHermes) { | ||||||
|  |         //noinspection GradleDynamicVersion | ||||||
|  |         implementation("com.facebook.react:hermes-engine:+") { // From node_modules | ||||||
|  |             exclude group:'com.facebook.fbjni' | ||||||
|  |         } | ||||||
|     } else { |     } else { | ||||||
|         implementation jscFlavor |         implementation jscFlavor | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | if (isNewArchitectureEnabled()) { | ||||||
|  |     // If new architecture is enabled, we let you build RN from source | ||||||
|  |     // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. | ||||||
|  |     // This will be applied to all the imported transtitive dependency. | ||||||
|  |     configurations.all { | ||||||
|  |         resolutionStrategy.dependencySubstitution { | ||||||
|  |             substitute(module("com.facebook.react:react-native")) | ||||||
|  |                     .using(project(":ReactAndroid")) | ||||||
|  |                     .because("On New Architecture we're building React Native from source") | ||||||
|  |             substitute(module("com.facebook.react:hermes-engine")) | ||||||
|  |                     .using(project(":ReactAndroid:hermes-engine")) | ||||||
|  |                     .because("On New Architecture we're building Hermes from source") | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Run this once to be able to run the application with BUCK | ||||||
|  | // puts all compile dependencies into folder libs for BUCK to use | ||||||
|  | task copyDownloadableDepsToLibs(type: Copy) { | ||||||
|  |     from configurations.implementation | ||||||
|  |     into 'libs' | ||||||
|  | } | ||||||
|  |  | ||||||
| apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | ||||||
|  |  | ||||||
|  | def isNewArchitectureEnabled() { | ||||||
|  |     // To opt-in for the New Architecture, you can either: | ||||||
|  |     // - Set `newArchEnabled` to true inside the `gradle.properties` file | ||||||
|  |     // - Invoke gradle with `-newArchEnabled=true` | ||||||
|  |     // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` | ||||||
|  |     return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								Example/testHotUpdate/android/app/build_defs.bzl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Example/testHotUpdate/android/app/build_defs.bzl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | """Helper definitions to glob .aar and .jar targets""" | ||||||
|  |  | ||||||
|  | def create_aar_targets(aarfiles): | ||||||
|  |     for aarfile in aarfiles: | ||||||
|  |         name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] | ||||||
|  |         lib_deps.append(":" + name) | ||||||
|  |         android_prebuilt_aar( | ||||||
|  |             name = name, | ||||||
|  |             aar = aarfile, | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  | def create_jar_targets(jarfiles): | ||||||
|  |     for jarfile in jarfiles: | ||||||
|  |         name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] | ||||||
|  |         lib_deps.append(":" + name) | ||||||
|  |         prebuilt_jar( | ||||||
|  |             name = name, | ||||||
|  |             binary_jar = jarfile, | ||||||
|  |         ) | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | package com.awesomeproject; | ||||||
|  |  | ||||||
|  | import com.wix.detox.Detox; | ||||||
|  | import com.wix.detox.config.DetoxConfig; | ||||||
|  |  | ||||||
|  | import org.junit.Rule; | ||||||
|  | import org.junit.Test; | ||||||
|  | import org.junit.runner.RunWith; | ||||||
|  |  | ||||||
|  | import androidx.test.ext.junit.runners.AndroidJUnit4; | ||||||
|  | import androidx.test.filters.LargeTest; | ||||||
|  | import androidx.test.rule.ActivityTestRule; | ||||||
|  |  | ||||||
|  | @RunWith(AndroidJUnit4.class) | ||||||
|  | @LargeTest | ||||||
|  | public class DetoxTest { | ||||||
|  |     @Rule | ||||||
|  |     public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false); | ||||||
|  |  | ||||||
|  |     @Test | ||||||
|  |     public void runDetoxTests() { | ||||||
|  |         DetoxConfig detoxConfig = new DetoxConfig(); | ||||||
|  |         detoxConfig.idlePolicyConfig.masterTimeoutSec = 90; | ||||||
|  |         detoxConfig.idlePolicyConfig.idleResourceTimeoutSec = 60; | ||||||
|  |         detoxConfig.rnContextLoadTimeoutSec = (BuildConfig.DEBUG ? 180 : 60); | ||||||
|  |  | ||||||
|  |         Detox.runTests(mActivityRule, detoxConfig); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -4,7 +4,7 @@ | |||||||
|  * <p>This source code is licensed under the MIT license found in the LICENSE file in the root |  * <p>This source code is licensed under the MIT license found in the LICENSE file in the root | ||||||
|  * directory of this source tree. |  * directory of this source tree. | ||||||
|  */ |  */ | ||||||
| package com.testhotupdate; | package com.awesomeproject; | ||||||
| 
 | 
 | ||||||
| import android.content.Context; | import android.content.Context; | ||||||
| import com.facebook.flipper.android.AndroidFlipperClient; | import com.facebook.flipper.android.AndroidFlipperClient; | ||||||
| @@ -17,6 +17,7 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping; | |||||||
| import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; | import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; | ||||||
| import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; | import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; | ||||||
| import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; | import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; | ||||||
|  | import com.facebook.flipper.plugins.react.ReactFlipperPlugin; | ||||||
| import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; | import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; | ||||||
| import com.facebook.react.ReactInstanceEventListener; | import com.facebook.react.ReactInstanceEventListener; | ||||||
| import com.facebook.react.ReactInstanceManager; | import com.facebook.react.ReactInstanceManager; | ||||||
| @@ -24,16 +25,13 @@ import com.facebook.react.bridge.ReactContext; | |||||||
| import com.facebook.react.modules.network.NetworkingModule; | import com.facebook.react.modules.network.NetworkingModule; | ||||||
| import okhttp3.OkHttpClient; | import okhttp3.OkHttpClient; | ||||||
| 
 | 
 | ||||||
| /** |  | ||||||
|  * Class responsible of loading Flipper inside your React Native application. This is the debug |  | ||||||
|  * flavor of it. Here you can add your own plugins and customize the Flipper setup. |  | ||||||
|  */ |  | ||||||
| public class ReactNativeFlipper { | public class ReactNativeFlipper { | ||||||
|   public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { |   public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { | ||||||
|     if (FlipperUtils.shouldEnableFlipper(context)) { |     if (FlipperUtils.shouldEnableFlipper(context)) { | ||||||
|       final FlipperClient client = AndroidFlipperClient.getInstance(context); |       final FlipperClient client = AndroidFlipperClient.getInstance(context); | ||||||
| 
 | 
 | ||||||
|       client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); |       client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); | ||||||
|  |       client.addPlugin(new ReactFlipperPlugin()); | ||||||
|       client.addPlugin(new DatabasesFlipperPlugin(context)); |       client.addPlugin(new DatabasesFlipperPlugin(context)); | ||||||
|       client.addPlugin(new SharedPreferencesFlipperPlugin(context)); |       client.addPlugin(new SharedPreferencesFlipperPlugin(context)); | ||||||
|       client.addPlugin(CrashReporterPlugin.getInstance()); |       client.addPlugin(CrashReporterPlugin.getInstance()); | ||||||
| @@ -1,4 +1,5 @@ | |||||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android"> | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |   package="com.awesomeproject"> | ||||||
|  |  | ||||||
|     <uses-permission android:name="android.permission.INTERNET" /> |     <uses-permission android:name="android.permission.INTERNET" /> | ||||||
|  |  | ||||||
| @@ -8,7 +9,8 @@ | |||||||
|       android:icon="@mipmap/ic_launcher" |       android:icon="@mipmap/ic_launcher" | ||||||
|       android:roundIcon="@mipmap/ic_launcher_round" |       android:roundIcon="@mipmap/ic_launcher_round" | ||||||
|       android:allowBackup="false" |       android:allowBackup="false" | ||||||
|       android:theme="@style/AppTheme"> |       android:theme="@style/AppTheme" | ||||||
|  |       android:networkSecurityConfig="@xml/network_security_config"> | ||||||
|       <activity |       <activity | ||||||
|         android:name=".MainActivity" |         android:name=".MainActivity" | ||||||
|         android:label="@string/app_name" |         android:label="@string/app_name" | ||||||
|   | |||||||
| @@ -0,0 +1,48 @@ | |||||||
|  | package com.awesomeproject; | ||||||
|  |  | ||||||
|  | import com.facebook.react.ReactActivity; | ||||||
|  | import com.facebook.react.ReactActivityDelegate; | ||||||
|  | import com.facebook.react.ReactRootView; | ||||||
|  |  | ||||||
|  | public class MainActivity extends ReactActivity { | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * Returns the name of the main component registered from JavaScript. This is used to schedule | ||||||
|  |    * rendering of the component. | ||||||
|  |    */ | ||||||
|  |   @Override | ||||||
|  |   protected String getMainComponentName() { | ||||||
|  |     return "AwesomeProject"; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and | ||||||
|  |    * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer | ||||||
|  |    * (Paper). | ||||||
|  |    */ | ||||||
|  |   @Override | ||||||
|  |   protected ReactActivityDelegate createReactActivityDelegate() { | ||||||
|  |     return new MainActivityDelegate(this, getMainComponentName()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public static class MainActivityDelegate extends ReactActivityDelegate { | ||||||
|  |     public MainActivityDelegate(ReactActivity activity, String mainComponentName) { | ||||||
|  |       super(activity, mainComponentName); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected ReactRootView createRootView() { | ||||||
|  |       ReactRootView reactRootView = new ReactRootView(getContext()); | ||||||
|  |       // If you opted-in for the New Architecture, we enable the Fabric Renderer. | ||||||
|  |       reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); | ||||||
|  |       return reactRootView; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected boolean isConcurrentRootEnabled() { | ||||||
|  |       // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18). | ||||||
|  |       // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html | ||||||
|  |       return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,104 @@ | |||||||
|  | package com.awesomeproject; | ||||||
|  |  | ||||||
|  | import android.app.Application; | ||||||
|  | import android.content.Context; | ||||||
|  |  | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  |  | ||||||
|  | import com.facebook.react.PackageList; | ||||||
|  | import com.facebook.react.ReactApplication; | ||||||
|  | import com.facebook.react.ReactInstanceManager; | ||||||
|  | import com.facebook.react.ReactNativeHost; | ||||||
|  | import com.facebook.react.ReactPackage; | ||||||
|  | import com.facebook.react.config.ReactFeatureFlags; | ||||||
|  | import com.facebook.react.shell.MainReactPackage; | ||||||
|  | import com.facebook.soloader.SoLoader; | ||||||
|  | import com.awesomeproject.newarchitecture.MainApplicationReactNativeHost; | ||||||
|  | import java.lang.reflect.InvocationTargetException; | ||||||
|  | import java.util.Arrays; | ||||||
|  | import java.util.List; | ||||||
|  | import cn.reactnative.modules.update.UpdateContext; | ||||||
|  | import cn.reactnative.modules.update.UpdatePackage; | ||||||
|  |  | ||||||
|  | public class MainApplication extends Application implements ReactApplication { | ||||||
|  |  | ||||||
|  |     private final ReactNativeHost mReactNativeHost = | ||||||
|  |             new ReactNativeHost(this) { | ||||||
|  |                 @Override | ||||||
|  |                 public boolean getUseDeveloperSupport() { | ||||||
|  |                     return BuildConfig.DEBUG; | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 @Nullable | ||||||
|  |                 @Override | ||||||
|  |                 protected String getJSBundleFile() { | ||||||
|  |                     return UpdateContext.getBundleUrl(MainApplication.this); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 @Override | ||||||
|  |                 protected List<ReactPackage> getPackages() { | ||||||
|  |                     @SuppressWarnings("UnnecessaryLocalVariable") | ||||||
|  |                     List<ReactPackage> packages = new PackageList(this).getPackages(); | ||||||
|  |                     // Packages that cannot be autolinked yet can be added manually here, for example: | ||||||
|  |                     // packages.add(new MyReactNativePackage()); | ||||||
|  |                     return packages; | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 @Override | ||||||
|  |                 protected String getJSMainModuleName() { | ||||||
|  |                     return "index"; | ||||||
|  |                 } | ||||||
|  |             }; | ||||||
|  |  | ||||||
|  |   private final ReactNativeHost mNewArchitectureNativeHost = | ||||||
|  |       new MainApplicationReactNativeHost(this); | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public ReactNativeHost getReactNativeHost() { | ||||||
|  |     if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { | ||||||
|  |       return mNewArchitectureNativeHost; | ||||||
|  |     } else { | ||||||
|  |       return mReactNativeHost; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public void onCreate() { | ||||||
|  |     super.onCreate(); | ||||||
|  |     // If you opted-in for the New Architecture, we enable the TurboModule system | ||||||
|  |     ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; | ||||||
|  |     SoLoader.init(this, /* native exopackage */ false); | ||||||
|  |     initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * Loads Flipper in React Native templates. Call this in the onCreate method with something like | ||||||
|  |    * initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); | ||||||
|  |    * | ||||||
|  |    * @param context | ||||||
|  |    * @param reactInstanceManager | ||||||
|  |    */ | ||||||
|  |   private static void initializeFlipper( | ||||||
|  |       Context context, ReactInstanceManager reactInstanceManager) { | ||||||
|  |     if (BuildConfig.DEBUG) { | ||||||
|  |       try { | ||||||
|  |         /* | ||||||
|  |          We use reflection here to pick up the class that initializes Flipper, | ||||||
|  |         since Flipper library is not available in release mode | ||||||
|  |         */ | ||||||
|  |         Class<?> aClass = Class.forName("com.awesomeproject.ReactNativeFlipper"); | ||||||
|  |         aClass | ||||||
|  |             .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) | ||||||
|  |             .invoke(null, context, reactInstanceManager); | ||||||
|  |       } catch (ClassNotFoundException e) { | ||||||
|  |         e.printStackTrace(); | ||||||
|  |       } catch (NoSuchMethodException e) { | ||||||
|  |         e.printStackTrace(); | ||||||
|  |       } catch (IllegalAccessException e) { | ||||||
|  |         e.printStackTrace(); | ||||||
|  |       } catch (InvocationTargetException e) { | ||||||
|  |         e.printStackTrace(); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,116 @@ | |||||||
|  | package com.awesomeproject.newarchitecture; | ||||||
|  |  | ||||||
|  | import android.app.Application; | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import com.facebook.react.PackageList; | ||||||
|  | import com.facebook.react.ReactInstanceManager; | ||||||
|  | import com.facebook.react.ReactNativeHost; | ||||||
|  | import com.facebook.react.ReactPackage; | ||||||
|  | import com.facebook.react.ReactPackageTurboModuleManagerDelegate; | ||||||
|  | import com.facebook.react.bridge.JSIModulePackage; | ||||||
|  | import com.facebook.react.bridge.JSIModuleProvider; | ||||||
|  | import com.facebook.react.bridge.JSIModuleSpec; | ||||||
|  | import com.facebook.react.bridge.JSIModuleType; | ||||||
|  | import com.facebook.react.bridge.JavaScriptContextHolder; | ||||||
|  | import com.facebook.react.bridge.ReactApplicationContext; | ||||||
|  | import com.facebook.react.bridge.UIManager; | ||||||
|  | import com.facebook.react.fabric.ComponentFactory; | ||||||
|  | import com.facebook.react.fabric.CoreComponentsRegistry; | ||||||
|  | import com.facebook.react.fabric.FabricJSIModuleProvider; | ||||||
|  | import com.facebook.react.fabric.ReactNativeConfig; | ||||||
|  | import com.facebook.react.uimanager.ViewManagerRegistry; | ||||||
|  | import com.awesomeproject.BuildConfig; | ||||||
|  | import com.awesomeproject.newarchitecture.components.MainComponentsRegistry; | ||||||
|  | import com.awesomeproject.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both | ||||||
|  |  * TurboModule delegates and the Fabric Renderer. | ||||||
|  |  * | ||||||
|  |  * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | ||||||
|  |  * `newArchEnabled` property). Is ignored otherwise. | ||||||
|  |  */ | ||||||
|  | public class MainApplicationReactNativeHost extends ReactNativeHost { | ||||||
|  |   public MainApplicationReactNativeHost(Application application) { | ||||||
|  |     super(application); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public boolean getUseDeveloperSupport() { | ||||||
|  |     return BuildConfig.DEBUG; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected List<ReactPackage> getPackages() { | ||||||
|  |     List<ReactPackage> packages = new PackageList(this).getPackages(); | ||||||
|  |     // Packages that cannot be autolinked yet can be added manually here, for example: | ||||||
|  |     //     packages.add(new MyReactNativePackage()); | ||||||
|  |     // TurboModules must also be loaded here providing a valid TurboReactPackage implementation: | ||||||
|  |     //     packages.add(new TurboReactPackage() { ... }); | ||||||
|  |     // If you have custom Fabric Components, their ViewManagers should also be loaded here | ||||||
|  |     // inside a ReactPackage. | ||||||
|  |     return packages; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected String getJSMainModuleName() { | ||||||
|  |     return "index"; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @NonNull | ||||||
|  |   @Override | ||||||
|  |   protected ReactPackageTurboModuleManagerDelegate.Builder | ||||||
|  |       getReactPackageTurboModuleManagerDelegateBuilder() { | ||||||
|  |     // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary | ||||||
|  |     // for the new architecture and to use TurboModules correctly. | ||||||
|  |     return new MainApplicationTurboModuleManagerDelegate.Builder(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected JSIModulePackage getJSIModulePackage() { | ||||||
|  |     return new JSIModulePackage() { | ||||||
|  |       @Override | ||||||
|  |       public List<JSIModuleSpec> getJSIModules( | ||||||
|  |           final ReactApplicationContext reactApplicationContext, | ||||||
|  |           final JavaScriptContextHolder jsContext) { | ||||||
|  |         final List<JSIModuleSpec> specs = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |         // Here we provide a new JSIModuleSpec that will be responsible of providing the | ||||||
|  |         // custom Fabric Components. | ||||||
|  |         specs.add( | ||||||
|  |             new JSIModuleSpec() { | ||||||
|  |               @Override | ||||||
|  |               public JSIModuleType getJSIModuleType() { | ||||||
|  |                 return JSIModuleType.UIManager; | ||||||
|  |               } | ||||||
|  |  | ||||||
|  |               @Override | ||||||
|  |               public JSIModuleProvider<UIManager> getJSIModuleProvider() { | ||||||
|  |                 final ComponentFactory componentFactory = new ComponentFactory(); | ||||||
|  |                 CoreComponentsRegistry.register(componentFactory); | ||||||
|  |  | ||||||
|  |                 // Here we register a Components Registry. | ||||||
|  |                 // The one that is generated with the template contains no components | ||||||
|  |                 // and just provides you the one from React Native core. | ||||||
|  |                 MainComponentsRegistry.register(componentFactory); | ||||||
|  |  | ||||||
|  |                 final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); | ||||||
|  |  | ||||||
|  |                 ViewManagerRegistry viewManagerRegistry = | ||||||
|  |                     new ViewManagerRegistry( | ||||||
|  |                         reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); | ||||||
|  |  | ||||||
|  |                 return new FabricJSIModuleProvider( | ||||||
|  |                     reactApplicationContext, | ||||||
|  |                     componentFactory, | ||||||
|  |                     ReactNativeConfig.DEFAULT_CONFIG, | ||||||
|  |                     viewManagerRegistry); | ||||||
|  |               } | ||||||
|  |             }); | ||||||
|  |         return specs; | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,36 @@ | |||||||
|  | package com.awesomeproject.newarchitecture.components; | ||||||
|  |  | ||||||
|  | import com.facebook.jni.HybridData; | ||||||
|  | import com.facebook.proguard.annotations.DoNotStrip; | ||||||
|  | import com.facebook.react.fabric.ComponentFactory; | ||||||
|  | import com.facebook.soloader.SoLoader; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class responsible to load the custom Fabric Components. This class has native methods and needs a | ||||||
|  |  * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ | ||||||
|  |  * folder for you). | ||||||
|  |  * | ||||||
|  |  * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | ||||||
|  |  * `newArchEnabled` property). Is ignored otherwise. | ||||||
|  |  */ | ||||||
|  | @DoNotStrip | ||||||
|  | public class MainComponentsRegistry { | ||||||
|  |   static { | ||||||
|  |     SoLoader.loadLibrary("fabricjni"); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @DoNotStrip private final HybridData mHybridData; | ||||||
|  |  | ||||||
|  |   @DoNotStrip | ||||||
|  |   private native HybridData initHybrid(ComponentFactory componentFactory); | ||||||
|  |  | ||||||
|  |   @DoNotStrip | ||||||
|  |   private MainComponentsRegistry(ComponentFactory componentFactory) { | ||||||
|  |     mHybridData = initHybrid(componentFactory); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @DoNotStrip | ||||||
|  |   public static MainComponentsRegistry register(ComponentFactory componentFactory) { | ||||||
|  |     return new MainComponentsRegistry(componentFactory); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,48 @@ | |||||||
|  | package com.awesomeproject.newarchitecture.modules; | ||||||
|  |  | ||||||
|  | import com.facebook.jni.HybridData; | ||||||
|  | import com.facebook.react.ReactPackage; | ||||||
|  | import com.facebook.react.ReactPackageTurboModuleManagerDelegate; | ||||||
|  | import com.facebook.react.bridge.ReactApplicationContext; | ||||||
|  | import com.facebook.soloader.SoLoader; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class responsible to load the TurboModules. This class has native methods and needs a | ||||||
|  |  * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ | ||||||
|  |  * folder for you). | ||||||
|  |  * | ||||||
|  |  * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | ||||||
|  |  * `newArchEnabled` property). Is ignored otherwise. | ||||||
|  |  */ | ||||||
|  | public class MainApplicationTurboModuleManagerDelegate | ||||||
|  |     extends ReactPackageTurboModuleManagerDelegate { | ||||||
|  |  | ||||||
|  |   private static volatile boolean sIsSoLibraryLoaded; | ||||||
|  |  | ||||||
|  |   protected MainApplicationTurboModuleManagerDelegate( | ||||||
|  |       ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) { | ||||||
|  |     super(reactApplicationContext, packages); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   protected native HybridData initHybrid(); | ||||||
|  |  | ||||||
|  |   native boolean canCreateTurboModule(String moduleName); | ||||||
|  |  | ||||||
|  |   public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { | ||||||
|  |     protected MainApplicationTurboModuleManagerDelegate build( | ||||||
|  |         ReactApplicationContext context, List<ReactPackage> packages) { | ||||||
|  |       return new MainApplicationTurboModuleManagerDelegate(context, packages); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected synchronized void maybeLoadOtherSoLibraries() { | ||||||
|  |     if (!sIsSoLibraryLoaded) { | ||||||
|  |       // If you change the name of your application .so file in the Android.mk file, | ||||||
|  |       // make sure you update the name here as well. | ||||||
|  |       SoLoader.loadLibrary("awesomeproject_appmodules"); | ||||||
|  |       sIsSoLibraryLoaded = true; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| package com.testhotupdate; |  | ||||||
|  |  | ||||||
| import com.facebook.react.ReactActivity; |  | ||||||
| import com.facebook.react.ReactActivityDelegate; |  | ||||||
| import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; |  | ||||||
| import com.facebook.react.defaults.DefaultReactActivityDelegate; |  | ||||||
|  |  | ||||||
| public class MainActivity extends ReactActivity { |  | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * Returns the name of the main component registered from JavaScript. This is used to schedule |  | ||||||
|    * rendering of the component. |  | ||||||
|    */ |  | ||||||
|   @Override |  | ||||||
|   protected String getMainComponentName() { |  | ||||||
|     return "testHotupdate"; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link |  | ||||||
|    * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React |  | ||||||
|    * (aka React 18) with two boolean flags. |  | ||||||
|    */ |  | ||||||
|   @Override |  | ||||||
|   protected ReactActivityDelegate createReactActivityDelegate() { |  | ||||||
|     return new DefaultReactActivityDelegate( |  | ||||||
|         this, |  | ||||||
|         getMainComponentName(), |  | ||||||
|         // If you opted-in for the New Architecture, we enable the Fabric Renderer. |  | ||||||
|         DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled |  | ||||||
|         // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18). |  | ||||||
|         DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled |  | ||||||
|         ); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,68 +0,0 @@ | |||||||
| package com.testhotupdate; |  | ||||||
|  |  | ||||||
| import android.app.Application; |  | ||||||
| import com.facebook.react.PackageList; |  | ||||||
| import com.facebook.react.ReactApplication; |  | ||||||
| import com.facebook.react.ReactNativeHost; |  | ||||||
| import com.facebook.react.ReactPackage; |  | ||||||
| import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; |  | ||||||
| import com.facebook.react.defaults.DefaultReactNativeHost; |  | ||||||
| import com.facebook.soloader.SoLoader; |  | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| import cn.reactnative.modules.update.UpdateContext; |  | ||||||
|  |  | ||||||
| public class MainApplication extends Application implements ReactApplication { |  | ||||||
|  |  | ||||||
|   private final ReactNativeHost mReactNativeHost = |  | ||||||
|       new DefaultReactNativeHost(this) { |  | ||||||
|           @Override |  | ||||||
|           protected String getJSBundleFile() { |  | ||||||
|               return UpdateContext.getBundleUrl(MainApplication.this); |  | ||||||
|           } |  | ||||||
|         @Override |  | ||||||
|         public boolean getUseDeveloperSupport() { |  | ||||||
|           return BuildConfig.DEBUG; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         @Override |  | ||||||
|         protected List<ReactPackage> getPackages() { |  | ||||||
|           @SuppressWarnings("UnnecessaryLocalVariable") |  | ||||||
|           List<ReactPackage> packages = new PackageList(this).getPackages(); |  | ||||||
|           // Packages that cannot be autolinked yet can be added manually here, for example: |  | ||||||
|           // packages.add(new MyReactNativePackage()); |  | ||||||
|           return packages; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         @Override |  | ||||||
|         protected String getJSMainModuleName() { |  | ||||||
|           return "index"; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         @Override |  | ||||||
|         protected boolean isNewArchEnabled() { |  | ||||||
|           return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         @Override |  | ||||||
|         protected Boolean isHermesEnabled() { |  | ||||||
|           return BuildConfig.IS_HERMES_ENABLED; |  | ||||||
|         } |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public ReactNativeHost getReactNativeHost() { |  | ||||||
|     return mReactNativeHost; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @Override |  | ||||||
|   public void onCreate() { |  | ||||||
|     super.onCreate(); |  | ||||||
|     SoLoader.init(this, /* native exopackage */ false); |  | ||||||
|     if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { |  | ||||||
|       // If you opted-in for the New Architecture, we load the native entry point for this app. |  | ||||||
|       DefaultNewArchitectureEntryPoint.load(); |  | ||||||
|     } |  | ||||||
|     ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
							
								
								
									
										48
									
								
								Example/testHotUpdate/android/app/src/main/jni/Android.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								Example/testHotUpdate/android/app/src/main/jni/Android.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | THIS_DIR := $(call my-dir) | ||||||
|  |  | ||||||
|  | include $(REACT_ANDROID_DIR)/Android-prebuilt.mk | ||||||
|  |  | ||||||
|  | # If you wish to add a custom TurboModule or Fabric component in your app you | ||||||
|  | # will have to include the following autogenerated makefile. | ||||||
|  | # include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk | ||||||
|  | include $(CLEAR_VARS) | ||||||
|  |  | ||||||
|  | LOCAL_PATH := $(THIS_DIR) | ||||||
|  |  | ||||||
|  | # You can customize the name of your application .so file here. | ||||||
|  | LOCAL_MODULE := awesomeproject_appmodules | ||||||
|  |  | ||||||
|  | LOCAL_C_INCLUDES := $(LOCAL_PATH) | ||||||
|  | LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) | ||||||
|  | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) | ||||||
|  |  | ||||||
|  | # If you wish to add a custom TurboModule or Fabric component in your app you | ||||||
|  | # will have to uncomment those lines to include the generated source | ||||||
|  | # files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni) | ||||||
|  | # | ||||||
|  | # LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni | ||||||
|  | # LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) | ||||||
|  | # LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni | ||||||
|  |  | ||||||
|  | # Here you should add any native library you wish to depend on. | ||||||
|  | LOCAL_SHARED_LIBRARIES := \ | ||||||
|  |   libfabricjni \ | ||||||
|  |   libfbjni \ | ||||||
|  |   libfolly_runtime \ | ||||||
|  |   libglog \ | ||||||
|  |   libjsi \ | ||||||
|  |   libreact_codegen_rncore \ | ||||||
|  |   libreact_debug \ | ||||||
|  |   libreact_nativemodule_core \ | ||||||
|  |   libreact_render_componentregistry \ | ||||||
|  |   libreact_render_core \ | ||||||
|  |   libreact_render_debug \ | ||||||
|  |   libreact_render_graphics \ | ||||||
|  |   librrc_view \ | ||||||
|  |   libruntimeexecutor \ | ||||||
|  |   libturbomodulejsijni \ | ||||||
|  |   libyoga | ||||||
|  |  | ||||||
|  | LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall | ||||||
|  |  | ||||||
|  | include $(BUILD_SHARED_LIBRARY) | ||||||
| @@ -0,0 +1,24 @@ | |||||||
|  | #include "MainApplicationModuleProvider.h" | ||||||
|  |  | ||||||
|  | #include <rncore.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> MainApplicationModuleProvider( | ||||||
|  |     const std::string moduleName, | ||||||
|  |     const JavaTurboModule::InitParams ¶ms) { | ||||||
|  |   // Here you can provide your own module provider for TurboModules coming from | ||||||
|  |   // either your application or from external libraries. The approach to follow | ||||||
|  |   // is similar to the following (for a library called `samplelibrary`: | ||||||
|  |   // | ||||||
|  |   // auto module = samplelibrary_ModuleProvider(moduleName, params); | ||||||
|  |   // if (module != nullptr) { | ||||||
|  |   //    return module; | ||||||
|  |   // } | ||||||
|  |   // return rncore_ModuleProvider(moduleName, params); | ||||||
|  |   return rncore_ModuleProvider(moduleName, params); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,16 @@ | |||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include <memory> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | #include <ReactCommon/JavaTurboModule.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> MainApplicationModuleProvider( | ||||||
|  |     const std::string moduleName, | ||||||
|  |     const JavaTurboModule::InitParams ¶ms); | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,45 @@ | |||||||
|  | #include "MainApplicationTurboModuleManagerDelegate.h" | ||||||
|  | #include "MainApplicationModuleProvider.h" | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata> | ||||||
|  | MainApplicationTurboModuleManagerDelegate::initHybrid( | ||||||
|  |     jni::alias_ref<jhybridobject>) { | ||||||
|  |   return makeCxxInstance(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MainApplicationTurboModuleManagerDelegate::registerNatives() { | ||||||
|  |   registerHybrid({ | ||||||
|  |       makeNativeMethod( | ||||||
|  |           "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), | ||||||
|  |       makeNativeMethod( | ||||||
|  |           "canCreateTurboModule", | ||||||
|  |           MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> | ||||||
|  | MainApplicationTurboModuleManagerDelegate::getTurboModule( | ||||||
|  |     const std::string name, | ||||||
|  |     const std::shared_ptr<CallInvoker> jsInvoker) { | ||||||
|  |   // Not implemented yet: provide pure-C++ NativeModules here. | ||||||
|  |   return nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> | ||||||
|  | MainApplicationTurboModuleManagerDelegate::getTurboModule( | ||||||
|  |     const std::string name, | ||||||
|  |     const JavaTurboModule::InitParams ¶ms) { | ||||||
|  |   return MainApplicationModuleProvider(name, params); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( | ||||||
|  |     std::string name) { | ||||||
|  |   return getTurboModule(name, nullptr) != nullptr || | ||||||
|  |       getTurboModule(name, {.moduleName = name}) != nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,38 @@ | |||||||
|  | #include <memory> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | #include <ReactCommon/TurboModuleManagerDelegate.h> | ||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | class MainApplicationTurboModuleManagerDelegate | ||||||
|  |     : public jni::HybridClass< | ||||||
|  |           MainApplicationTurboModuleManagerDelegate, | ||||||
|  |           TurboModuleManagerDelegate> { | ||||||
|  |  public: | ||||||
|  |   // Adapt it to the package you used for your Java class. | ||||||
|  |   static constexpr auto kJavaDescriptor = | ||||||
|  |       "Lcom/awesomeproject/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; | ||||||
|  |  | ||||||
|  |   static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>); | ||||||
|  |  | ||||||
|  |   static void registerNatives(); | ||||||
|  |  | ||||||
|  |   std::shared_ptr<TurboModule> getTurboModule( | ||||||
|  |       const std::string name, | ||||||
|  |       const std::shared_ptr<CallInvoker> jsInvoker) override; | ||||||
|  |   std::shared_ptr<TurboModule> getTurboModule( | ||||||
|  |       const std::string name, | ||||||
|  |       const JavaTurboModule::InitParams ¶ms) override; | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * Test-only method. Allows user to verify whether a TurboModule can be | ||||||
|  |    * created by instances of this class. | ||||||
|  |    */ | ||||||
|  |   bool canCreateTurboModule(std::string name); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,61 @@ | |||||||
|  | #include "MainComponentsRegistry.h" | ||||||
|  |  | ||||||
|  | #include <CoreComponentsRegistry.h> | ||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  | #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h> | ||||||
|  | #include <react/renderer/components/rncore/ComponentDescriptors.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} | ||||||
|  |  | ||||||
|  | std::shared_ptr<ComponentDescriptorProviderRegistry const> | ||||||
|  | MainComponentsRegistry::sharedProviderRegistry() { | ||||||
|  |   auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); | ||||||
|  |  | ||||||
|  |   // Custom Fabric Components go here. You can register custom | ||||||
|  |   // components coming from your App or from 3rd party libraries here. | ||||||
|  |   // | ||||||
|  |   // providerRegistry->add(concreteComponentDescriptorProvider< | ||||||
|  |   //        AocViewerComponentDescriptor>()); | ||||||
|  |   return providerRegistry; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | jni::local_ref<MainComponentsRegistry::jhybriddata> | ||||||
|  | MainComponentsRegistry::initHybrid( | ||||||
|  |     jni::alias_ref<jclass>, | ||||||
|  |     ComponentFactory *delegate) { | ||||||
|  |   auto instance = makeCxxInstance(delegate); | ||||||
|  |  | ||||||
|  |   auto buildRegistryFunction = | ||||||
|  |       [](EventDispatcher::Weak const &eventDispatcher, | ||||||
|  |          ContextContainer::Shared const &contextContainer) | ||||||
|  |       -> ComponentDescriptorRegistry::Shared { | ||||||
|  |     auto registry = MainComponentsRegistry::sharedProviderRegistry() | ||||||
|  |                         ->createComponentDescriptorRegistry( | ||||||
|  |                             {eventDispatcher, contextContainer}); | ||||||
|  |  | ||||||
|  |     auto mutableRegistry = | ||||||
|  |         std::const_pointer_cast<ComponentDescriptorRegistry>(registry); | ||||||
|  |  | ||||||
|  |     mutableRegistry->setFallbackComponentDescriptor( | ||||||
|  |         std::make_shared<UnimplementedNativeViewComponentDescriptor>( | ||||||
|  |             ComponentDescriptorParameters{ | ||||||
|  |                 eventDispatcher, contextContainer, nullptr})); | ||||||
|  |  | ||||||
|  |     return registry; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   delegate->buildRegistryFunction = buildRegistryFunction; | ||||||
|  |   return instance; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MainComponentsRegistry::registerNatives() { | ||||||
|  |   registerHybrid({ | ||||||
|  |       makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,32 @@ | |||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include <ComponentFactory.h> | ||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  | #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h> | ||||||
|  | #include <react/renderer/componentregistry/ComponentDescriptorRegistry.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | class MainComponentsRegistry | ||||||
|  |     : public facebook::jni::HybridClass<MainComponentsRegistry> { | ||||||
|  |  public: | ||||||
|  |   // Adapt it to the package you used for your Java class. | ||||||
|  |   constexpr static auto kJavaDescriptor = | ||||||
|  |       "Lcom/awesomeproject/newarchitecture/components/MainComponentsRegistry;"; | ||||||
|  |  | ||||||
|  |   static void registerNatives(); | ||||||
|  |  | ||||||
|  |   MainComponentsRegistry(ComponentFactory *delegate); | ||||||
|  |  | ||||||
|  |  private: | ||||||
|  |   static std::shared_ptr<ComponentDescriptorProviderRegistry const> | ||||||
|  |   sharedProviderRegistry(); | ||||||
|  |  | ||||||
|  |   static jni::local_ref<jhybriddata> initHybrid( | ||||||
|  |       jni::alias_ref<jclass>, | ||||||
|  |       ComponentFactory *delegate); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
							
								
								
									
										11
									
								
								Example/testHotUpdate/android/app/src/main/jni/OnLoad.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Example/testHotUpdate/android/app/src/main/jni/OnLoad.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  | #include "MainApplicationTurboModuleManagerDelegate.h" | ||||||
|  | #include "MainComponentsRegistry.h" | ||||||
|  |  | ||||||
|  | JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { | ||||||
|  |   return facebook::jni::initialize(vm, [] { | ||||||
|  |     facebook::react::MainApplicationTurboModuleManagerDelegate:: | ||||||
|  |         registerNatives(); | ||||||
|  |     facebook::react::MainComponentsRegistry::registerNatives(); | ||||||
|  |   }); | ||||||
|  | } | ||||||
| @@ -1,3 +1,3 @@ | |||||||
| <resources> | <resources> | ||||||
|     <string name="app_name">testHotupdate</string> |     <string name="app_name">AwesomeProject</string> | ||||||
| </resources> | </resources> | ||||||
|   | |||||||
| @@ -0,0 +1,8 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <network-security-config> | ||||||
|  |     <domain-config cleartextTrafficPermitted="true"> | ||||||
|  |         <domain includeSubdomains="true">10.0.2.2</domain> | ||||||
|  |         <domain includeSubdomains="true">localhost</domain> | ||||||
|  |         <domain includeSubdomains="true">cos.pgyer.com</domain> | ||||||
|  |     </domain-config> | ||||||
|  | </network-security-config> | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright (c) Meta Platforms, Inc. and affiliates. |  | ||||||
|  * |  | ||||||
|  * <p>This source code is licensed under the MIT license found in the LICENSE file in the root |  | ||||||
|  * directory of this source tree. |  | ||||||
|  */ |  | ||||||
| package com.testhotupdate; |  | ||||||
|  |  | ||||||
| import android.content.Context; |  | ||||||
| import com.facebook.react.ReactInstanceManager; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Class responsible of loading Flipper inside your React Native application. This is the release |  | ||||||
|  * flavor of it so it's empty as we don't want to load Flipper. |  | ||||||
|  */ |  | ||||||
| public class ReactNativeFlipper { |  | ||||||
|   public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { |  | ||||||
|     // Do nothing as we don't want to initialize Flipper on Release. |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,21 +1,58 @@ | |||||||
|  | import org.apache.tools.ant.taskdefs.condition.Os | ||||||
|  |  | ||||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | // Top-level build file where you can add configuration options common to all sub-projects/modules. | ||||||
|  |  | ||||||
| buildscript { | buildscript { | ||||||
|     ext { |     ext { | ||||||
|         buildToolsVersion = "33.0.0" |         buildToolsVersion = "31.0.0" | ||||||
|         minSdkVersion = 21 |         minSdkVersion = 21 | ||||||
|         compileSdkVersion = 33 |         compileSdkVersion = 31 | ||||||
|         targetSdkVersion = 33 |         targetSdkVersion = 31 | ||||||
|  |         kotlinVersion = '1.7.10' | ||||||
|  |  | ||||||
|         // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. |         if (System.properties['os.arch'] == "aarch64") { | ||||||
|         ndkVersion = "23.1.7779620" |             // For M1 Users we need to use the NDK 24 which added support for aarch64 | ||||||
|  |             ndkVersion = "24.0.8215888" | ||||||
|  |         } else { | ||||||
|  |             // Otherwise we default to the side-by-side NDK version from AGP. | ||||||
|  |             ndkVersion = "21.4.7075529" | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|     repositories { |     repositories { | ||||||
|         google() |         google() | ||||||
|         mavenCentral() |         mavenCentral() | ||||||
|     } |     } | ||||||
|     dependencies { |     dependencies { | ||||||
|         classpath("com.android.tools.build:gradle:7.3.1") |         classpath("com.android.tools.build:gradle:7.1.1") | ||||||
|         classpath("com.facebook.react:react-native-gradle-plugin") |         classpath("com.facebook.react:react-native-gradle-plugin") | ||||||
|  |         classpath("de.undercouch:gradle-download-task:5.0.1") | ||||||
|  |         // NOTE: Do not place your application dependencies here; they belong | ||||||
|  |         // in the individual module build.gradle files | ||||||
|  |         classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | allprojects { | ||||||
|  |     repositories { | ||||||
|  |         maven { | ||||||
|  |             // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm | ||||||
|  |             url("$rootDir/../node_modules/react-native/android") | ||||||
|  |         } | ||||||
|  |         maven { | ||||||
|  |             // Android JSC is installed from npm | ||||||
|  |             url("$rootDir/../node_modules/jsc-android/dist") | ||||||
|  |         } | ||||||
|  |         mavenCentral { | ||||||
|  |             // We don't want to fetch react-native from Maven Central as there are | ||||||
|  |             // older versions over there. | ||||||
|  |             content { | ||||||
|  |                 excludeGroup "com.facebook.react" | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         google() | ||||||
|  |         maven { | ||||||
|  |             url("$rootDir/../node_modules/detox/Detox-android") | ||||||
|  |         } | ||||||
|  |         maven { url 'https://www.jitpack.io' } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -38,7 +38,3 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 | |||||||
| # to write custom TurboModules/Fabric components OR use libraries that | # to write custom TurboModules/Fabric components OR use libraries that | ||||||
| # are providing them. | # are providing them. | ||||||
| newArchEnabled=false | newArchEnabled=false | ||||||
|  |  | ||||||
| # Use this property to enable or disable the Hermes JS engine. |  | ||||||
| # If set to false, you will be using JSC instead. |  | ||||||
| hermesEnabled=true |  | ||||||
										
											Binary file not shown.
										
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||||
| distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
| zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||||
|   | |||||||
| @@ -1,4 +1,11 @@ | |||||||
| rootProject.name = 'testHotupdate' | rootProject.name = 'AwesomeProject' | ||||||
| apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | ||||||
| include ':app' | include ':app' | ||||||
| includeBuild('../node_modules/react-native-gradle-plugin') | includeBuild('../node_modules/react-native-gradle-plugin') | ||||||
|  |  | ||||||
|  | if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { | ||||||
|  |     include(":ReactAndroid") | ||||||
|  |     project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') | ||||||
|  |     include(":ReactAndroid:hermes-engine") | ||||||
|  |     project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') | ||||||
|  | } | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| { | { | ||||||
|   "name": "testHotupdate", |   "name": "AwesomeProject", | ||||||
|   "displayName": "testHotupdate" |   "displayName": "AwesomeProject" | ||||||
| } | } | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"lifecycle","ph":"B","tid":0,"cwd":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate","data":{"id":"cf35f38f-f35b-6c2b-412c-d8942bb92b27","detoxConfig":{"configurationName":"android.emu.debug","apps":{"default":{"type":"android.apk","binaryPath":"android/app/build/outputs/apk/debug/app-debug.apk","build":"cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug","reversePorts":[8081]}},"artifacts":{"rootDir":"artifacts/android.emu.debug.2023-04-01 15-30-12Z","plugins":{"log":{"enabled":true,"keepOnlyFailedTestsArtifacts":false},"screenshot":{"enabled":true,"shouldTakeAutomaticSnapshots":false,"keepOnlyFailedTestsArtifacts":false},"video":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"instruments":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"uiHierarchy":{"enabled":false,"keepOnlyFailedTestsArtifacts":false}}},"behavior":{"init":{"keepLockFile":false,"reinstallApp":true,"exposeGlobals":true},"cleanup":{"shutdownDevice":false},"launchApp":"auto"},"cli":{"recordLogs":"all","configuration":"android.emu.debug","headless":true,"start":true},"device":{"type":"android.emulator","device":{"avdName":"Pixel_3a_API_33_arm64-v8a"},"headless":true},"logger":{"level":"info","overrideConsole":true,"options":{"showLoggerName":true,"showPid":true,"showLevel":false,"showMetadata":false,"basepath":"/Users/arvinh/Desktop/wooza/react-native-pushy/node_modules/detox/src","prefixers":{},"stringifiers":{}}},"testRunner":{"retries":0,"forwardEnv":false,"bail":false,"jest":{"setupTimeout":120000,"teardownTimeout":30000,"retryAfterCircusRetries":false,"reportWorkerAssign":true},"args":{"$0":"jest","_":[],"config":"e2e/jest.config.js","--":[]}},"session":{"autoStart":true,"debugSynchronization":10000}},"detoxIPCServer":"primary-83339","testResults":[],"testSessionIndex":0,"workersCount":0},"msg":"../../node_modules/.bin/detox test --configuration android.emu.debug --headless --record-logs all","time":"2023-04-01T15:30:12.537Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"Server path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + ipc.config.id /tmp/detox.primary-83339","time":"2023-04-01T15:30:12.542Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"starting server on  /tmp/detox.primary-83339 ","time":"2023-04-01T15:30:12.543Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"starting TLS server false","time":"2023-04-01T15:30:12.543Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"starting server as Unix || Windows Socket","time":"2023-04-01T15:30:12.543Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":20,"cat":"ws-server,ws","ph":"i","tid":0,"msg":"Detox server listening on localhost:55002...","time":"2023-04-01T15:30:12.549Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"lifecycle","ph":"i","tid":0,"msg":"Serialized the session state at: /private/var/folders/wm/91840x650t10w1m7sq830mp80000gn/T/cf35f38f-f35b-6c2b-412c-d8942bb92b27.detox.json","time":"2023-04-01T15:30:12.550Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":30,"cat":"lifecycle,cli","ph":"B","tid":0,"env":{},"msg":"jest --config e2e/jest.config.js","time":"2023-04-01T15:30:12.551Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"## socket connection to server detected ##","time":"2023-04-01T15:30:14.526Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"received event of :  registerContext { id: \u001b[32m'secondary-83344'\u001b[39m }","time":"2023-04-01T15:30:14.528Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"dispatching event to socket  :  registerContextDone { testResults: [], testSessionIndex: \u001b[33m0\u001b[39m }","time":"2023-04-01T15:30:14.528Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"received event of :  registerWorker { workerId: \u001b[32m'w1'\u001b[39m }","time":"2023-04-01T15:30:14.576Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"dispatching event to socket  :  registerWorkerDone { workersCount: \u001b[33m1\u001b[39m }","time":"2023-04-01T15:30:14.576Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"broadcasting event to all known sockets listening to  /tmp/detox.primary-83339  :   sessionStateUpdate { workersCount: \u001b[33m1\u001b[39m }","time":"2023-04-01T15:30:14.576Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":20,"cat":"ws-server,ws","ph":"B","tid":0,"id":55009,"msg":"connection :55002<->:55009","time":"2023-04-01T15:30:14.659Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55009,"data":"{\"type\":\"login\",\"params\":{\"sessionId\":\"911a46af-75be-6237-d296-b945b323abb2\",\"role\":\"tester\"},\"messageId\":0}","msg":"get","time":"2023-04-01T15:30:14.662Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws-session","ph":"i","tid":1,"msg":"created session 911a46af-75be-6237-d296-b945b323abb2","time":"2023-04-01T15:30:14.662Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55009,"trackingId":"tester","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"tester","data":{"type":"loginSuccess","params":{"testerConnected":true,"appConnected":false},"messageId":0},"msg":"send","time":"2023-04-01T15:30:14.662Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws-session","ph":"i","tid":1,"msg":"tester joined session 911a46af-75be-6237-d296-b945b323abb2","time":"2023-04-01T15:30:14.663Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":20,"cat":"ws-server,ws","ph":"B","tid":1,"id":55134,"msg":"connection :55002<->:55134","time":"2023-04-01T15:30:20.151Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55134,"data":"{\"messageId\":0,\"type\":\"login\",\"params\":{\"role\":\"app\",\"sessionId\":\"911a46af-75be-6237-d296-b945b323abb2\"}}","msg":"get","time":"2023-04-01T15:30:20.161Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55134,"trackingId":"app","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"app","data":{"messageId":0,"type":"loginSuccess","params":{"testerConnected":true,"appConnected":true}},"msg":"send","time":"2023-04-01T15:30:20.161Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws-session","ph":"i","tid":2,"msg":"app joined session 911a46af-75be-6237-d296-b945b323abb2","time":"2023-04-01T15:30:20.161Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55009,"trackingId":"tester","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"tester","data":{"type":"appConnected"},"msg":"send","time":"2023-04-01T15:30:20.161Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55009,"trackingId":"tester","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"tester","data":"{\"type\":\"isReady\",\"params\":{},\"messageId\":-1000}","msg":"get","time":"2023-04-01T15:30:20.163Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55134,"trackingId":"app","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"app","data":{"type":"isReady","params":{},"messageId":-1000},"msg":"send","time":"2023-04-01T15:30:20.163Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55009,"trackingId":"tester","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"tester","data":"{\"type\":\"currentStatus\",\"params\":{},\"messageId\":1}","msg":"get","time":"2023-04-01T15:30:30.164Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55134,"trackingId":"app","sessionId":"911a46af-75be-6237-d296-b945b323abb2","role":"app","data":{"type":"currentStatus","params":{},"messageId":1},"msg":"send","time":"2023-04-01T15:30:30.165Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":83339,"level":10,"cat":"lifecycle","ph":"E","tid":0,"abortSignal":"SIGINT","msg":"jest --config e2e/jest.config.js","time":"2023-04-01T15:32:05.663Z","v":0} | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"lifecycle","ph":"B","tid":0,"cwd":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate","data":{"id":"d04386f3-e94c-894f-8d25-1193249ad5cf","detoxConfig":{"configurationName":"android.emu.debug","apps":{"default":{"type":"android.apk","binaryPath":"android/app/build/outputs/apk/debug/app-debug.apk","build":"cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug","reversePorts":[8081]}},"artifacts":{"rootDir":"artifacts/android.emu.debug.2023-04-01 15-32-08Z","plugins":{"log":{"enabled":true,"keepOnlyFailedTestsArtifacts":false},"screenshot":{"enabled":true,"shouldTakeAutomaticSnapshots":false,"keepOnlyFailedTestsArtifacts":false},"video":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"instruments":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"uiHierarchy":{"enabled":false,"keepOnlyFailedTestsArtifacts":false}}},"behavior":{"init":{"keepLockFile":false,"reinstallApp":true,"exposeGlobals":true},"cleanup":{"shutdownDevice":false},"launchApp":"auto"},"cli":{"recordLogs":"all","configuration":"android.emu.debug","headless":true,"start":true},"device":{"type":"android.emulator","device":{"avdName":"Pixel_3a_API_33_arm64-v8a"},"headless":true},"logger":{"level":"info","overrideConsole":true,"options":{"showLoggerName":true,"showPid":true,"showLevel":false,"showMetadata":false,"basepath":"/Users/arvinh/Desktop/wooza/react-native-pushy/node_modules/detox/src","prefixers":{},"stringifiers":{}}},"testRunner":{"retries":0,"forwardEnv":false,"bail":false,"jest":{"setupTimeout":120000,"teardownTimeout":30000,"retryAfterCircusRetries":false,"reportWorkerAssign":true},"args":{"$0":"jest","_":[],"config":"e2e/jest.config.js","--":[]}},"session":{"autoStart":true,"debugSynchronization":10000}},"detoxIPCServer":"primary-95956","testResults":[],"testSessionIndex":0,"workersCount":0},"msg":"../../node_modules/.bin/detox test --configuration android.emu.debug --headless --record-logs all","time":"2023-04-01T15:32:08.091Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"Server path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + ipc.config.id /tmp/detox.primary-95956","time":"2023-04-01T15:32:08.095Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"starting server on  /tmp/detox.primary-95956 ","time":"2023-04-01T15:32:08.096Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"starting TLS server false","time":"2023-04-01T15:32:08.096Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"starting server as Unix || Windows Socket","time":"2023-04-01T15:32:08.096Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":20,"cat":"ws-server,ws","ph":"i","tid":0,"msg":"Detox server listening on localhost:55591...","time":"2023-04-01T15:32:08.101Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"lifecycle","ph":"i","tid":0,"msg":"Serialized the session state at: /private/var/folders/wm/91840x650t10w1m7sq830mp80000gn/T/d04386f3-e94c-894f-8d25-1193249ad5cf.detox.json","time":"2023-04-01T15:32:08.102Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":30,"cat":"lifecycle,cli","ph":"B","tid":0,"env":{},"msg":"jest --config e2e/jest.config.js","time":"2023-04-01T15:32:08.103Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"## socket connection to server detected ##","time":"2023-04-01T15:32:09.118Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"received event of :  registerContext { id: \u001b[32m'secondary-95963'\u001b[39m }","time":"2023-04-01T15:32:09.120Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"dispatching event to socket  :  registerContextDone { testResults: [], testSessionIndex: \u001b[33m0\u001b[39m }","time":"2023-04-01T15:32:09.120Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"received event of :  registerWorker { workerId: \u001b[32m'w1'\u001b[39m }","time":"2023-04-01T15:32:09.177Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"dispatching event to socket  :  registerWorkerDone { workersCount: \u001b[33m1\u001b[39m }","time":"2023-04-01T15:32:09.177Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ipc,ipc-server","ph":"i","tid":0,"msg":"broadcasting event to all known sockets listening to  /tmp/detox.primary-95956  :   sessionStateUpdate { workersCount: \u001b[33m1\u001b[39m }","time":"2023-04-01T15:32:09.177Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":20,"cat":"ws-server,ws","ph":"B","tid":0,"id":55598,"msg":"connection :55591<->:55598","time":"2023-04-01T15:32:09.265Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55598,"data":"{\"type\":\"login\",\"params\":{\"sessionId\":\"e5928eb2-642b-d685-dc0d-c06c4bbc6df3\",\"role\":\"tester\"},\"messageId\":0}","msg":"get","time":"2023-04-01T15:32:09.268Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws-session","ph":"i","tid":1,"msg":"created session e5928eb2-642b-d685-dc0d-c06c4bbc6df3","time":"2023-04-01T15:32:09.268Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55598,"trackingId":"tester","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"tester","data":{"type":"loginSuccess","params":{"testerConnected":true,"appConnected":false},"messageId":0},"msg":"send","time":"2023-04-01T15:32:09.268Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws-session","ph":"i","tid":1,"msg":"tester joined session e5928eb2-642b-d685-dc0d-c06c4bbc6df3","time":"2023-04-01T15:32:09.268Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":20,"cat":"ws-server,ws","ph":"B","tid":1,"id":55704,"msg":"connection :55591<->:55704","time":"2023-04-01T15:32:14.120Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55704,"data":"{\"messageId\":0,\"type\":\"login\",\"params\":{\"role\":\"app\",\"sessionId\":\"e5928eb2-642b-d685-dc0d-c06c4bbc6df3\"}}","msg":"get","time":"2023-04-01T15:32:14.130Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55704,"trackingId":"app","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"app","data":{"messageId":0,"type":"loginSuccess","params":{"testerConnected":true,"appConnected":true}},"msg":"send","time":"2023-04-01T15:32:14.131Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws-session","ph":"i","tid":2,"msg":"app joined session e5928eb2-642b-d685-dc0d-c06c4bbc6df3","time":"2023-04-01T15:32:14.131Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55598,"trackingId":"tester","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"tester","data":{"type":"appConnected"},"msg":"send","time":"2023-04-01T15:32:14.131Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55598,"trackingId":"tester","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"tester","data":"{\"type\":\"isReady\",\"params\":{},\"messageId\":-1000}","msg":"get","time":"2023-04-01T15:32:14.132Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55704,"trackingId":"app","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"app","data":{"type":"isReady","params":{},"messageId":-1000},"msg":"send","time":"2023-04-01T15:32:14.132Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":0,"id":55598,"trackingId":"tester","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"tester","data":"{\"type\":\"currentStatus\",\"params\":{},\"messageId\":1}","msg":"get","time":"2023-04-01T15:32:24.139Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"ws-server,ws","ph":"i","tid":1,"id":55704,"trackingId":"app","sessionId":"e5928eb2-642b-d685-dc0d-c06c4bbc6df3","role":"app","data":{"type":"currentStatus","params":{},"messageId":1},"msg":"send","time":"2023-04-01T15:32:24.140Z","v":0} | ||||||
|  | {"name":"detox","hostname":"MacBook-Pro.local","pid":95956,"level":10,"cat":"lifecycle","ph":"E","tid":0,"abortSignal":"SIGINT","msg":"jest --config e2e/jest.config.js","time":"2023-04-01T15:32:37.850Z","v":0} | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,797 @@ | |||||||
|  | 23:32:39.942 detox[286] [90mB[39m ../../node_modules/.bin/detox test --configuration android.emu.debug --headless --record-logs all | ||||||
|  |   data: { | ||||||
|  |     "id": "5bb1f0fb-2312-754e-890e-9b6f4493310d", | ||||||
|  |     "detoxConfig": { | ||||||
|  |       "configurationName": "android.emu.debug", | ||||||
|  |       "apps": { | ||||||
|  |         "default": { | ||||||
|  |           "type": "android.apk", | ||||||
|  |           "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk", | ||||||
|  |           "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug", | ||||||
|  |           "reversePorts": [ | ||||||
|  |             8081 | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "artifacts": { | ||||||
|  |         "rootDir": "artifacts/android.emu.debug.2023-04-01 15-32-39Z", | ||||||
|  |         "plugins": { | ||||||
|  |           "log": { | ||||||
|  |             "enabled": true, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "screenshot": { | ||||||
|  |             "enabled": true, | ||||||
|  |             "shouldTakeAutomaticSnapshots": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "video": { | ||||||
|  |             "enabled": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "instruments": { | ||||||
|  |             "enabled": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "uiHierarchy": { | ||||||
|  |             "enabled": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "behavior": { | ||||||
|  |         "init": { | ||||||
|  |           "keepLockFile": false, | ||||||
|  |           "reinstallApp": true, | ||||||
|  |           "exposeGlobals": true | ||||||
|  |         }, | ||||||
|  |         "cleanup": { | ||||||
|  |           "shutdownDevice": false | ||||||
|  |         }, | ||||||
|  |         "launchApp": "auto" | ||||||
|  |       }, | ||||||
|  |       "cli": { | ||||||
|  |         "recordLogs": "all", | ||||||
|  |         "configuration": "android.emu.debug", | ||||||
|  |         "headless": true, | ||||||
|  |         "start": true | ||||||
|  |       }, | ||||||
|  |       "device": { | ||||||
|  |         "type": "android.emulator", | ||||||
|  |         "device": { | ||||||
|  |           "avdName": "Pixel_3a_API_33_arm64-v8a" | ||||||
|  |         }, | ||||||
|  |         "headless": true | ||||||
|  |       }, | ||||||
|  |       "logger": { | ||||||
|  |         "level": "info", | ||||||
|  |         "overrideConsole": true, | ||||||
|  |         "options": { | ||||||
|  |           "showLoggerName": true, | ||||||
|  |           "showPid": true, | ||||||
|  |           "showLevel": false, | ||||||
|  |           "showMetadata": false, | ||||||
|  |           "basepath": "/Users/arvinh/Desktop/wooza/react-native-pushy/node_modules/detox/src", | ||||||
|  |           "prefixers": {}, | ||||||
|  |           "stringifiers": {} | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "testRunner": { | ||||||
|  |         "retries": 0, | ||||||
|  |         "forwardEnv": false, | ||||||
|  |         "bail": false, | ||||||
|  |         "jest": { | ||||||
|  |           "setupTimeout": 120000, | ||||||
|  |           "teardownTimeout": 30000, | ||||||
|  |           "retryAfterCircusRetries": false, | ||||||
|  |           "reportWorkerAssign": true | ||||||
|  |         }, | ||||||
|  |         "args": { | ||||||
|  |           "$0": "jest", | ||||||
|  |           "_": [], | ||||||
|  |           "config": "e2e/jest.config.js", | ||||||
|  |           "--": [] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "session": { | ||||||
|  |         "autoStart": true, | ||||||
|  |         "debugSynchronization": 10000 | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "detoxIPCServer": "primary-286", | ||||||
|  |     "testResults": [], | ||||||
|  |     "testSessionIndex": 0, | ||||||
|  |     "workersCount": 0 | ||||||
|  |   } | ||||||
|  | 23:32:39.946 detox[286] [90mi[39m Server path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + ipc.config.id /tmp/detox.primary-286 | ||||||
|  | 23:32:39.947 detox[286] [90mi[39m starting server on  /tmp/detox.primary-286  | ||||||
|  | 23:32:39.947 detox[286] [90mi[39m starting TLS server false | ||||||
|  | 23:32:39.947 detox[286] [90mi[39m starting server as Unix || Windows Socket | ||||||
|  | 23:32:39.952 detox[286] [90mi[39m Detox server listening on localhost:55801... | ||||||
|  | 23:32:39.953 detox[286] [90mi[39m Serialized the session state at: /private/var/folders/wm/91840x650t10w1m7sq830mp80000gn/T/5bb1f0fb-2312-754e-890e-9b6f4493310d.detox.json | ||||||
|  | 23:32:39.954 detox[286] [90mB[39m jest --config e2e/jest.config.js | ||||||
|  | 23:32:40.958 detox[287] [90mi[39m Service path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + id  | ||||||
|  | 23:32:40.959 detox[286] [90mi[39m ## socket connection to server detected ## | ||||||
|  | 23:32:40.959 detox[287] [90mi[39m requested connection to  primary-286 /tmp/detox.primary-286 | ||||||
|  | 23:32:40.959 detox[287] [90mi[39m Connecting client on Unix Socket : /tmp/detox.primary-286 | ||||||
|  | 23:32:40.959 detox[287] [90mi[39m retrying reset | ||||||
|  | 23:32:40.960 detox[287] [90mi[39m dispatching event to  primary-286 /tmp/detox.primary-286  :  registerContext , { id: 'secondary-287' } | ||||||
|  | 23:32:40.961 detox[286] [90mi[39m received event of :  registerContext { id: 'secondary-287' } | ||||||
|  | 23:32:40.961 detox[286] [90mi[39m dispatching event to socket  :  registerContextDone { testResults: [], testSessionIndex: 0 } | ||||||
|  | 23:32:40.962 detox[287] [90mi[39m ## received events ## | ||||||
|  | 23:32:40.962 detox[287] [90mi[39m detected event registerContextDone { testResults: [], testSessionIndex: 0 } | ||||||
|  | 23:32:41.006 detox[287] [90mB[39m e2e/NativeModule.test.ts | ||||||
|  | 23:32:41.014 detox[287] [90mB[39m set up environment | ||||||
|  | 23:32:41.014 detox[287] [90mi[39m dispatching event to  primary-286 /tmp/detox.primary-286  :  registerWorker , { workerId: 'w1' } | ||||||
|  | 23:32:41.015 detox[286] [90mi[39m received event of :  registerWorker { workerId: 'w1' } | ||||||
|  | 23:32:41.015 detox[286] [90mi[39m dispatching event to socket  :  registerWorkerDone { workersCount: 1 } | ||||||
|  | 23:32:41.015 detox[286] [90mi[39m broadcasting event to all known sockets listening to  /tmp/detox.primary-286  :   sessionStateUpdate { workersCount: 1 } | ||||||
|  | 23:32:41.015 detox[287] [90mi[39m ## received events ## | ||||||
|  | 23:32:41.015 detox[287] [90mi[39m detected event registerWorkerDone { workersCount: 1 } | ||||||
|  | 23:32:41.103 detox[287] [90mi[39m ## received events ## | ||||||
|  | 23:32:41.103 detox[287] [90mi[39m detected event sessionStateUpdate { workersCount: 1 } | ||||||
|  | 23:32:41.106 detox[286] [90mB[39m connection :55801<->:55810 | ||||||
|  | 23:32:41.107 detox[287] [90mi[39m opened web socket to: ws://localhost:55801 | ||||||
|  | 23:32:41.108 detox[287] [90mi[39m send message | ||||||
|  |   data: {"type":"login","params":{"sessionId":"85295354-1163-f241-e2d5-6b40862968db","role":"tester"},"messageId":0} | ||||||
|  | 23:32:41.109 detox[286] [90mi[39m get | ||||||
|  |   data: {"type":"login","params":{"sessionId":"85295354-1163-f241-e2d5-6b40862968db","role":"tester"},"messageId":0} | ||||||
|  | 23:32:41.109 detox[286] [90mi[39m created session 85295354-1163-f241-e2d5-6b40862968db | ||||||
|  | 23:32:41.109 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "loginSuccess", | ||||||
|  |     "params": { | ||||||
|  |       "testerConnected": true, | ||||||
|  |       "appConnected": false | ||||||
|  |     }, | ||||||
|  |     "messageId": 0 | ||||||
|  |   } | ||||||
|  | 23:32:41.109 detox[286] [90mi[39m tester joined session 85295354-1163-f241-e2d5-6b40862968db | ||||||
|  | 23:32:41.110 detox[287] [90mi[39m get message | ||||||
|  |   data: {"type":"loginSuccess","params":{"testerConnected":true,"appConnected":false},"messageId":0} | ||||||
|  |     | ||||||
|  | 23:32:41.145 detox[287] [90mB[39m allocate | ||||||
|  |   args: ({"type":"android.emulator","device":{"avdName":"Pixel_3a_API_33_arm64-v8a"},"headless":true}) | ||||||
|  | 23:32:41.145 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/emulator/emulator" -list-avds --verbose | ||||||
|  | 23:32:41.168 detox[287] [90mi[39m Pixel_3a_API_33_arm64-v8a | ||||||
|  |  | ||||||
|  | 23:32:41.169 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/emulator/emulator" -version -no-window | ||||||
|  | 23:32:41.245 detox[287] [90mi[39m INFO    | Duplicate loglines will be removed, if you wish to see each indiviudal line launch with the -log-nofilter flag. | ||||||
|  | Android emulator version 31.3.13.0 (build_id 9189900) (CL:N/A) | ||||||
|  | Copyright (C) 2006-2017 The Android Open Source Project and many others. | ||||||
|  | This program is a derivative of the QEMU CPU emulator (www.qemu.org). | ||||||
|  |  | ||||||
|  |   This software is licensed under the terms of the GNU General Public | ||||||
|  |   License version 2, as published by the Free Software Foundation, and | ||||||
|  |   may be copied, distributed, and modified under those terms. | ||||||
|  |  | ||||||
|  |   This program is distributed in the hope that it will be useful, | ||||||
|  |   but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |   GNU General Public License for more details. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 23:32:41.246 detox[287] [90mi[39m Detected emulator binary version { major: 31, minor: 3, patch: 13, toString: [Function: toString] } | ||||||
|  | 23:32:41.246 detox[287] [90mi[39m Trying to allocate a device based on "Pixel_3a_API_33_arm64-v8a" | ||||||
|  | 23:32:41.247 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb"  devices | ||||||
|  | 23:32:41.259 detox[287] [90mi[39m List of devices attached | ||||||
|  | emulator-5554	device | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 23:32:41.260 detox[287] [90mi[39m port: 5554, host: localhost | ||||||
|  | 23:32:41.264 detox[287] [90mi[39m Found a matching & free device emulator-5554 | ||||||
|  | 23:32:41.265 detox[287] [90mi[39m Settled on emulator-5554 | ||||||
|  | 23:32:41.265 detox[287] [90mB[39m _launchEmulator | ||||||
|  |   args: ("Pixel_3a_API_33_arm64-v8a", "emulator-5554", true, {"headless":true,"port":null}) | ||||||
|  | 23:32:41.265 detox[287] [90mB[39m _awaitEmulatorBoot | ||||||
|  |   args: ("emulator-5554") | ||||||
|  | 23:32:41.265 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "getprop dev.bootcomplete" | ||||||
|  | 23:32:41.302 detox[287] [90mi[39m 1 | ||||||
|  |  | ||||||
|  | 23:32:41.302 detox[287] [90mE[39m _awaitEmulatorBoot | ||||||
|  | 23:32:41.302 detox[287] [90mB[39m onBootDevice | ||||||
|  |   args: ({"deviceId":"emulator-5554","type":"Pixel_3a_API_33_arm64-v8a","coldBoot":false}) | ||||||
|  | 23:32:41.303 detox[287] [90mE[39m onBootDevice | ||||||
|  | 23:32:41.303 detox[287] [90mE[39m _launchEmulator | ||||||
|  | 23:32:41.303 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "getprop ro.build.version.sdk" | ||||||
|  | 23:32:41.329 detox[287] [90mi[39m 33 | ||||||
|  |  | ||||||
|  | 23:32:41.330 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "settings put global animator_duration_scale 0" | ||||||
|  | 23:32:41.370 detox[287] [90mi[39m  | ||||||
|  | 23:32:41.370 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "settings put global window_animation_scale 0" | ||||||
|  | 23:32:41.400 detox[287] [90mi[39m  | ||||||
|  | 23:32:41.400 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "settings put global transition_animation_scale 0" | ||||||
|  | 23:32:41.428 detox[287] [90mi[39m  | ||||||
|  | 23:32:41.428 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "dumpsys power | grep \"^[ ]*m[UW].*=\"" | ||||||
|  | 23:32:41.488 detox[287] [90mi[39m   mWakefulness=Awake | ||||||
|  |   mWakefulnessChanging=false | ||||||
|  |   mWakeLockSummary=0x0 | ||||||
|  |   mWakeUpWhenPluggedOrUnpluggedConfig=false | ||||||
|  |   mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false | ||||||
|  |   mUserActivityTimeoutOverrideFromWindowManager=-1 | ||||||
|  |   mUserInactiveOverrideFromWindowManager=false | ||||||
|  |   mUserId=0 | ||||||
|  |   mWakeLockSummary=0x0 | ||||||
|  |   mUserInteractionBackoffMillis=60000 | ||||||
|  |  | ||||||
|  | 23:32:41.488 detox[287] [90mE[39m allocate | ||||||
|  | 23:32:41.500 detox[287] [90mB[39m installUtilBinaries | ||||||
|  |   args: () | ||||||
|  | 23:32:41.500 detox[287] [90mE[39m installUtilBinaries | ||||||
|  | 23:32:41.500 detox[287] [90mB[39m selectApp | ||||||
|  |   args: ("default") | ||||||
|  | 23:32:41.501 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/build-tools/33.0.0/aapt" dump badging "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk" | ||||||
|  | 23:32:41.535 detox[287] [90mi[39m package: name='com.awesomeproject' versionCode='1' versionName='1.0' platformBuildVersionName='12' platformBuildVersionCode='31' compileSdkVersion='31' compileSdkVersionCodename='12' | ||||||
|  | sdkVersion:'21' | ||||||
|  | targetSdkVersion:'31' | ||||||
|  | uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW' | ||||||
|  | uses-permission: name='android.permission.INTERNET' | ||||||
|  | uses-permission: name='android.permission.ACCESS_WIFI_STATE' | ||||||
|  | uses-permission: name='android.permission.REQUEST_INSTALL_PACKAGES' | ||||||
|  | uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' | ||||||
|  | application-label:'AwesomeProject' | ||||||
|  | application-label-af:'AwesomeProject' | ||||||
|  | application-label-am:'AwesomeProject' | ||||||
|  | application-label-ar:'AwesomeProject' | ||||||
|  | application-label-as:'AwesomeProject' | ||||||
|  | application-label-az:'AwesomeProject' | ||||||
|  | application-label-be:'AwesomeProject' | ||||||
|  | application-label-bg:'AwesomeProject' | ||||||
|  | application-label-bn:'AwesomeProject' | ||||||
|  | application-label-bs:'AwesomeProject' | ||||||
|  | application-label-ca:'AwesomeProject' | ||||||
|  | application-label-cs:'AwesomeProject' | ||||||
|  | application-label-da:'AwesomeProject' | ||||||
|  | application-label-de:'AwesomeProject' | ||||||
|  | application-label-el:'AwesomeProject' | ||||||
|  | application-label-en-AU:'AwesomeProject' | ||||||
|  | application-label-en-CA:'AwesomeProject' | ||||||
|  | application-label-en-GB:'AwesomeProject' | ||||||
|  | application-label-en-IN:'AwesomeProject' | ||||||
|  | application-label-en-XC:'AwesomeProject' | ||||||
|  | application-label-es:'AwesomeProject' | ||||||
|  | application-label-es-US:'AwesomeProject' | ||||||
|  | application-label-et:'AwesomeProject' | ||||||
|  | application-label-eu:'AwesomeProject' | ||||||
|  | application-label-fa:'AwesomeProject' | ||||||
|  | application-label-fi:'AwesomeProject' | ||||||
|  | application-label-fr:'AwesomeProject' | ||||||
|  | application-label-fr-CA:'AwesomeProject' | ||||||
|  | application-label-gl:'AwesomeProject' | ||||||
|  | application-label-gu:'AwesomeProject' | ||||||
|  | application-label-hi:'AwesomeProject' | ||||||
|  | application-label-hr:'AwesomeProject' | ||||||
|  | application-label-hu:'AwesomeProject' | ||||||
|  | application-label-hy:'AwesomeProject' | ||||||
|  | application-label-in:'AwesomeProject' | ||||||
|  | application-label-is:'AwesomeProject' | ||||||
|  | application-label-it:'AwesomeProject' | ||||||
|  | application-label-iw:'AwesomeProject' | ||||||
|  | application-label-ja:'AwesomeProject' | ||||||
|  | application-label-ka:'AwesomeProject' | ||||||
|  | application-label-kk:'AwesomeProject' | ||||||
|  | application-label-km:'AwesomeProject' | ||||||
|  | application-label-kn:'AwesomeProject' | ||||||
|  | application-label-ko:'AwesomeProject' | ||||||
|  | application-label-ky:'AwesomeProject' | ||||||
|  | application-label-lo:'AwesomeProject' | ||||||
|  | application-label-lt:'AwesomeProject' | ||||||
|  | application-label-lv:'AwesomeProject' | ||||||
|  | application-label-mk:'AwesomeProject' | ||||||
|  | application-label-ml:'AwesomeProject' | ||||||
|  | application-label-mn:'AwesomeProject' | ||||||
|  | application-label-mr:'AwesomeProject' | ||||||
|  | application-label-ms:'AwesomeProject' | ||||||
|  | application-label-my:'AwesomeProject' | ||||||
|  | application-label-nb:'AwesomeProject' | ||||||
|  | application-label-ne:'AwesomeProject' | ||||||
|  | application-label-nl:'AwesomeProject' | ||||||
|  | application-label-or:'AwesomeProject' | ||||||
|  | application-label-pa:'AwesomeProject' | ||||||
|  | application-label-pl:'AwesomeProject' | ||||||
|  | application-label-pt:'AwesomeProject' | ||||||
|  | application-label-pt-BR:'AwesomeProject' | ||||||
|  | application-label-pt-PT:'AwesomeProject' | ||||||
|  | application-label-ro:'AwesomeProject' | ||||||
|  | application-label-ru:'AwesomeProject' | ||||||
|  | application-label-si:'AwesomeProject' | ||||||
|  | application-label-sk:'AwesomeProject' | ||||||
|  | application-label-sl:'AwesomeProject' | ||||||
|  | application-label-sq:'AwesomeProject' | ||||||
|  | application-label-sr:'AwesomeProject' | ||||||
|  | application-label-sr-Latn:'AwesomeProject' | ||||||
|  | application-label-sv:'AwesomeProject' | ||||||
|  | application-label-sw:'AwesomeProject' | ||||||
|  | application-label-ta:'AwesomeProject' | ||||||
|  | application-label-te:'AwesomeProject' | ||||||
|  | application-label-th:'AwesomeProject' | ||||||
|  | application-label-tl:'AwesomeProject' | ||||||
|  | application-label-tr:'AwesomeProject' | ||||||
|  | application-label-uk:'AwesomeProject' | ||||||
|  | application-label-ur:'AwesomeProject' | ||||||
|  | application-label-uz:'AwesomeProject' | ||||||
|  | application-label-vi:'AwesomeProject' | ||||||
|  | application-label-zh-CN:'AwesomeProject' | ||||||
|  | application-label-zh-HK:'AwesomeProject' | ||||||
|  | application-label-zh-TW:'AwesomeProject' | ||||||
|  | application-label-zu:'AwesomeProject' | ||||||
|  | application-icon-160:'res/mipmap-mdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-240:'res/mipmap-hdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-320:'res/mipmap-xhdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-480:'res/mipmap-xxhdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-640:'res/mipmap-xxxhdpi-v4/ic_launcher.png' | ||||||
|  | application: label='AwesomeProject' icon='res/mipmap-mdpi-v4/ic_launcher.png' | ||||||
|  | application-debuggable | ||||||
|  | launchable-activity: name='com.awesomeproject.MainActivity'  label='AwesomeProject' icon='' | ||||||
|  | uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' | ||||||
|  | uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE' | ||||||
|  | feature-group: label='' | ||||||
|  |   uses-feature: name='android.hardware.faketouch' | ||||||
|  |   uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' | ||||||
|  |   uses-feature: name='android.hardware.wifi' | ||||||
|  |   uses-implied-feature: name='android.hardware.wifi' reason='requested android.permission.ACCESS_WIFI_STATE permission' | ||||||
|  | main | ||||||
|  | other-activities | ||||||
|  | supports-screens: 'small' 'normal' 'large' 'xlarge' | ||||||
|  | supports-any-density: 'true' | ||||||
|  | locales: '--_--' 'af' 'am' 'ar' 'as' 'az' 'be' 'bg' 'bn' 'bs' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-CA' 'en-GB' 'en-IN' 'en-XC' 'es' 'es-US' 'et' 'eu' 'fa' 'fi' 'fr' 'fr-CA' 'gl' 'gu' 'hi' 'hr' 'hu' 'hy' 'in' 'is' 'it' 'iw' 'ja' 'ka' 'kk' 'km' 'kn' 'ko' 'ky' 'lo' 'lt' 'lv' 'mk' 'ml' 'mn' 'mr' 'ms' 'my' 'nb' 'ne' 'nl' 'or' 'pa' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si' 'sk' 'sl' 'sq' 'sr' 'sr-Latn' 'sv' 'sw' 'ta' 'te' 'th' 'tl' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh-CN' 'zh-HK' 'zh-TW' 'zu' | ||||||
|  | densities: '160' '240' '320' '480' '640' | ||||||
|  | native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64' | ||||||
|  |  | ||||||
|  | 23:32:41.535 detox[287] [90mE[39m selectApp | ||||||
|  | 23:32:41.535 detox[287] [90mB[39m uninstallApp | ||||||
|  |   args: () | ||||||
|  | 23:32:41.535 detox[287] [90mB[39m onBeforeUninstallApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:41.535 detox[287] [90mE[39m onBeforeUninstallApp | ||||||
|  | 23:32:41.535 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "pm list packages com.awesomeproject" | ||||||
|  | 23:32:41.559 detox[287] [90mi[39m package:com.awesomeproject | ||||||
|  | package:com.awesomeproject.test | ||||||
|  |  | ||||||
|  | 23:32:41.559 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 uninstall com.awesomeproject | ||||||
|  | 23:32:41.875 detox[287] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:32:41.875 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "pm list packages com.awesomeproject.test" | ||||||
|  | 23:32:41.973 detox[287] [90mi[39m package:com.awesomeproject.test | ||||||
|  |  | ||||||
|  | 23:32:41.973 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 uninstall com.awesomeproject.test | ||||||
|  | 23:32:42.138 detox[287] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:32:42.138 detox[287] [90mE[39m uninstallApp | ||||||
|  | 23:32:42.138 detox[287] [90mB[39m selectApp | ||||||
|  |   args: ("default") | ||||||
|  | 23:32:42.139 detox[287] [90mB[39m terminateApp | ||||||
|  |   args: () | ||||||
|  | 23:32:42.139 detox[287] [90mB[39m onBeforeTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:42.139 detox[287] [90mE[39m onBeforeTerminateApp | ||||||
|  | 23:32:42.139 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "am force-stop com.awesomeproject" | ||||||
|  | 23:32:42.202 detox[287] [90mi[39m  | ||||||
|  | 23:32:42.202 detox[287] [90mB[39m onTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:42.203 detox[287] [90mE[39m onTerminateApp | ||||||
|  | 23:32:42.203 detox[287] [90mE[39m terminateApp | ||||||
|  | 23:32:42.203 detox[287] [90mE[39m selectApp | ||||||
|  | 23:32:42.203 detox[287] [90mB[39m installApp | ||||||
|  |   args: () | ||||||
|  | 23:32:42.203 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/build-tools/33.0.0/aapt" dump xmlstrings "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk" AndroidManifest.xml | ||||||
|  | 23:32:42.216 detox[287] [90mi[39m String pool of 62 unique UTF-16 non-sorted strings, 62 entries and 0 styles using 2972 bytes: | ||||||
|  | String #0: theme | ||||||
|  | String #1: label | ||||||
|  | String #2: icon | ||||||
|  | String #3: name | ||||||
|  | String #4: debuggable | ||||||
|  | String #5: exported | ||||||
|  | String #6: authorities | ||||||
|  | String #7: grantUriPermissions | ||||||
|  | String #8: launchMode | ||||||
|  | String #9: configChanges | ||||||
|  | String #10: value | ||||||
|  | String #11: resource | ||||||
|  | String #12: minSdkVersion | ||||||
|  | String #13: versionCode | ||||||
|  | String #14: versionName | ||||||
|  | String #15: windowSoftInputMode | ||||||
|  | String #16: targetSdkVersion | ||||||
|  | String #17: allowBackup | ||||||
|  | String #18: usesCleartextTraffic | ||||||
|  | String #19: networkSecurityConfig | ||||||
|  | String #20: roundIcon | ||||||
|  | String #21: compileSdkVersion | ||||||
|  | String #22: compileSdkVersionCodename | ||||||
|  | String #23: appComponentFactory | ||||||
|  | String #24: 1.0 | ||||||
|  | String #25: 12 | ||||||
|  | String #26: action | ||||||
|  | String #27: activity | ||||||
|  | String #28: android | ||||||
|  | String #29: android.intent.action.MAIN | ||||||
|  | String #30: android.intent.category.LAUNCHER | ||||||
|  | String #31: android.permission.ACCESS_WIFI_STATE | ||||||
|  | String #32: android.permission.INTERNET | ||||||
|  | String #33: android.permission.REQUEST_INSTALL_PACKAGES | ||||||
|  | String #34: android.permission.SYSTEM_ALERT_WINDOW | ||||||
|  | String #35: android.permission.WRITE_EXTERNAL_STORAGE | ||||||
|  | String #36: android.support.FILE_PROVIDER_PATHS | ||||||
|  | String #37: androidx.core.app.CoreComponentFactory | ||||||
|  | String #38: androidx.emoji2.text.EmojiCompatInitializer | ||||||
|  | String #39: androidx.lifecycle.ProcessLifecycleInitializer | ||||||
|  | String #40: androidx.startup | ||||||
|  | String #41: androidx.startup.InitializationProvider | ||||||
|  | String #42: application | ||||||
|  | String #43: category | ||||||
|  | String #44: cn.reactnative.modules.update.PushyFileProvider | ||||||
|  | String #45: com.awesomeproject | ||||||
|  | String #46: com.awesomeproject.MainActivity | ||||||
|  | String #47: com.awesomeproject.MainApplication | ||||||
|  | String #48: com.awesomeproject.androidx-startup | ||||||
|  | String #49: com.awesomeproject.pushy.fileprovider | ||||||
|  | String #50: com.facebook.react.devsupport.DevSettingsActivity | ||||||
|  | String #51: http://schemas.android.com/apk/res/android | ||||||
|  | String #52: intent-filter | ||||||
|  | String #53: manifest | ||||||
|  | String #54: meta-data | ||||||
|  | String #55: package | ||||||
|  | String #56: platformBuildVersionCode | ||||||
|  | String #57: platformBuildVersionName | ||||||
|  | String #58: provider | ||||||
|  | String #59: pushy_build_time | ||||||
|  | String #60: uses-permission | ||||||
|  | String #61: uses-sdk | ||||||
|  |  | ||||||
|  | 23:32:42.216 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/build-tools/33.0.0/aapt" dump xmlstrings "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk" AndroidManifest.xml | ||||||
|  | 23:32:42.228 detox[287] [90mi[39m String pool of 41 unique UTF-16 non-sorted strings, 41 entries and 0 styles using 2052 bytes: | ||||||
|  | String #0: theme | ||||||
|  | String #1: label | ||||||
|  | String #2: name | ||||||
|  | String #3: debuggable | ||||||
|  | String #4: exported | ||||||
|  | String #5: targetPackage | ||||||
|  | String #6: handleProfiling | ||||||
|  | String #7: functionalTest | ||||||
|  | String #8: minSdkVersion | ||||||
|  | String #9: targetSdkVersion | ||||||
|  | String #10: compileSdkVersion | ||||||
|  | String #11: compileSdkVersionCodename | ||||||
|  | String #12: 12 | ||||||
|  | String #13: Tests for com.awesomeproject | ||||||
|  | String #14: action | ||||||
|  | String #15: activity | ||||||
|  | String #16: android | ||||||
|  | String #17: android.intent.action.MAIN | ||||||
|  | String #18: android.permission.REORDER_TASKS | ||||||
|  | String #19: android.test.runner | ||||||
|  | String #20: androidx.test.core.app.InstrumentationActivityInvoker$BootstrapActivity | ||||||
|  | String #21: androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity | ||||||
|  | String #22: androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity | ||||||
|  | String #23: androidx.test.orchestrator | ||||||
|  | String #24: androidx.test.runner.AndroidJUnitRunner | ||||||
|  | String #25: androidx.test.services | ||||||
|  | String #26: application | ||||||
|  | String #27: com.awesomeproject | ||||||
|  | String #28: com.awesomeproject.test | ||||||
|  | String #29: com.google.android.apps.common.testing.services | ||||||
|  | String #30: http://schemas.android.com/apk/res/android | ||||||
|  | String #31: instrumentation | ||||||
|  | String #32: intent-filter | ||||||
|  | String #33: manifest | ||||||
|  | String #34: package | ||||||
|  | String #35: platformBuildVersionCode | ||||||
|  | String #36: platformBuildVersionName | ||||||
|  | String #37: queries | ||||||
|  | String #38: uses-library | ||||||
|  | String #39: uses-permission | ||||||
|  | String #40: uses-sdk | ||||||
|  |  | ||||||
|  | 23:32:42.228 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "rm -fr /data/local/tmp/detox" | ||||||
|  | 23:32:42.306 detox[287] [90mi[39m  | ||||||
|  | 23:32:42.306 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "mkdir -p /data/local/tmp/detox" | ||||||
|  | 23:32:42.344 detox[287] [90mi[39m  | ||||||
|  | 23:32:42.344 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 push "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk" "/data/local/tmp/detox/Application.apk" | ||||||
|  | 23:32:42.683 detox[287] [90mi[39m /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk: 1 file pushed, 0 skipped. 174.6 MB/s (57188071 bytes in 0.312s) | ||||||
|  |  | ||||||
|  | 23:32:42.685 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk | ||||||
|  | 23:32:43.594 detox[287] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:32:43.597 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk exited with code #0 | ||||||
|  | 23:32:43.597 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 push "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk" "/data/local/tmp/detox/Test.apk" | ||||||
|  | 23:32:43.643 detox[287] [90mi[39m /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk: 1 file pushed, 0 skipped. 466.5 MB/s (7834463 bytes in 0.016s) | ||||||
|  |  | ||||||
|  | 23:32:43.644 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk | ||||||
|  | 23:32:43.845 detox[287] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:32:43.849 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk exited with code #0 | ||||||
|  | 23:32:43.849 detox[287] [90mB[39m reverseTcpPort | ||||||
|  |   args: (8081) | ||||||
|  | 23:32:43.849 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 reverse tcp:8081 tcp:8081 | ||||||
|  | 23:32:43.865 detox[287] [90mi[39m  | ||||||
|  | 23:32:43.865 detox[287] [90mE[39m reverseTcpPort | ||||||
|  | 23:32:43.865 detox[287] [90mE[39m installApp | ||||||
|  | 23:32:43.865 detox[287] [90mB[39m selectApp | ||||||
|  |   args: ("default") | ||||||
|  | 23:32:43.865 detox[287] [90mB[39m terminateApp | ||||||
|  |   args: () | ||||||
|  | 23:32:43.865 detox[287] [90mB[39m onBeforeTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:43.865 detox[287] [90mE[39m onBeforeTerminateApp | ||||||
|  | 23:32:43.865 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "am force-stop com.awesomeproject" | ||||||
|  | 23:32:43.925 detox[287] [90mi[39m  | ||||||
|  | 23:32:43.925 detox[287] [90mB[39m onTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:43.925 detox[287] [90mE[39m onTerminateApp | ||||||
|  | 23:32:43.925 detox[287] [90mE[39m terminateApp | ||||||
|  | 23:32:43.925 detox[287] [90mE[39m selectApp | ||||||
|  | 23:32:43.926 detox[287] [90mE[39m set up environment | ||||||
|  | 23:32:44.530 detox[287] [90mi[39m NativeModule.test.ts is assigned to emulator-5554 (Pixel_3a_API_33_arm64-v8a) | ||||||
|  | 23:32:44.530 detox[287] [90mB[39m run the tests | ||||||
|  | 23:32:44.530 detox[287] [90mB[39m onRunDescribeStart | ||||||
|  |   args: ({"name":"ROOT_DESCRIBE_BLOCK"}) | ||||||
|  | 23:32:44.531 detox[287] [90mE[39m onRunDescribeStart | ||||||
|  | 23:32:44.531 detox[287] [90mB[39m 测试Native模块的方法 | ||||||
|  | 23:32:44.531 detox[287] [90mB[39m onRunDescribeStart | ||||||
|  |   args: ({"name":"测试Native模块的方法"}) | ||||||
|  | 23:32:44.531 detox[287] [90mE[39m onRunDescribeStart | ||||||
|  | 23:32:44.531 detox[287] [90mB[39m beforeAll | ||||||
|  | 23:32:44.535 detox[287] [90mB[39m launchApp | ||||||
|  |   args: () | ||||||
|  | 23:32:44.536 detox[287] [90mB[39m terminateApp | ||||||
|  |   args: ("com.awesomeproject") | ||||||
|  | 23:32:44.536 detox[287] [90mB[39m onBeforeTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:44.536 detox[287] [90mE[39m onBeforeTerminateApp | ||||||
|  | 23:32:44.536 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "am force-stop com.awesomeproject" | ||||||
|  | 23:32:44.569 detox[287] [90mi[39m  | ||||||
|  | 23:32:44.569 detox[287] [90mB[39m onTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:32:44.569 detox[287] [90mE[39m onTerminateApp | ||||||
|  | 23:32:44.569 detox[287] [90mE[39m terminateApp | ||||||
|  | 23:32:44.570 detox[287] [90mB[39m onBeforeLaunchApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject","launchArgs":{"detoxServer":"ws://localhost:55801","detoxSessionId":"85295354-1163-f241-e2d5-6b40862968db"}}) | ||||||
|  | 23:32:44.571 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" | ||||||
|  | 23:32:44.594 detox[287] [90mi[39m 12-09 14:40:08.000 | ||||||
|  |  | ||||||
|  | 23:32:44.594 detox[287] [90mE[39m onBeforeLaunchApp | ||||||
|  | 23:32:44.594 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 reverse tcp:55801 tcp:55801 | ||||||
|  | 23:32:44.607 detox[287] [90mi[39m 55801 | ||||||
|  |  | ||||||
|  | 23:32:44.607 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "pm list instrumentation" | ||||||
|  | 23:32:44.630 detox[287] [90mi[39m instrumentation:com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner (target=com.awesomeproject) | ||||||
|  | instrumentation:com.testhotupdate.test/android.test.InstrumentationTestRunner (target=com.testhotupdate) | ||||||
|  |  | ||||||
|  | 23:32:44.632 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:55801 -e detoxSessionId 85295354-1163-f241-e2d5-6b40862968db -e debug false com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner | ||||||
|  | 23:32:45.134 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "ps | grep \"com\.awesomeproject$\"" | ||||||
|  | 23:32:45.213 detox[287] [90mi[39m u0_a184      20108   325 14812908 167772 0                  0 R com.awesomeproject | ||||||
|  |  | ||||||
|  | 23:32:45.213 detox[287] [90mB[39m onLaunchApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject","launchArgs":{"detoxServer":"ws://localhost:55801","detoxSessionId":"85295354-1163-f241-e2d5-6b40862968db"},"pid":20108}) | ||||||
|  | 23:32:45.213 detox[287] [90mi[39m starting ADBLogcatRecording | ||||||
|  | 23:32:45.214 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "logcat -T \"12-09 14:40:08.000\" --pid=20108 -f /sdcard/233241138_0.log" | ||||||
|  | 23:32:45.214 detox[287] [90mE[39m onLaunchApp | ||||||
|  | 23:32:45.516 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell du /sdcard/233241138_0.log | ||||||
|  | 23:32:45.545 detox[287] [90mi[39m 4	/sdcard/233241138_0.log | ||||||
|  |  | ||||||
|  | 23:32:45.581 detox[287] [90mi[39m INSTRUMENTATION_STATUS: class=com.awesomeproject.DetoxTest | ||||||
|  | INSTRUMENTATION_STATUS: current=1 | ||||||
|  | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner | ||||||
|  | INSTRUMENTATION_STATUS: numtests=1 | ||||||
|  | INSTRUMENTATION_STATUS: stream= | ||||||
|  | com.awesomeproject.DetoxTest: | ||||||
|  | INSTRUMENTATION_STATUS: test=runDetoxTests | ||||||
|  | INSTRUMENTATION_STATUS_CODE: 1 | ||||||
|  |  | ||||||
|  | 23:32:45.917 detox[286] [90mB[39m connection :55801<->:55919 | ||||||
|  | 23:32:45.942 detox[286] [90mi[39m get | ||||||
|  |   data: {"messageId":0,"type":"login","params":{"role":"app","sessionId":"85295354-1163-f241-e2d5-6b40862968db"}} | ||||||
|  | 23:32:45.942 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "messageId": 0, | ||||||
|  |     "type": "loginSuccess", | ||||||
|  |     "params": { | ||||||
|  |       "testerConnected": true, | ||||||
|  |       "appConnected": true | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 23:32:45.942 detox[286] [90mi[39m app joined session 85295354-1163-f241-e2d5-6b40862968db | ||||||
|  | 23:32:45.942 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "appConnected" | ||||||
|  |   } | ||||||
|  | 23:32:45.942 detox[287] [90mi[39m get message | ||||||
|  |   data: {"type":"appConnected"} | ||||||
|  |     | ||||||
|  | 23:32:45.943 detox[286] [90mi[39m get | ||||||
|  |   data: {"type":"isReady","params":{},"messageId":-1000} | ||||||
|  | 23:32:45.943 detox[287] [90mi[39m send message | ||||||
|  |   data: {"type":"isReady","params":{},"messageId":-1000} | ||||||
|  | 23:32:45.944 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "isReady", | ||||||
|  |     "params": {}, | ||||||
|  |     "messageId": -1000 | ||||||
|  |   } | ||||||
|  | 23:32:55.947 detox[287] [90mi[39m send message | ||||||
|  |   data: {"type":"currentStatus","params":{},"messageId":1} | ||||||
|  | 23:32:55.949 detox[286] [90mi[39m get | ||||||
|  |   data: {"type":"currentStatus","params":{},"messageId":1} | ||||||
|  | 23:32:55.949 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "currentStatus", | ||||||
|  |     "params": {}, | ||||||
|  |     "messageId": 1 | ||||||
|  |   } | ||||||
|  | 23:33:00.950 detox[287] [90mi[39m Failed to execute the current status query. | ||||||
|  | 23:34:44.533 detox[287] [90mB[39m onHookFailure | ||||||
|  |   args: ({"error":"Exceeded timeout of 120000 ms for a hook.\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.","hook":"beforeAll"}) | ||||||
|  | 23:34:44.533 detox[287] [90mE[39m onHookFailure | ||||||
|  | 23:34:44.533 detox[287] [90mE[39m beforeAll | ||||||
|  |   error: 'Exceeded timeout of 120000 ms for a hook.\n' + | ||||||
|  |     'Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.' | ||||||
|  | 23:34:44.534 detox[287] [90mB[39m setLocalHashInfo | ||||||
|  | 23:34:44.534 detox[287] [90mi[39m 测试Native模块的方法: setLocalHashInfo | ||||||
|  | 23:34:44.536 detox[287] [90mE[39m setLocalHashInfo | ||||||
|  | 23:34:44.536 detox[287] [90mi[39m 测试Native模块的方法: setLocalHashInfo [FAIL] | ||||||
|  | 23:34:44.545 detox[287] [90mB[39m getLocalHashInfo | ||||||
|  | 23:34:44.545 detox[287] [90mi[39m 测试Native模块的方法: getLocalHashInfo | ||||||
|  | 23:34:44.545 detox[287] [90mE[39m getLocalHashInfo | ||||||
|  | 23:34:44.545 detox[287] [90mi[39m 测试Native模块的方法: getLocalHashInfo [FAIL] | ||||||
|  | 23:34:44.545 detox[287] [90mB[39m setUuid | ||||||
|  | 23:34:44.545 detox[287] [90mi[39m 测试Native模块的方法: setUuid | ||||||
|  | 23:34:44.545 detox[287] [90mE[39m setUuid | ||||||
|  | 23:34:44.545 detox[287] [90mi[39m 测试Native模块的方法: setUuid [FAIL] | ||||||
|  | 23:34:44.546 detox[287] [90mB[39m setBlockUpdate | ||||||
|  | 23:34:44.546 detox[287] [90mi[39m 测试Native模块的方法: setBlockUpdate | ||||||
|  | 23:34:44.546 detox[287] [90mE[39m setBlockUpdate | ||||||
|  | 23:34:44.546 detox[287] [90mi[39m 测试Native模块的方法: setBlockUpdate [FAIL] | ||||||
|  | 23:34:44.547 detox[287] [90mB[39m setNeedUpdate | ||||||
|  | 23:34:44.547 detox[287] [90mi[39m 测试Native模块的方法: setNeedUpdate | ||||||
|  | 23:34:44.547 detox[287] [90mE[39m setNeedUpdate | ||||||
|  | 23:34:44.547 detox[287] [90mi[39m 测试Native模块的方法: setNeedUpdate [FAIL] | ||||||
|  | 23:34:44.547 detox[287] [90mB[39m markSuccess | ||||||
|  | 23:34:44.547 detox[287] [90mi[39m 测试Native模块的方法: markSuccess | ||||||
|  | 23:34:44.547 detox[287] [90mE[39m markSuccess | ||||||
|  | 23:34:44.547 detox[287] [90mi[39m 测试Native模块的方法: markSuccess [FAIL] | ||||||
|  | 23:34:44.548 detox[287] [90mB[39m downloadPatchFromPpk | ||||||
|  | 23:34:44.548 detox[287] [90mi[39m 测试Native模块的方法: downloadPatchFromPpk | ||||||
|  | 23:34:44.548 detox[287] [90mE[39m downloadPatchFromPpk | ||||||
|  | 23:34:44.548 detox[287] [90mi[39m 测试Native模块的方法: downloadPatchFromPpk [FAIL] | ||||||
|  | 23:34:44.548 detox[287] [90mB[39m downloadPatchFromPackage | ||||||
|  | 23:34:44.548 detox[287] [90mi[39m 测试Native模块的方法: downloadPatchFromPackage | ||||||
|  | 23:34:44.548 detox[287] [90mE[39m downloadPatchFromPackage | ||||||
|  | 23:34:44.548 detox[287] [90mi[39m 测试Native模块的方法: downloadPatchFromPackage [FAIL] | ||||||
|  | 23:34:44.548 detox[287] [90mB[39m downloadFullUpdate | ||||||
|  | 23:34:44.548 detox[287] [90mi[39m 测试Native模块的方法: downloadFullUpdate | ||||||
|  | 23:34:44.549 detox[287] [90mE[39m downloadFullUpdate | ||||||
|  | 23:34:44.549 detox[287] [90mi[39m 测试Native模块的方法: downloadFullUpdate [FAIL] | ||||||
|  | 23:34:44.549 detox[287] [90mB[39m downloadAndInstallApk | ||||||
|  | 23:34:44.549 detox[287] [90mi[39m 测试Native模块的方法: downloadAndInstallApk | ||||||
|  | 23:34:44.549 detox[287] [90mE[39m downloadAndInstallApk | ||||||
|  | 23:34:44.549 detox[287] [90mi[39m 测试Native模块的方法: downloadAndInstallApk [FAIL] | ||||||
|  | 23:34:44.550 detox[287] [90mB[39m onRunDescribeFinish | ||||||
|  |   args: ({"name":"测试Native模块的方法"}) | ||||||
|  | 23:34:44.550 detox[287] [90mE[39m onRunDescribeFinish | ||||||
|  | 23:34:44.550 detox[287] [90mE[39m 测试Native模块的方法 | ||||||
|  | 23:34:44.550 detox[287] [90mB[39m onRunDescribeFinish | ||||||
|  |   args: ({"name":"ROOT_DESCRIBE_BLOCK"}) | ||||||
|  | 23:34:44.550 detox[287] [90mE[39m onRunDescribeFinish | ||||||
|  | 23:34:44.550 detox[287] [90mE[39m run the tests | ||||||
|  | 23:34:44.574 detox[287] [90mB[39m tear down environment | ||||||
|  | 23:34:44.574 detox[287] [90mB[39m onBeforeCleanup | ||||||
|  |   args: () | ||||||
|  | 23:34:44.576 detox[287] [90mi[39m saving ADBLogcatRecording to: artifacts/android.emu.debug.2023-04-01 15-32-39Z/emulator-5554 2023-04-01 15-34-44Z.startup.log | ||||||
|  | 23:34:44.576 detox[287] [90mi[39m stopping ADBLogcatRecording | ||||||
|  | 23:34:44.576 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" | ||||||
|  | 23:34:44.612 detox[287] [90mi[39m 12-09 14:42:08.000 | ||||||
|  |  | ||||||
|  | 23:34:44.614 detox[287] [90mi[39m sending SIGINT to: /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell logcat -T "12-09 14:40:08.000" --pid=20108 -f /sdcard/233241138_0.log | ||||||
|  | 23:34:44.615 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "logcat -T \"12-09 14:40:08.000\" --pid=20108 -f /sdcard/233241138_0.log" terminated with SIGINT | ||||||
|  | 23:34:44.615 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 pull "/sdcard/233241138_0.log" "artifacts/android.emu.debug.2023-04-01 15-32-39Z/emulator-5554 2023-04-01 15-34-44Z.startup.log" | ||||||
|  | 23:34:44.634 detox[287] [90mi[39m /sdcard/233241138_0.log: 1 file pulled, 0 skipped. 13.4 MB/s (53248 bytes in 0.004s) | ||||||
|  |  | ||||||
|  | 23:34:44.634 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "rm  \"/sdcard/233241138_0.log\"" | ||||||
|  | 23:34:44.678 detox[287] [90mi[39m  | ||||||
|  | 23:34:44.678 detox[287] [90mi[39m saving FileArtifact to: artifacts/android.emu.debug.2023-04-01 15-32-39Z/detox_pid_287.json.log { append: true } | ||||||
|  | 23:34:44.678 detox[287] [90mi[39m saving FileArtifact to: artifacts/android.emu.debug.2023-04-01 15-32-39Z/detox_pid_287.log { append: true } | ||||||
|  | 23:34:44.678 detox[287] [90mE[39m onBeforeCleanup | ||||||
|  | 23:34:44.678 detox[287] [90mi[39m The app has not responded to the network requests below: | ||||||
|  |   (id = 1) currentStatus: {} | ||||||
|  |   (id = -1000) isReady: {} | ||||||
|  |  | ||||||
|  | Unresponded network requests might result in timeout errors in Detox tests. | ||||||
|  |  | ||||||
|  | 23:34:44.680 detox[287] [90mi[39m send message | ||||||
|  |   data: {"type":"cleanup","params":{"stopRunner":true},"messageId":-49642} | ||||||
|  | 23:34:44.681 detox[286] [90mi[39m get | ||||||
|  |   data: {"type":"cleanup","params":{"stopRunner":true},"messageId":-49642} | ||||||
|  | 23:34:44.681 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "cleanup", | ||||||
|  |     "params": { | ||||||
|  |       "stopRunner": true | ||||||
|  |     }, | ||||||
|  |     "messageId": -49642 | ||||||
|  |   } | ||||||
|  | 23:34:49.683 detox[287] [90mi[39m The pending request #-49642 ("cleanup") has been rejected due to the following error: | ||||||
|  |  | ||||||
|  | The tester has not received a response within 5000ms timeout to the message: | ||||||
|  |  | ||||||
|  | Cleanup { | ||||||
|  |   type: 'cleanup', | ||||||
|  |   params: [Object], | ||||||
|  |   messageId: -49642 | ||||||
|  | } | ||||||
|  | 23:34:49.687 detox[286] [90mi[39m tester exited session 85295354-1163-f241-e2d5-6b40862968db | ||||||
|  | 23:34:49.688 detox[286] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "testerDisconnected", | ||||||
|  |     "messageId": -1 | ||||||
|  |   } | ||||||
|  | 23:34:49.688 detox[286] [90mE[39m connection :55801<->:55810 | ||||||
|  | 23:34:49.688 detox[287] [90mi[39m sending SIGINT to: /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:55801 -e detoxSessionId 85295354-1163-f241-e2d5-6b40862968db -e debug false com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner | ||||||
|  | 23:34:49.691 detox[287] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:55801 -e detoxSessionId 85295354-1163-f241-e2d5-6b40862968db -e debug false com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner terminated with SIGINT | ||||||
|  | 23:34:49.691 detox[287] [90mi[39m An error occurred while waiting for the app to become ready. Waiting for disconnection... | ||||||
|  |   error: Failed to run application on the device | ||||||
|  |    | ||||||
|  |   HINT: Most likely, your tests have timed out and called detox.cleanup() while it was waiting for "ready" message (over WebSocket) from the instrumentation process. | ||||||
|  | 23:34:49.692 detox[287] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 reverse --remove tcp:55801 | ||||||
|  | 23:34:49.693 detox[287] [90mB[39m free | ||||||
|  |   args: ({"adbName":"emulator-5554"}, {"shutdown":false}) | ||||||
|  | 23:34:49.699 detox[287] [90mE[39m free | ||||||
|  | 23:34:49.699 detox[287] [90mE[39m tear down environment | ||||||
|  | 23:34:49.699 detox[287] [90mE[39m e2e/NativeModule.test.ts | ||||||
|  | 23:34:49.705 detox[287] [90mi[39m dispatching event to  primary-286 /tmp/detox.primary-286  :  reportTestResults , { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       testExecError: undefined, | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:34:49.706 detox[286] [90mi[39m received event of :  reportTestResults { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:34:49.706 detox[286] [90mi[39m dispatching event to socket  :  reportTestResultsDone { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:34:49.706 detox[286] [90mi[39m broadcasting event to all known sockets listening to  /tmp/detox.primary-286  :   sessionStateUpdate { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:34:49.706 detox[287] [90mi[39m ## received events ## | ||||||
|  | 23:34:49.707 detox[287] [90mi[39m detected event reportTestResultsDone { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:34:49.710 detox[286] [90mi[39m socket disconnected secondary-287 | ||||||
|  | 23:34:49.710 detox[287] [90mi[39m connection closed primary-286 /tmp/detox.primary-286 0 tries remaining of 0 | ||||||
|  | 23:34:49.710 detox[287] [90mi[39m secondary-287 exceeded connection rety amount of  or stopRetrying flag set. | ||||||
|  | 23:34:49.714 detox[287] [90mi[39m  | ||||||
|  | 23:34:49.777 detox[286] [90mE[39m Command failed with exit code = 1: | ||||||
|  | jest --config e2e/jest.config.js | ||||||
|  | 23:34:49.778 detox[286] [90mi[39m Detox server has been closed gracefully | ||||||
|  | 23:34:49.778 detox[286] [90mi[39m app exited session 85295354-1163-f241-e2d5-6b40862968db | ||||||
|  | 23:34:49.778 detox[286] [90mE[39m connection :55801<->:55919 | ||||||
|  | 23:34:49.779 detox[286] [90mE[39m ../../node_modules/.bin/detox test --configuration android.emu.debug --headless --record-logs all | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,270 @@ | |||||||
|  | --------- beginning of main | ||||||
|  | 12-09 14:40:08.705 20108 20108 I .awesomeproject: Late-enabling -Xcheck:jni | ||||||
|  | 12-09 14:40:08.746 20108 20108 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10184; state: ENABLED | ||||||
|  | --------- beginning of system | ||||||
|  | 12-09 14:40:08.751 20108 20108 W ActivityThread: Package uses different ABI(s) than its instrumentation: package[com.awesomeproject]: arm64-v8a, null instrumentation[com.awesomeproject.test]: null, null | ||||||
|  | 12-09 14:40:08.753 20108 20108 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886]) | ||||||
|  | 12-09 14:40:08.754 20108 20108 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=2 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951]) | ||||||
|  | 12-09 14:40:08.754 20108 20108 W ziparchive: Unable to open '/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.754 20108 20108 W ziparchive: Unable to open '/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.815 20108 20108 W ziparchive: Unable to open '/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.815 20108 20108 W ziparchive: Unable to open '/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.886 20108 20108 V GraphicsEnvironment: ANGLE Developer option for 'com.awesomeproject' set to: 'default' | ||||||
|  | 12-09 14:40:08.886 20108 20108 V GraphicsEnvironment: ANGLE GameManagerService for com.awesomeproject: false | ||||||
|  | 12-09 14:40:08.886 20108 20108 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported. | ||||||
|  | 12-09 14:40:08.887 20108 20108 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.test.base.jar | ||||||
|  | 12-09 14:40:08.888 20108 20108 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.test.base.jar | ||||||
|  | 12-09 14:40:08.888 20108 20108 W .awesomeproject: ClassLoaderContext shared library size mismatch. Expected=0, found=2 (PCL[] | PCL[]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}) | ||||||
|  | 12-09 14:40:08.889 20108 20108 W .awesomeproject: ClassLoaderContext shared library size mismatch. Expected=0, found=3 (PCL[] | PCL[]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]#PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}};PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951:/system/framework/android.test.base.jar*1628045882:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk*3488107038:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes2.dex*3802597924:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes3.dex*1113348705:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes4.dex*1609470516:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk*4280308006:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes2.dex*2341650508:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes3.dex*2242498629:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes4.dex*1939924932:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes5.dex*3428091317:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes6.dex*1896867339:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes7.dex*616740603]) | ||||||
|  | 12-09 14:40:08.889 20108 20108 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]#PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}};PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951:/system/framework/android.test.base.jar*1628045882:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk*3488107038:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes2.dex*3802597924:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes3.dex*1113348705:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes4.dex*1609470516:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk*4280308006:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes2.dex*2341650508:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes3.dex*2242498629:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes4.dex*1939924932:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes5.dex*3428091317:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes6.dex*1896867339:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes7.dex*616740603]) | ||||||
|  | 12-09 14:40:08.889 20108 20108 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=2 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]#PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}};PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951:/system/framework/android.test.base.jar*1628045882:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk*3488107038:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes2.dex*3802597924:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes3.dex*1113348705:/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk!classes4.dex*1609470516:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk*4280308006:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes2.dex*2341650508:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes3.dex*2242498629:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes4.dex*1939924932:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes5.dex*3428091317:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes6.dex*1896867339:/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.apk!classes7.dex*616740603]) | ||||||
|  | 12-09 14:40:08.889 20108 20108 W ziparchive: Unable to open '/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.889 20108 20108 W ziparchive: Unable to open '/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.940 20108 20108 W ziparchive: Unable to open '/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:08.940 20108 20108 W ziparchive: Unable to open '/data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/base.dm': No such file or directory | ||||||
|  | 12-09 14:40:09.014 20108 20108 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true | ||||||
|  | 12-09 14:40:09.014 20108 20108 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true | ||||||
|  | 12-09 14:40:09.018 20108 20108 I MonitoringInstr: Instrumentation started! | ||||||
|  | 12-09 14:40:09.020 20108 20108 V TestEventClient: No service name argument was given (testDiscoveryService, testRunEventService or orchestratorService) | ||||||
|  | 12-09 14:40:09.021 20108 20108 V fb-UnpackingSoSource: locked dso store /data/user/0/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:40:09.022 20108 20108 V fb-UnpackingSoSource: deps mismatch on deps store: regenerating | ||||||
|  | 12-09 14:40:09.022 20108 20108 V fb-UnpackingSoSource: so store dirty: regenerating | ||||||
|  | 12-09 14:40:09.032 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libc++_shared.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.032 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libevent-2.1.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.032 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libevent_core-2.1.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libevent_extra-2.1.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfabricjni.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfb.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfbjni.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libflipper.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfolly_runtime.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libglog.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libglog_init.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libimagepipeline.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsc.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjscexecutor.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsi.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsijniprofiler.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsinspector.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/liblogger.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libmapbufferjni.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libnative-filters.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libnative-imagetranscoder.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_codegen_rncore.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_config.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.033 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_debug.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_nativemodule_core.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_animations.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_attributedstring.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_componentregistry.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_core.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_debug.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_graphics.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_imagemanager.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_leakchecker.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_mapbuffer.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_mounting.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_runtimescheduler.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_scheduler.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_telemetry.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_templateprocessor.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_textlayoutmanager.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_uimanager.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_utils.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreactnativeblob.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreactnativejni.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreactperfloggerjni.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librnupdate.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_image.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_root.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_scrollview.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_text.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_textinput.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_unimplementedview.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_view.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libruntimeexecutor.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libturbomodulejsijni.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libyoga.so: deferring to libdir | ||||||
|  | 12-09 14:40:09.034 20108 20108 V fb-UnpackingSoSource: regenerating DSO store com.facebook.soloader.ApkSoSource | ||||||
|  | 12-09 14:40:09.034 20108 20108 V fb-UnpackingSoSource: Finished regenerating DSO store com.facebook.soloader.ApkSoSource | ||||||
|  | 12-09 14:40:09.034 20108 20108 V fb-UnpackingSoSource: starting syncer worker | ||||||
|  | 12-09 14:40:09.037 20108 20108 V fb-UnpackingSoSource: releasing dso store lock for /data/user/0/com.awesomeproject/lib-main (from syncer thread) | ||||||
|  | 12-09 14:40:09.037 20108 20108 V fb-UnpackingSoSource: not releasing dso store lock for /data/user/0/com.awesomeproject/lib-main (syncer thread started) | ||||||
|  | 12-09 14:40:09.039 20108 20108 D SoLoader: libjscexecutor.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:40:09.039 20108 20108 D SoLoader: libjscexecutor.so found on /data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/lib/arm64 | ||||||
|  | 12-09 14:40:09.039 20108 20108 D SoLoader: Not resolving dependencies for libjscexecutor.so | ||||||
|  | 12-09 14:40:09.046 20108 20108 D JavaScriptCore.Version: 250230.2.1 | ||||||
|  | 12-09 14:40:09.072 20108 20130 D SoLoader: libfbjni.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:40:09.072 20108 20130 D SoLoader: libfbjni.so found on /data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/lib/arm64 | ||||||
|  | 12-09 14:40:09.072 20108 20130 D SoLoader: Not resolving dependencies for libfbjni.so | ||||||
|  | 12-09 14:40:09.073 20108 20130 D SoLoader: libflipper.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:40:09.073 20108 20130 D SoLoader: libflipper.so found on /data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/lib/arm64 | ||||||
|  | 12-09 14:40:09.073 20108 20130 D SoLoader: Not resolving dependencies for libflipper.so | ||||||
|  | 12-09 14:40:09.106 20108 20108 W .awesomeproject: Accessing hidden field Landroid/view/View;->mKeyedTags:Landroid/util/SparseArray; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.106 20108 20108 W .awesomeproject: Accessing hidden field Landroid/view/View;->mListenerInfo:Landroid/view/View$ListenerInfo; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.106 20108 20108 W .awesomeproject: Accessing hidden field Landroid/view/View$ListenerInfo;->mOnClickListener:Landroid/view/View$OnClickListener; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.108 20108 20108 I flipper : flipper: FlipperClient::addPlugin Inspector | ||||||
|  | 12-09 14:40:09.110 20108 20108 I flipper : flipper: FlipperClient::addPlugin React | ||||||
|  | 12-09 14:40:09.110 20108 20108 I flipper : flipper: FlipperClient::addPlugin Databases | ||||||
|  | 12-09 14:40:09.112 20108 20108 I flipper : flipper: FlipperClient::addPlugin Preferences | ||||||
|  | 12-09 14:40:09.112 20108 20108 I flipper : flipper: FlipperClient::addPlugin CrashReporter | ||||||
|  | 12-09 14:40:09.113 20108 20108 I flipper : flipper: FlipperClient::addPlugin Network | ||||||
|  | 12-09 14:40:09.117 20108 20135 D TrafficStats: tagSocket(86) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:09.124 20108 20134 D TrafficStats: tagSocket(85) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:09.138 20108 20125 I UsageTrackerFacilitator: Usage tracking enabled | ||||||
|  | 12-09 14:40:09.141 20108 20125 I TestRequestBuilder: Scanning classpath to find tests in paths [/data/app/~~JbluuSx6QTkqb_6NTsHF9w==/com.awesomeproject.test-hBD1JykP08ciZhLfSyPoEw==/base.apk] | ||||||
|  | 12-09 14:40:09.141 20108 20125 W .awesomeproject: Opening an oat file without a class loader. Are you using the deprecated DexFile APIs? | ||||||
|  | 12-09 14:40:09.291 20108 20129 W .awesomeproject: Verification of void org.slf4j.LoggerFactory.replayEvents() took 160.243ms (374.43 bytecodes/s) (2800B approximate peak alloc) | ||||||
|  | 12-09 14:40:09.298 20108 20129 W System.err: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". | ||||||
|  | 12-09 14:40:09.303 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:40:09.303 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:40:09.303 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:40:09.303 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:40:09.303 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityViewCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:40:09.304 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/ClusteringUtils; annotation class 6432 | ||||||
|  | 12-09 14:40:09.304 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/Question; annotation class 6432 | ||||||
|  | 12-09 14:40:09.306 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/replacements/TextUtils; annotation class 6431 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:40:09.308 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:40:09.309 20108 20125 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:40:09.322 20108 20129 W System.err: SLF4J: Defaulting to no-operation (NOP) logger implementation | ||||||
|  | 12-09 14:40:09.331 20108 20129 W System.err: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. | ||||||
|  | 12-09 14:40:09.375 20108 20153 D TrafficStats: tagSocket(96) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:09.506 20108 20125 D TestExecutor: Adding listener androidx.test.internal.runner.listener.LogRunListener | ||||||
|  | 12-09 14:40:09.506 20108 20125 D TestExecutor: Adding listener androidx.test.internal.runner.listener.InstrumentationResultPrinter | ||||||
|  | 12-09 14:40:09.506 20108 20125 D TestExecutor: Adding listener androidx.test.internal.runner.listener.ActivityFinisherRunListener | ||||||
|  | 12-09 14:40:09.506 20108 20125 I TestRunner: run started: 1 tests | ||||||
|  | 12-09 14:40:09.507 20108 20125 I TestRunner: started: runDetoxTests(com.awesomeproject.DetoxTest) | ||||||
|  | 12-09 14:40:09.512 20108 20125 D EventInjectionStrategy: Creating injection strategy with input manager. | ||||||
|  | 12-09 14:40:09.512 20108 20125 W .awesomeproject: Accessing hidden method Landroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.512 20108 20125 W .awesomeproject: Accessing hidden method Landroid/hardware/input/InputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.512 20108 20125 W .awesomeproject: Accessing hidden field Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.514 20108 20125 W .awesomeproject: Accessing hidden field Ljava/lang/reflect/Field;->accessFlags:I (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.557 20108 20158 D libEGL  : loaded /vendor/lib64/egl/libEGL_emulation.so | ||||||
|  | 12-09 14:40:09.622 20108 20158 D libEGL  : loaded /vendor/lib64/egl/libGLESv1_CM_emulation.so | ||||||
|  | 12-09 14:40:09.625 20108 20158 D libEGL  : loaded /vendor/lib64/egl/libGLESv2_emulation.so | ||||||
|  | 12-09 14:40:09.644 20108 20108 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@fcceb27 in: PRE_ON_CREATE | ||||||
|  | 12-09 14:40:09.711 20108 20108 W .awesomeproject: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.711 20108 20108 W .awesomeproject: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:40:09.711 20108 20108 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@fcceb27 in: CREATED | ||||||
|  | 12-09 14:40:09.712 20108 20108 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@fcceb27 in: STARTED | ||||||
|  | 12-09 14:40:09.713 20108 20108 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@fcceb27 in: RESUMED | ||||||
|  | 12-09 14:40:09.719 20108 20108 W unknown:ReactNative: Packager connection already open, nooping. | ||||||
|  | 12-09 14:40:09.723 20108 20157 D HostConnection: createUnique: call | ||||||
|  | 12-09 14:40:09.724 20108 20157 D HostConnection: HostConnection::get() New Host Connection established 0xb4000077d3ba7910, tid 20157 | ||||||
|  | 12-09 14:40:09.726 20108 20157 D HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma ANDROID_EMU_hwc_multi_configs GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0  | ||||||
|  | 12-09 14:40:09.727 20108 20157 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... | ||||||
|  | 12-09 14:40:09.728 20108 20157 W OpenGLRenderer: Failed to initialize 101010-2 format, error = EGL_SUCCESS | ||||||
|  | 12-09 14:40:09.728 20108 20157 D EGL_emulation: eglCreateContext: 0xb4000077d3ba6c50: maj 3 min 0 rcv 3 | ||||||
|  | 12-09 14:40:09.729 20108 20157 D EGL_emulation: eglMakeCurrent: 0xb4000077d3ba6c50: ver 3 0 (tinfo 0x79f25a4080) (first time) | ||||||
|  | 12-09 14:40:09.745 20108 20157 I Gralloc4: mapper 4.x is not supported | ||||||
|  | 12-09 14:40:09.746 20108 20157 D HostConnection: createUnique: call | ||||||
|  | 12-09 14:40:09.746 20108 20157 D HostConnection: HostConnection::get() New Host Connection established 0xb4000077d3ba7a90, tid 20157 | ||||||
|  | 12-09 14:40:09.746 20108 20157 D goldfish-address-space: allocate: Ask for block of size 0x100 | ||||||
|  | 12-09 14:40:09.746 20108 20157 D goldfish-address-space: allocate: ioctl allocate returned offset 0x1efff8000 size 0x8000 | ||||||
|  | 12-09 14:40:09.747 20108 20157 W Gralloc4: allocator 4.x is not supported | ||||||
|  | 12-09 14:40:09.752 20108 20157 D HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma ANDROID_EMU_hwc_multi_configs GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0  | ||||||
|  | 12-09 14:40:09.758 20108 20161 D TrafficStats: tagSocket(109) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:09.763 20108 20157 W Parcel  : Expecting binder but got null! | ||||||
|  | 12-09 14:40:09.786 20108 20125 I Detox   : Detox server connection details: url=ws://localhost:55801, sessionId=85295354-1163-f241-e2d5-6b40862968db | ||||||
|  | 12-09 14:40:09.793 20108 20165 I DetoxDispatcher: Handling action '_init' (ID #0)... | ||||||
|  | 12-09 14:40:09.796 20108 20165 I Detox   : Connecting to server... | ||||||
|  | 12-09 14:40:09.796 20108 20165 I DetoxWSClient: At connectToServer | ||||||
|  | 12-09 14:40:09.805 20108 20108 D CompatibilityChangeReporter: Compat change id reported: 210923482; UID 10184; state: DISABLED | ||||||
|  | 12-09 14:40:09.805 20108 20108 D CompatibilityChangeReporter: Compat change id reported: 37756858; UID 10184; state: ENABLED | ||||||
|  | 12-09 14:40:09.811 20108 20167 D TrafficStats: tagSocket(124) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:09.830 20108 20157 W Parcel  : Expecting binder but got null! | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: Could not parse DebugServerException from: {"originModulePath":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js","targetModuleName":"react-native-update","message":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m","errors":[{"description":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m"}],"name":"Error","stack":"Error: Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m\n    at ModuleResolver.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:158:15)\n    at DependencyGraph.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph.js:231:43)\n    at Object.resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/lib/transformHelpers.js:129:24)\n    at resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)\n    at /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/ | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: org.json.JSONException: No value for filename | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at org.json.JSONObject.get(JSONObject.java:398) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at org.json.JSONObject.getString(JSONObject.java:559) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.common.DebugServerException.parse(DebugServerException.java:77) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processBundleResult(BundleDownloader.java:251) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$200(BundleDownloader.java:34) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$2.onChunkComplete(BundleDownloader.java:193) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.emitChunk(MultipartStreamReader.java:70) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.readAllParts(MultipartStreamReader.java:152) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processMultipartResponse(BundleDownloader.java:177) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$100(BundleDownloader.java:34) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$1.onResponse(BundleDownloader.java:147) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) | ||||||
|  | 12-09 14:40:09.841 20108 20161 W unknown:ReactNative: 	at java.lang.Thread.run(Thread.java:1012) | ||||||
|  | 12-09 14:40:09.842 20108 20161 E unknown:ReactNative: Unable to download JS bundle | ||||||
|  | 12-09 14:40:09.842 20108 20161 E unknown:ReactNative: com.facebook.react.common.DebugServerException: The development server returned response error code: 500 | ||||||
|  | 12-09 14:40:09.842 20108 20161 E unknown:ReactNative:  | ||||||
|  | 12-09 14:40:09.842 20108 20161 E unknown:ReactNative: URL: http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.awesomeproject&modulesOnly=false&runModule=true | ||||||
|  | 12-09 14:40:09.842 20108 20161 E unknown:ReactNative:  | ||||||
|  | 12-09 14:40:09.842 20108 20161 E unknown:ReactNative: Body: | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: {"originModulePath":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js","targetModuleName":"react-native-update","message":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m","errors":[{"description":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m"}],"name":"Error","stack":"Error: Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m\n    at ModuleResolver.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:158:15)\n    at DependencyGraph.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph.js:231:43)\n    at Object.resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/lib/transformHelpers.js:129:24)\n    at resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)\n    at /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processBundleResult(BundleDownloader.java:264) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$200(BundleDownloader.java:34) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$2.onChunkComplete(BundleDownloader.java:193) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.emitChunk(MultipartStreamReader.java:70) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.readAllParts(MultipartStreamReader.java:152) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processMultipartResponse(BundleDownloader.java:177) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$100(BundleDownloader.java:34) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$1.onResponse(BundleDownloader.java:147) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) | ||||||
|  | 12-09 14:40:09.843 20108 20161 E unknown:ReactNative: 	at java.lang.Thread.run(Thread.java:1012) | ||||||
|  | 12-09 14:40:09.845 20108 20167 D DetoxWSClient: At onOpen | ||||||
|  | 12-09 14:40:09.845 20108 20167 I DetoxWSClient: Sending out action 'login' (ID #0) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: Exception in native call | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: com.facebook.react.common.DebugServerException: The development server returned response error code: 500 | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative:  | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: URL: http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.awesomeproject&modulesOnly=false&runModule=true | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative:  | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: Body: | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: {"originModulePath":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js","targetModuleName":"react-native-update","message":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m","errors":[{"description":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m"}],"name":"Error","stack":"Error: Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m\n    at ModuleResolver.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:158:15)\n    at DependencyGraph.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph.js:231:43)\n    at Object.resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/lib/transformHelpers.js:129:24)\n    at resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)\n    at /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processBundleResult(BundleDownloader.java:264) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$200(BundleDownloader.java:34) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$2.onChunkComplete(BundleDownloader.java:193) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.emitChunk(MultipartStreamReader.java:70) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.readAllParts(MultipartStreamReader.java:152) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processMultipartResponse(BundleDownloader.java:177) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$100(BundleDownloader.java:34) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$1.onResponse(BundleDownloader.java:147) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) | ||||||
|  | 12-09 14:40:09.859 20108 20108 E unknown:ReactNative: 	at java.lang.Thread.run(Thread.java:1012) | ||||||
|  | 12-09 14:40:09.862 20108 20108 D CompatibilityChangeReporter: Compat change id reported: 171228096; UID 10184; state: ENABLED | ||||||
|  | 12-09 14:40:09.904 20108 20157 W Parcel  : Expecting binder but got null! | ||||||
|  | 12-09 14:40:09.905 20108 20167 I Detox   : Connected to server! | ||||||
|  | 12-09 14:40:09.906 20108 20167 D DetoxWSClient: Received action 'loginSuccess' (ID #0, params={"testerConnected":true,"appConnected":true}) | ||||||
|  | 12-09 14:40:09.910 20108 20167 D DetoxWSClient: Received action 'isReady' (ID #-1000, params={}) | ||||||
|  | 12-09 14:40:10.179 20108 20134 D SoLoader: libreactnativejni.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:40:10.180 20108 20134 D SoLoader: libreactnativejni.so found on /data/app/~~sJBymP1pJHzMrTfEnUzLyQ==/com.awesomeproject-o0qibQ9IJbng_NpEZc31Ow==/lib/arm64 | ||||||
|  | 12-09 14:40:10.180 20108 20134 D SoLoader: Not resolving dependencies for libreactnativejni.so | ||||||
|  | 12-09 14:40:11.388 20108 20175 D TrafficStats: tagSocket(142) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:11.505 20108 20157 D EGL_emulation: app_time_stats: avg=399.92ms min=3.80ms max=1219.56ms count=4 | ||||||
|  | 12-09 14:40:13.406 20108 20177 D TrafficStats: tagSocket(133) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:15.422 20108 20179 D TrafficStats: tagSocket(133) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:19.880 20108 20167 D DetoxWSClient: Received action 'currentStatus' (ID #1, params={}) | ||||||
|  | 12-09 14:40:19.881 20108 20166 I DetoxDispatcher: Handling action 'currentStatus' (ID #1)... | ||||||
|  | 12-09 14:40:25.484 20108 20185 D TrafficStats: tagSocket(144) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:27.505 20108 20187 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:29.524 20108 20189 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:31.536 20108 20191 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:41.586 20108 20199 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:43.598 20108 20201 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:45.608 20108 20207 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:47.619 20108 20209 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:57.669 20108 20215 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:40:59.679 20108 20217 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:41:01.693 20108 20219 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:41:03.701 20108 20221 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:41:13.742 20108 20227 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:41:15.753 20108 20229 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:41:17.766 20108 20231 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:41:19.783 20108 20233 D TrafficStats: t | ||||||
| @@ -0,0 +1,797 @@ | |||||||
|  | 23:34:53.933 detox[4818] [90mB[39m ../../node_modules/.bin/detox test --configuration android.emu.debug --headless --record-logs all | ||||||
|  |   data: { | ||||||
|  |     "id": "339aa5c7-a6ef-b3b2-6c74-71a67b6a4fec", | ||||||
|  |     "detoxConfig": { | ||||||
|  |       "configurationName": "android.emu.debug", | ||||||
|  |       "apps": { | ||||||
|  |         "default": { | ||||||
|  |           "type": "android.apk", | ||||||
|  |           "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk", | ||||||
|  |           "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug", | ||||||
|  |           "reversePorts": [ | ||||||
|  |             8081 | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "artifacts": { | ||||||
|  |         "rootDir": "artifacts/android.emu.debug.2023-04-01 15-34-53Z", | ||||||
|  |         "plugins": { | ||||||
|  |           "log": { | ||||||
|  |             "enabled": true, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "screenshot": { | ||||||
|  |             "enabled": true, | ||||||
|  |             "shouldTakeAutomaticSnapshots": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "video": { | ||||||
|  |             "enabled": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "instruments": { | ||||||
|  |             "enabled": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           }, | ||||||
|  |           "uiHierarchy": { | ||||||
|  |             "enabled": false, | ||||||
|  |             "keepOnlyFailedTestsArtifacts": false | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "behavior": { | ||||||
|  |         "init": { | ||||||
|  |           "keepLockFile": false, | ||||||
|  |           "reinstallApp": true, | ||||||
|  |           "exposeGlobals": true | ||||||
|  |         }, | ||||||
|  |         "cleanup": { | ||||||
|  |           "shutdownDevice": false | ||||||
|  |         }, | ||||||
|  |         "launchApp": "auto" | ||||||
|  |       }, | ||||||
|  |       "cli": { | ||||||
|  |         "recordLogs": "all", | ||||||
|  |         "configuration": "android.emu.debug", | ||||||
|  |         "headless": true, | ||||||
|  |         "start": true | ||||||
|  |       }, | ||||||
|  |       "device": { | ||||||
|  |         "type": "android.emulator", | ||||||
|  |         "device": { | ||||||
|  |           "avdName": "Pixel_3a_API_33_arm64-v8a" | ||||||
|  |         }, | ||||||
|  |         "headless": true | ||||||
|  |       }, | ||||||
|  |       "logger": { | ||||||
|  |         "level": "info", | ||||||
|  |         "overrideConsole": true, | ||||||
|  |         "options": { | ||||||
|  |           "showLoggerName": true, | ||||||
|  |           "showPid": true, | ||||||
|  |           "showLevel": false, | ||||||
|  |           "showMetadata": false, | ||||||
|  |           "basepath": "/Users/arvinh/Desktop/wooza/react-native-pushy/node_modules/detox/src", | ||||||
|  |           "prefixers": {}, | ||||||
|  |           "stringifiers": {} | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "testRunner": { | ||||||
|  |         "retries": 0, | ||||||
|  |         "forwardEnv": false, | ||||||
|  |         "bail": false, | ||||||
|  |         "jest": { | ||||||
|  |           "setupTimeout": 120000, | ||||||
|  |           "teardownTimeout": 30000, | ||||||
|  |           "retryAfterCircusRetries": false, | ||||||
|  |           "reportWorkerAssign": true | ||||||
|  |         }, | ||||||
|  |         "args": { | ||||||
|  |           "$0": "jest", | ||||||
|  |           "_": [], | ||||||
|  |           "config": "e2e/jest.config.js", | ||||||
|  |           "--": [] | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |       "session": { | ||||||
|  |         "autoStart": true, | ||||||
|  |         "debugSynchronization": 10000 | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "detoxIPCServer": "primary-4818", | ||||||
|  |     "testResults": [], | ||||||
|  |     "testSessionIndex": 0, | ||||||
|  |     "workersCount": 0 | ||||||
|  |   } | ||||||
|  | 23:34:53.938 detox[4818] [90mi[39m Server path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + ipc.config.id /tmp/detox.primary-4818 | ||||||
|  | 23:34:53.939 detox[4818] [90mi[39m starting server on  /tmp/detox.primary-4818  | ||||||
|  | 23:34:53.939 detox[4818] [90mi[39m starting TLS server false | ||||||
|  | 23:34:53.939 detox[4818] [90mi[39m starting server as Unix || Windows Socket | ||||||
|  | 23:34:53.944 detox[4818] [90mi[39m Detox server listening on localhost:56416... | ||||||
|  | 23:34:53.945 detox[4818] [90mi[39m Serialized the session state at: /private/var/folders/wm/91840x650t10w1m7sq830mp80000gn/T/339aa5c7-a6ef-b3b2-6c74-71a67b6a4fec.detox.json | ||||||
|  | 23:34:53.946 detox[4818] [90mB[39m jest --config e2e/jest.config.js | ||||||
|  | 23:34:55.379 detox[4821] [90mi[39m Service path not specified, so defaulting to ipc.config.socketRoot + ipc.config.appspace + id  | ||||||
|  | 23:34:55.380 detox[4821] [90mi[39m requested connection to  primary-4818 /tmp/detox.primary-4818 | ||||||
|  | 23:34:55.380 detox[4821] [90mi[39m Connecting client on Unix Socket : /tmp/detox.primary-4818 | ||||||
|  | 23:34:55.381 detox[4818] [90mi[39m ## socket connection to server detected ## | ||||||
|  | 23:34:55.381 detox[4821] [90mi[39m retrying reset | ||||||
|  | 23:34:55.382 detox[4821] [90mi[39m dispatching event to  primary-4818 /tmp/detox.primary-4818  :  registerContext , { id: 'secondary-4821' } | ||||||
|  | 23:34:55.383 detox[4818] [90mi[39m received event of :  registerContext { id: 'secondary-4821' } | ||||||
|  | 23:34:55.383 detox[4818] [90mi[39m dispatching event to socket  :  registerContextDone { testResults: [], testSessionIndex: 0 } | ||||||
|  | 23:34:55.383 detox[4821] [90mi[39m ## received events ## | ||||||
|  | 23:34:55.384 detox[4821] [90mi[39m detected event registerContextDone { testResults: [], testSessionIndex: 0 } | ||||||
|  | 23:34:55.435 detox[4821] [90mB[39m e2e/NativeModule.test.ts | ||||||
|  | 23:34:55.444 detox[4821] [90mB[39m set up environment | ||||||
|  | 23:34:55.445 detox[4818] [90mi[39m received event of :  registerWorker { workerId: 'w1' } | ||||||
|  | 23:34:55.445 detox[4818] [90mi[39m dispatching event to socket  :  registerWorkerDone { workersCount: 1 } | ||||||
|  | 23:34:55.445 detox[4821] [90mi[39m dispatching event to  primary-4818 /tmp/detox.primary-4818  :  registerWorker , { workerId: 'w1' } | ||||||
|  | 23:34:55.445 detox[4821] [90mi[39m ## received events ## | ||||||
|  | 23:34:55.446 detox[4818] [90mi[39m broadcasting event to all known sockets listening to  /tmp/detox.primary-4818  :   sessionStateUpdate { workersCount: 1 } | ||||||
|  | 23:34:55.446 detox[4821] [90mi[39m detected event registerWorkerDone { workersCount: 1 } | ||||||
|  | 23:34:55.539 detox[4821] [90mi[39m ## received events ## | ||||||
|  | 23:34:55.539 detox[4821] [90mi[39m detected event sessionStateUpdate { workersCount: 1 } | ||||||
|  | 23:34:55.542 detox[4818] [90mB[39m connection :56416<->:56425 | ||||||
|  | 23:34:55.543 detox[4821] [90mi[39m opened web socket to: ws://localhost:56416 | ||||||
|  | 23:34:55.544 detox[4821] [90mi[39m send message | ||||||
|  |   data: {"type":"login","params":{"sessionId":"f4aa1b39-7f49-6a1e-2016-8fceba85b11b","role":"tester"},"messageId":0} | ||||||
|  | 23:34:55.545 detox[4818] [90mi[39m get | ||||||
|  |   data: {"type":"login","params":{"sessionId":"f4aa1b39-7f49-6a1e-2016-8fceba85b11b","role":"tester"},"messageId":0} | ||||||
|  | 23:34:55.545 detox[4818] [90mi[39m created session f4aa1b39-7f49-6a1e-2016-8fceba85b11b | ||||||
|  | 23:34:55.545 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "loginSuccess", | ||||||
|  |     "params": { | ||||||
|  |       "testerConnected": true, | ||||||
|  |       "appConnected": false | ||||||
|  |     }, | ||||||
|  |     "messageId": 0 | ||||||
|  |   } | ||||||
|  | 23:34:55.545 detox[4818] [90mi[39m tester joined session f4aa1b39-7f49-6a1e-2016-8fceba85b11b | ||||||
|  | 23:34:55.546 detox[4821] [90mi[39m get message | ||||||
|  |   data: {"type":"loginSuccess","params":{"testerConnected":true,"appConnected":false},"messageId":0} | ||||||
|  |     | ||||||
|  | 23:34:55.586 detox[4821] [90mB[39m allocate | ||||||
|  |   args: ({"type":"android.emulator","device":{"avdName":"Pixel_3a_API_33_arm64-v8a"},"headless":true}) | ||||||
|  | 23:34:55.586 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/emulator/emulator" -list-avds --verbose | ||||||
|  | 23:34:55.660 detox[4821] [90mi[39m Pixel_3a_API_33_arm64-v8a | ||||||
|  |  | ||||||
|  | 23:34:55.660 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/emulator/emulator" -version -no-window | ||||||
|  | 23:34:55.796 detox[4821] [90mi[39m INFO    | Duplicate loglines will be removed, if you wish to see each indiviudal line launch with the -log-nofilter flag. | ||||||
|  | Android emulator version 31.3.13.0 (build_id 9189900) (CL:N/A) | ||||||
|  | Copyright (C) 2006-2017 The Android Open Source Project and many others. | ||||||
|  | This program is a derivative of the QEMU CPU emulator (www.qemu.org). | ||||||
|  |  | ||||||
|  |   This software is licensed under the terms of the GNU General Public | ||||||
|  |   License version 2, as published by the Free Software Foundation, and | ||||||
|  |   may be copied, distributed, and modified under those terms. | ||||||
|  |  | ||||||
|  |   This program is distributed in the hope that it will be useful, | ||||||
|  |   but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |   GNU General Public License for more details. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 23:34:55.796 detox[4821] [90mi[39m Detected emulator binary version { major: 31, minor: 3, patch: 13, toString: [Function: toString] } | ||||||
|  | 23:34:55.796 detox[4821] [90mi[39m Trying to allocate a device based on "Pixel_3a_API_33_arm64-v8a" | ||||||
|  | 23:34:55.797 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb"  devices | ||||||
|  | 23:34:55.809 detox[4821] [90mi[39m List of devices attached | ||||||
|  | emulator-5554	device | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 23:34:55.810 detox[4821] [90mi[39m port: 5554, host: localhost | ||||||
|  | 23:34:55.814 detox[4821] [90mi[39m Found a matching & free device emulator-5554 | ||||||
|  | 23:34:55.814 detox[4821] [90mi[39m Settled on emulator-5554 | ||||||
|  | 23:34:55.814 detox[4821] [90mB[39m _launchEmulator | ||||||
|  |   args: ("Pixel_3a_API_33_arm64-v8a", "emulator-5554", true, {"headless":true,"port":null}) | ||||||
|  | 23:34:55.814 detox[4821] [90mB[39m _awaitEmulatorBoot | ||||||
|  |   args: ("emulator-5554") | ||||||
|  | 23:34:55.815 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "getprop dev.bootcomplete" | ||||||
|  | 23:34:55.847 detox[4821] [90mi[39m 1 | ||||||
|  |  | ||||||
|  | 23:34:55.847 detox[4821] [90mE[39m _awaitEmulatorBoot | ||||||
|  | 23:34:55.847 detox[4821] [90mB[39m onBootDevice | ||||||
|  |   args: ({"deviceId":"emulator-5554","type":"Pixel_3a_API_33_arm64-v8a","coldBoot":false}) | ||||||
|  | 23:34:55.847 detox[4821] [90mE[39m onBootDevice | ||||||
|  | 23:34:55.847 detox[4821] [90mE[39m _launchEmulator | ||||||
|  | 23:34:55.847 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "getprop ro.build.version.sdk" | ||||||
|  | 23:34:55.871 detox[4821] [90mi[39m 33 | ||||||
|  |  | ||||||
|  | 23:34:55.872 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "settings put global animator_duration_scale 0" | ||||||
|  | 23:34:55.897 detox[4821] [90mi[39m  | ||||||
|  | 23:34:55.897 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "settings put global window_animation_scale 0" | ||||||
|  | 23:34:55.920 detox[4821] [90mi[39m  | ||||||
|  | 23:34:55.920 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "settings put global transition_animation_scale 0" | ||||||
|  | 23:34:55.942 detox[4821] [90mi[39m  | ||||||
|  | 23:34:55.942 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "dumpsys power | grep \"^[ ]*m[UW].*=\"" | ||||||
|  | 23:34:56.007 detox[4821] [90mi[39m   mWakefulness=Awake | ||||||
|  |   mWakefulnessChanging=false | ||||||
|  |   mWakeLockSummary=0x0 | ||||||
|  |   mWakeUpWhenPluggedOrUnpluggedConfig=false | ||||||
|  |   mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false | ||||||
|  |   mUserActivityTimeoutOverrideFromWindowManager=-1 | ||||||
|  |   mUserInactiveOverrideFromWindowManager=false | ||||||
|  |   mUserId=0 | ||||||
|  |   mWakeLockSummary=0x0 | ||||||
|  |   mUserInteractionBackoffMillis=60000 | ||||||
|  |  | ||||||
|  | 23:34:56.007 detox[4821] [90mE[39m allocate | ||||||
|  | 23:34:56.022 detox[4821] [90mB[39m installUtilBinaries | ||||||
|  |   args: () | ||||||
|  | 23:34:56.022 detox[4821] [90mE[39m installUtilBinaries | ||||||
|  | 23:34:56.023 detox[4821] [90mB[39m selectApp | ||||||
|  |   args: ("default") | ||||||
|  | 23:34:56.026 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/build-tools/33.0.0/aapt" dump badging "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk" | ||||||
|  | 23:34:56.059 detox[4821] [90mi[39m package: name='com.awesomeproject' versionCode='1' versionName='1.0' platformBuildVersionName='12' platformBuildVersionCode='31' compileSdkVersion='31' compileSdkVersionCodename='12' | ||||||
|  | sdkVersion:'21' | ||||||
|  | targetSdkVersion:'31' | ||||||
|  | uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW' | ||||||
|  | uses-permission: name='android.permission.INTERNET' | ||||||
|  | uses-permission: name='android.permission.ACCESS_WIFI_STATE' | ||||||
|  | uses-permission: name='android.permission.REQUEST_INSTALL_PACKAGES' | ||||||
|  | uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' | ||||||
|  | application-label:'AwesomeProject' | ||||||
|  | application-label-af:'AwesomeProject' | ||||||
|  | application-label-am:'AwesomeProject' | ||||||
|  | application-label-ar:'AwesomeProject' | ||||||
|  | application-label-as:'AwesomeProject' | ||||||
|  | application-label-az:'AwesomeProject' | ||||||
|  | application-label-be:'AwesomeProject' | ||||||
|  | application-label-bg:'AwesomeProject' | ||||||
|  | application-label-bn:'AwesomeProject' | ||||||
|  | application-label-bs:'AwesomeProject' | ||||||
|  | application-label-ca:'AwesomeProject' | ||||||
|  | application-label-cs:'AwesomeProject' | ||||||
|  | application-label-da:'AwesomeProject' | ||||||
|  | application-label-de:'AwesomeProject' | ||||||
|  | application-label-el:'AwesomeProject' | ||||||
|  | application-label-en-AU:'AwesomeProject' | ||||||
|  | application-label-en-CA:'AwesomeProject' | ||||||
|  | application-label-en-GB:'AwesomeProject' | ||||||
|  | application-label-en-IN:'AwesomeProject' | ||||||
|  | application-label-en-XC:'AwesomeProject' | ||||||
|  | application-label-es:'AwesomeProject' | ||||||
|  | application-label-es-US:'AwesomeProject' | ||||||
|  | application-label-et:'AwesomeProject' | ||||||
|  | application-label-eu:'AwesomeProject' | ||||||
|  | application-label-fa:'AwesomeProject' | ||||||
|  | application-label-fi:'AwesomeProject' | ||||||
|  | application-label-fr:'AwesomeProject' | ||||||
|  | application-label-fr-CA:'AwesomeProject' | ||||||
|  | application-label-gl:'AwesomeProject' | ||||||
|  | application-label-gu:'AwesomeProject' | ||||||
|  | application-label-hi:'AwesomeProject' | ||||||
|  | application-label-hr:'AwesomeProject' | ||||||
|  | application-label-hu:'AwesomeProject' | ||||||
|  | application-label-hy:'AwesomeProject' | ||||||
|  | application-label-in:'AwesomeProject' | ||||||
|  | application-label-is:'AwesomeProject' | ||||||
|  | application-label-it:'AwesomeProject' | ||||||
|  | application-label-iw:'AwesomeProject' | ||||||
|  | application-label-ja:'AwesomeProject' | ||||||
|  | application-label-ka:'AwesomeProject' | ||||||
|  | application-label-kk:'AwesomeProject' | ||||||
|  | application-label-km:'AwesomeProject' | ||||||
|  | application-label-kn:'AwesomeProject' | ||||||
|  | application-label-ko:'AwesomeProject' | ||||||
|  | application-label-ky:'AwesomeProject' | ||||||
|  | application-label-lo:'AwesomeProject' | ||||||
|  | application-label-lt:'AwesomeProject' | ||||||
|  | application-label-lv:'AwesomeProject' | ||||||
|  | application-label-mk:'AwesomeProject' | ||||||
|  | application-label-ml:'AwesomeProject' | ||||||
|  | application-label-mn:'AwesomeProject' | ||||||
|  | application-label-mr:'AwesomeProject' | ||||||
|  | application-label-ms:'AwesomeProject' | ||||||
|  | application-label-my:'AwesomeProject' | ||||||
|  | application-label-nb:'AwesomeProject' | ||||||
|  | application-label-ne:'AwesomeProject' | ||||||
|  | application-label-nl:'AwesomeProject' | ||||||
|  | application-label-or:'AwesomeProject' | ||||||
|  | application-label-pa:'AwesomeProject' | ||||||
|  | application-label-pl:'AwesomeProject' | ||||||
|  | application-label-pt:'AwesomeProject' | ||||||
|  | application-label-pt-BR:'AwesomeProject' | ||||||
|  | application-label-pt-PT:'AwesomeProject' | ||||||
|  | application-label-ro:'AwesomeProject' | ||||||
|  | application-label-ru:'AwesomeProject' | ||||||
|  | application-label-si:'AwesomeProject' | ||||||
|  | application-label-sk:'AwesomeProject' | ||||||
|  | application-label-sl:'AwesomeProject' | ||||||
|  | application-label-sq:'AwesomeProject' | ||||||
|  | application-label-sr:'AwesomeProject' | ||||||
|  | application-label-sr-Latn:'AwesomeProject' | ||||||
|  | application-label-sv:'AwesomeProject' | ||||||
|  | application-label-sw:'AwesomeProject' | ||||||
|  | application-label-ta:'AwesomeProject' | ||||||
|  | application-label-te:'AwesomeProject' | ||||||
|  | application-label-th:'AwesomeProject' | ||||||
|  | application-label-tl:'AwesomeProject' | ||||||
|  | application-label-tr:'AwesomeProject' | ||||||
|  | application-label-uk:'AwesomeProject' | ||||||
|  | application-label-ur:'AwesomeProject' | ||||||
|  | application-label-uz:'AwesomeProject' | ||||||
|  | application-label-vi:'AwesomeProject' | ||||||
|  | application-label-zh-CN:'AwesomeProject' | ||||||
|  | application-label-zh-HK:'AwesomeProject' | ||||||
|  | application-label-zh-TW:'AwesomeProject' | ||||||
|  | application-label-zu:'AwesomeProject' | ||||||
|  | application-icon-160:'res/mipmap-mdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-240:'res/mipmap-hdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-320:'res/mipmap-xhdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-480:'res/mipmap-xxhdpi-v4/ic_launcher.png' | ||||||
|  | application-icon-640:'res/mipmap-xxxhdpi-v4/ic_launcher.png' | ||||||
|  | application: label='AwesomeProject' icon='res/mipmap-mdpi-v4/ic_launcher.png' | ||||||
|  | application-debuggable | ||||||
|  | launchable-activity: name='com.awesomeproject.MainActivity'  label='AwesomeProject' icon='' | ||||||
|  | uses-permission: name='android.permission.READ_EXTERNAL_STORAGE' | ||||||
|  | uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE' | ||||||
|  | feature-group: label='' | ||||||
|  |   uses-feature: name='android.hardware.faketouch' | ||||||
|  |   uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' | ||||||
|  |   uses-feature: name='android.hardware.wifi' | ||||||
|  |   uses-implied-feature: name='android.hardware.wifi' reason='requested android.permission.ACCESS_WIFI_STATE permission' | ||||||
|  | main | ||||||
|  | other-activities | ||||||
|  | supports-screens: 'small' 'normal' 'large' 'xlarge' | ||||||
|  | supports-any-density: 'true' | ||||||
|  | locales: '--_--' 'af' 'am' 'ar' 'as' 'az' 'be' 'bg' 'bn' 'bs' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-CA' 'en-GB' 'en-IN' 'en-XC' 'es' 'es-US' 'et' 'eu' 'fa' 'fi' 'fr' 'fr-CA' 'gl' 'gu' 'hi' 'hr' 'hu' 'hy' 'in' 'is' 'it' 'iw' 'ja' 'ka' 'kk' 'km' 'kn' 'ko' 'ky' 'lo' 'lt' 'lv' 'mk' 'ml' 'mn' 'mr' 'ms' 'my' 'nb' 'ne' 'nl' 'or' 'pa' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si' 'sk' 'sl' 'sq' 'sr' 'sr-Latn' 'sv' 'sw' 'ta' 'te' 'th' 'tl' 'tr' 'uk' 'ur' 'uz' 'vi' 'zh-CN' 'zh-HK' 'zh-TW' 'zu' | ||||||
|  | densities: '160' '240' '320' '480' '640' | ||||||
|  | native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64' | ||||||
|  |  | ||||||
|  | 23:34:56.059 detox[4821] [90mE[39m selectApp | ||||||
|  | 23:34:56.059 detox[4821] [90mB[39m uninstallApp | ||||||
|  |   args: () | ||||||
|  | 23:34:56.059 detox[4821] [90mB[39m onBeforeUninstallApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:56.059 detox[4821] [90mE[39m onBeforeUninstallApp | ||||||
|  | 23:34:56.059 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "pm list packages com.awesomeproject" | ||||||
|  | 23:34:56.083 detox[4821] [90mi[39m package:com.awesomeproject | ||||||
|  | package:com.awesomeproject.test | ||||||
|  |  | ||||||
|  | 23:34:56.083 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 uninstall com.awesomeproject | ||||||
|  | 23:34:56.390 detox[4821] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:34:56.391 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "pm list packages com.awesomeproject.test" | ||||||
|  | 23:34:56.481 detox[4821] [90mi[39m package:com.awesomeproject.test | ||||||
|  |  | ||||||
|  | 23:34:56.481 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 uninstall com.awesomeproject.test | ||||||
|  | 23:34:56.601 detox[4821] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:34:56.601 detox[4821] [90mE[39m uninstallApp | ||||||
|  | 23:34:56.601 detox[4821] [90mB[39m selectApp | ||||||
|  |   args: ("default") | ||||||
|  | 23:34:56.602 detox[4821] [90mB[39m terminateApp | ||||||
|  |   args: () | ||||||
|  | 23:34:56.603 detox[4821] [90mB[39m onBeforeTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:56.603 detox[4821] [90mE[39m onBeforeTerminateApp | ||||||
|  | 23:34:56.603 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "am force-stop com.awesomeproject" | ||||||
|  | 23:34:56.697 detox[4821] [90mi[39m  | ||||||
|  | 23:34:56.697 detox[4821] [90mB[39m onTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:56.698 detox[4821] [90mE[39m onTerminateApp | ||||||
|  | 23:34:56.698 detox[4821] [90mE[39m terminateApp | ||||||
|  | 23:34:56.698 detox[4821] [90mE[39m selectApp | ||||||
|  | 23:34:56.698 detox[4821] [90mB[39m installApp | ||||||
|  |   args: () | ||||||
|  | 23:34:56.699 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/build-tools/33.0.0/aapt" dump xmlstrings "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk" AndroidManifest.xml | ||||||
|  | 23:34:56.710 detox[4821] [90mi[39m String pool of 62 unique UTF-16 non-sorted strings, 62 entries and 0 styles using 2972 bytes: | ||||||
|  | String #0: theme | ||||||
|  | String #1: label | ||||||
|  | String #2: icon | ||||||
|  | String #3: name | ||||||
|  | String #4: debuggable | ||||||
|  | String #5: exported | ||||||
|  | String #6: authorities | ||||||
|  | String #7: grantUriPermissions | ||||||
|  | String #8: launchMode | ||||||
|  | String #9: configChanges | ||||||
|  | String #10: value | ||||||
|  | String #11: resource | ||||||
|  | String #12: minSdkVersion | ||||||
|  | String #13: versionCode | ||||||
|  | String #14: versionName | ||||||
|  | String #15: windowSoftInputMode | ||||||
|  | String #16: targetSdkVersion | ||||||
|  | String #17: allowBackup | ||||||
|  | String #18: usesCleartextTraffic | ||||||
|  | String #19: networkSecurityConfig | ||||||
|  | String #20: roundIcon | ||||||
|  | String #21: compileSdkVersion | ||||||
|  | String #22: compileSdkVersionCodename | ||||||
|  | String #23: appComponentFactory | ||||||
|  | String #24: 1.0 | ||||||
|  | String #25: 12 | ||||||
|  | String #26: action | ||||||
|  | String #27: activity | ||||||
|  | String #28: android | ||||||
|  | String #29: android.intent.action.MAIN | ||||||
|  | String #30: android.intent.category.LAUNCHER | ||||||
|  | String #31: android.permission.ACCESS_WIFI_STATE | ||||||
|  | String #32: android.permission.INTERNET | ||||||
|  | String #33: android.permission.REQUEST_INSTALL_PACKAGES | ||||||
|  | String #34: android.permission.SYSTEM_ALERT_WINDOW | ||||||
|  | String #35: android.permission.WRITE_EXTERNAL_STORAGE | ||||||
|  | String #36: android.support.FILE_PROVIDER_PATHS | ||||||
|  | String #37: androidx.core.app.CoreComponentFactory | ||||||
|  | String #38: androidx.emoji2.text.EmojiCompatInitializer | ||||||
|  | String #39: androidx.lifecycle.ProcessLifecycleInitializer | ||||||
|  | String #40: androidx.startup | ||||||
|  | String #41: androidx.startup.InitializationProvider | ||||||
|  | String #42: application | ||||||
|  | String #43: category | ||||||
|  | String #44: cn.reactnative.modules.update.PushyFileProvider | ||||||
|  | String #45: com.awesomeproject | ||||||
|  | String #46: com.awesomeproject.MainActivity | ||||||
|  | String #47: com.awesomeproject.MainApplication | ||||||
|  | String #48: com.awesomeproject.androidx-startup | ||||||
|  | String #49: com.awesomeproject.pushy.fileprovider | ||||||
|  | String #50: com.facebook.react.devsupport.DevSettingsActivity | ||||||
|  | String #51: http://schemas.android.com/apk/res/android | ||||||
|  | String #52: intent-filter | ||||||
|  | String #53: manifest | ||||||
|  | String #54: meta-data | ||||||
|  | String #55: package | ||||||
|  | String #56: platformBuildVersionCode | ||||||
|  | String #57: platformBuildVersionName | ||||||
|  | String #58: provider | ||||||
|  | String #59: pushy_build_time | ||||||
|  | String #60: uses-permission | ||||||
|  | String #61: uses-sdk | ||||||
|  |  | ||||||
|  | 23:34:56.711 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/build-tools/33.0.0/aapt" dump xmlstrings "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk" AndroidManifest.xml | ||||||
|  | 23:34:56.722 detox[4821] [90mi[39m String pool of 41 unique UTF-16 non-sorted strings, 41 entries and 0 styles using 2052 bytes: | ||||||
|  | String #0: theme | ||||||
|  | String #1: label | ||||||
|  | String #2: name | ||||||
|  | String #3: debuggable | ||||||
|  | String #4: exported | ||||||
|  | String #5: targetPackage | ||||||
|  | String #6: handleProfiling | ||||||
|  | String #7: functionalTest | ||||||
|  | String #8: minSdkVersion | ||||||
|  | String #9: targetSdkVersion | ||||||
|  | String #10: compileSdkVersion | ||||||
|  | String #11: compileSdkVersionCodename | ||||||
|  | String #12: 12 | ||||||
|  | String #13: Tests for com.awesomeproject | ||||||
|  | String #14: action | ||||||
|  | String #15: activity | ||||||
|  | String #16: android | ||||||
|  | String #17: android.intent.action.MAIN | ||||||
|  | String #18: android.permission.REORDER_TASKS | ||||||
|  | String #19: android.test.runner | ||||||
|  | String #20: androidx.test.core.app.InstrumentationActivityInvoker$BootstrapActivity | ||||||
|  | String #21: androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity | ||||||
|  | String #22: androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity | ||||||
|  | String #23: androidx.test.orchestrator | ||||||
|  | String #24: androidx.test.runner.AndroidJUnitRunner | ||||||
|  | String #25: androidx.test.services | ||||||
|  | String #26: application | ||||||
|  | String #27: com.awesomeproject | ||||||
|  | String #28: com.awesomeproject.test | ||||||
|  | String #29: com.google.android.apps.common.testing.services | ||||||
|  | String #30: http://schemas.android.com/apk/res/android | ||||||
|  | String #31: instrumentation | ||||||
|  | String #32: intent-filter | ||||||
|  | String #33: manifest | ||||||
|  | String #34: package | ||||||
|  | String #35: platformBuildVersionCode | ||||||
|  | String #36: platformBuildVersionName | ||||||
|  | String #37: queries | ||||||
|  | String #38: uses-library | ||||||
|  | String #39: uses-permission | ||||||
|  | String #40: uses-sdk | ||||||
|  |  | ||||||
|  | 23:34:56.722 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "rm -fr /data/local/tmp/detox" | ||||||
|  | 23:34:56.815 detox[4821] [90mi[39m  | ||||||
|  | 23:34:56.815 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "mkdir -p /data/local/tmp/detox" | ||||||
|  | 23:34:56.889 detox[4821] [90mi[39m  | ||||||
|  | 23:34:56.890 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 push "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk" "/data/local/tmp/detox/Application.apk" | ||||||
|  | 23:34:57.224 detox[4821] [90mi[39m /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/debug/app-debug.apk: 1 file pushed, 0 skipped. 184.7 MB/s (57188071 bytes in 0.295s) | ||||||
|  |  | ||||||
|  | 23:34:57.227 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk | ||||||
|  | 23:34:57.978 detox[4821] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:34:57.980 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Application.apk exited with code #0 | ||||||
|  | 23:34:57.980 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 push "/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk" "/data/local/tmp/detox/Test.apk" | ||||||
|  | 23:34:58.037 detox[4821] [90mi[39m /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/android/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk: 1 file pushed, 0 skipped. 428.1 MB/s (7834463 bytes in 0.017s) | ||||||
|  |  | ||||||
|  | 23:34:58.037 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk | ||||||
|  | 23:34:58.154 detox[4821] [90mi[39m Success | ||||||
|  |  | ||||||
|  | 23:34:58.160 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm install -r -g -t /data/local/tmp/detox/Test.apk exited with code #0 | ||||||
|  | 23:34:58.161 detox[4821] [90mB[39m reverseTcpPort | ||||||
|  |   args: (8081) | ||||||
|  | 23:34:58.161 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 reverse tcp:8081 tcp:8081 | ||||||
|  | 23:34:58.177 detox[4821] [90mi[39m  | ||||||
|  | 23:34:58.177 detox[4821] [90mE[39m reverseTcpPort | ||||||
|  | 23:34:58.177 detox[4821] [90mE[39m installApp | ||||||
|  | 23:34:58.177 detox[4821] [90mB[39m selectApp | ||||||
|  |   args: ("default") | ||||||
|  | 23:34:58.177 detox[4821] [90mB[39m terminateApp | ||||||
|  |   args: () | ||||||
|  | 23:34:58.177 detox[4821] [90mB[39m onBeforeTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:58.177 detox[4821] [90mE[39m onBeforeTerminateApp | ||||||
|  | 23:34:58.177 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "am force-stop com.awesomeproject" | ||||||
|  | 23:34:58.230 detox[4821] [90mi[39m  | ||||||
|  | 23:34:58.230 detox[4821] [90mB[39m onTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:58.231 detox[4821] [90mE[39m onTerminateApp | ||||||
|  | 23:34:58.231 detox[4821] [90mE[39m terminateApp | ||||||
|  | 23:34:58.231 detox[4821] [90mE[39m selectApp | ||||||
|  | 23:34:58.231 detox[4821] [90mE[39m set up environment | ||||||
|  | 23:34:58.852 detox[4821] [90mi[39m NativeModule.test.ts is assigned to emulator-5554 (Pixel_3a_API_33_arm64-v8a) | ||||||
|  | 23:34:58.852 detox[4821] [90mB[39m run the tests | ||||||
|  | 23:34:58.852 detox[4821] [90mB[39m onRunDescribeStart | ||||||
|  |   args: ({"name":"ROOT_DESCRIBE_BLOCK"}) | ||||||
|  | 23:34:58.853 detox[4821] [90mE[39m onRunDescribeStart | ||||||
|  | 23:34:58.853 detox[4821] [90mB[39m 测试Native模块的方法 | ||||||
|  | 23:34:58.853 detox[4821] [90mB[39m onRunDescribeStart | ||||||
|  |   args: ({"name":"测试Native模块的方法"}) | ||||||
|  | 23:34:58.853 detox[4821] [90mE[39m onRunDescribeStart | ||||||
|  | 23:34:58.853 detox[4821] [90mB[39m beforeAll | ||||||
|  | 23:34:58.857 detox[4821] [90mB[39m launchApp | ||||||
|  |   args: () | ||||||
|  | 23:34:58.857 detox[4821] [90mB[39m terminateApp | ||||||
|  |   args: ("com.awesomeproject") | ||||||
|  | 23:34:58.857 detox[4821] [90mB[39m onBeforeTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:58.857 detox[4821] [90mE[39m onBeforeTerminateApp | ||||||
|  | 23:34:58.857 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "am force-stop com.awesomeproject" | ||||||
|  | 23:34:58.890 detox[4821] [90mi[39m  | ||||||
|  | 23:34:58.890 detox[4821] [90mB[39m onTerminateApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject"}) | ||||||
|  | 23:34:58.890 detox[4821] [90mE[39m onTerminateApp | ||||||
|  | 23:34:58.891 detox[4821] [90mE[39m terminateApp | ||||||
|  | 23:34:58.891 detox[4821] [90mB[39m onBeforeLaunchApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject","launchArgs":{"detoxServer":"ws://localhost:56416","detoxSessionId":"f4aa1b39-7f49-6a1e-2016-8fceba85b11b"}}) | ||||||
|  | 23:34:58.891 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" | ||||||
|  | 23:34:58.911 detox[4821] [90mi[39m 12-09 14:42:22.000 | ||||||
|  |  | ||||||
|  | 23:34:58.911 detox[4821] [90mE[39m onBeforeLaunchApp | ||||||
|  | 23:34:58.912 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 reverse tcp:56416 tcp:56416 | ||||||
|  | 23:34:58.924 detox[4821] [90mi[39m 56416 | ||||||
|  |  | ||||||
|  | 23:34:58.924 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "pm list instrumentation" | ||||||
|  | 23:34:58.950 detox[4821] [90mi[39m instrumentation:com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner (target=com.awesomeproject) | ||||||
|  | instrumentation:com.testhotupdate.test/android.test.InstrumentationTestRunner (target=com.testhotupdate) | ||||||
|  |  | ||||||
|  | 23:34:58.951 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:56416 -e detoxSessionId f4aa1b39-7f49-6a1e-2016-8fceba85b11b -e debug false com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner | ||||||
|  | 23:34:59.453 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "ps | grep \"com\.awesomeproject$\"" | ||||||
|  | 23:34:59.530 detox[4821] [90mi[39m u0_a186      20479   325 14771216 169660 0                  0 S com.awesomeproject | ||||||
|  |  | ||||||
|  | 23:34:59.530 detox[4821] [90mB[39m onLaunchApp | ||||||
|  |   args: ({"deviceId":"emulator-5554","bundleId":"com.awesomeproject","launchArgs":{"detoxServer":"ws://localhost:56416","detoxSessionId":"f4aa1b39-7f49-6a1e-2016-8fceba85b11b"},"pid":20479}) | ||||||
|  | 23:34:59.532 detox[4821] [90mi[39m starting ADBLogcatRecording | ||||||
|  | 23:34:59.534 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "logcat -T \"12-09 14:42:22.000\" --pid=20479 -f /sdcard/233455576_0.log" | ||||||
|  | 23:34:59.534 detox[4821] [90mE[39m onLaunchApp | ||||||
|  | 23:34:59.835 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell du /sdcard/233455576_0.log | ||||||
|  | 23:34:59.865 detox[4821] [90mi[39m 4	/sdcard/233455576_0.log | ||||||
|  |  | ||||||
|  | 23:34:59.877 detox[4821] [90mi[39m INSTRUMENTATION_STATUS: class=com.awesomeproject.DetoxTest | ||||||
|  | INSTRUMENTATION_STATUS: current=1 | ||||||
|  | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner | ||||||
|  | INSTRUMENTATION_STATUS: numtests=1 | ||||||
|  | INSTRUMENTATION_STATUS: stream= | ||||||
|  | com.awesomeproject.DetoxTest: | ||||||
|  | INSTRUMENTATION_STATUS: test=runDetoxTests | ||||||
|  | INSTRUMENTATION_STATUS_CODE: 1 | ||||||
|  |  | ||||||
|  | 23:35:00.349 detox[4818] [90mB[39m connection :56416<->:56526 | ||||||
|  | 23:35:00.353 detox[4818] [90mi[39m get | ||||||
|  |   data: {"messageId":0,"type":"login","params":{"role":"app","sessionId":"f4aa1b39-7f49-6a1e-2016-8fceba85b11b"}} | ||||||
|  | 23:35:00.353 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "messageId": 0, | ||||||
|  |     "type": "loginSuccess", | ||||||
|  |     "params": { | ||||||
|  |       "testerConnected": true, | ||||||
|  |       "appConnected": true | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 23:35:00.353 detox[4818] [90mi[39m app joined session f4aa1b39-7f49-6a1e-2016-8fceba85b11b | ||||||
|  | 23:35:00.353 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "appConnected" | ||||||
|  |   } | ||||||
|  | 23:35:00.354 detox[4821] [90mi[39m get message | ||||||
|  |   data: {"type":"appConnected"} | ||||||
|  |     | ||||||
|  | 23:35:00.355 detox[4818] [90mi[39m get | ||||||
|  |   data: {"type":"isReady","params":{},"messageId":-1000} | ||||||
|  | 23:35:00.355 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "isReady", | ||||||
|  |     "params": {}, | ||||||
|  |     "messageId": -1000 | ||||||
|  |   } | ||||||
|  | 23:35:00.355 detox[4821] [90mi[39m send message | ||||||
|  |   data: {"type":"isReady","params":{},"messageId":-1000} | ||||||
|  | 23:35:10.355 detox[4821] [90mi[39m send message | ||||||
|  |   data: {"type":"currentStatus","params":{},"messageId":1} | ||||||
|  | 23:35:10.356 detox[4818] [90mi[39m get | ||||||
|  |   data: {"type":"currentStatus","params":{},"messageId":1} | ||||||
|  | 23:35:10.356 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "currentStatus", | ||||||
|  |     "params": {}, | ||||||
|  |     "messageId": 1 | ||||||
|  |   } | ||||||
|  | 23:35:15.358 detox[4821] [90mi[39m Failed to execute the current status query. | ||||||
|  | 23:36:58.856 detox[4821] [90mB[39m onHookFailure | ||||||
|  |   args: ({"error":"Exceeded timeout of 120000 ms for a hook.\nAdd a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.","hook":"beforeAll"}) | ||||||
|  | 23:36:58.856 detox[4821] [90mE[39m onHookFailure | ||||||
|  | 23:36:58.857 detox[4821] [90mE[39m beforeAll | ||||||
|  |   error: 'Exceeded timeout of 120000 ms for a hook.\n' + | ||||||
|  |     'Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout.' | ||||||
|  | 23:36:58.858 detox[4821] [90mB[39m setLocalHashInfo | ||||||
|  | 23:36:58.858 detox[4821] [90mi[39m 测试Native模块的方法: setLocalHashInfo | ||||||
|  | 23:36:58.859 detox[4821] [90mE[39m setLocalHashInfo | ||||||
|  | 23:36:58.859 detox[4821] [90mi[39m 测试Native模块的方法: setLocalHashInfo [FAIL] | ||||||
|  | 23:36:58.867 detox[4821] [90mB[39m getLocalHashInfo | ||||||
|  | 23:36:58.867 detox[4821] [90mi[39m 测试Native模块的方法: getLocalHashInfo | ||||||
|  | 23:36:58.868 detox[4821] [90mE[39m getLocalHashInfo | ||||||
|  | 23:36:58.868 detox[4821] [90mi[39m 测试Native模块的方法: getLocalHashInfo [FAIL] | ||||||
|  | 23:36:58.868 detox[4821] [90mB[39m setUuid | ||||||
|  | 23:36:58.868 detox[4821] [90mi[39m 测试Native模块的方法: setUuid | ||||||
|  | 23:36:58.868 detox[4821] [90mE[39m setUuid | ||||||
|  | 23:36:58.868 detox[4821] [90mi[39m 测试Native模块的方法: setUuid [FAIL] | ||||||
|  | 23:36:58.869 detox[4821] [90mB[39m setBlockUpdate | ||||||
|  | 23:36:58.869 detox[4821] [90mi[39m 测试Native模块的方法: setBlockUpdate | ||||||
|  | 23:36:58.869 detox[4821] [90mE[39m setBlockUpdate | ||||||
|  | 23:36:58.869 detox[4821] [90mi[39m 测试Native模块的方法: setBlockUpdate [FAIL] | ||||||
|  | 23:36:58.869 detox[4821] [90mB[39m setNeedUpdate | ||||||
|  | 23:36:58.869 detox[4821] [90mi[39m 测试Native模块的方法: setNeedUpdate | ||||||
|  | 23:36:58.869 detox[4821] [90mE[39m setNeedUpdate | ||||||
|  | 23:36:58.869 detox[4821] [90mi[39m 测试Native模块的方法: setNeedUpdate [FAIL] | ||||||
|  | 23:36:58.870 detox[4821] [90mB[39m markSuccess | ||||||
|  | 23:36:58.870 detox[4821] [90mi[39m 测试Native模块的方法: markSuccess | ||||||
|  | 23:36:58.870 detox[4821] [90mE[39m markSuccess | ||||||
|  | 23:36:58.870 detox[4821] [90mi[39m 测试Native模块的方法: markSuccess [FAIL] | ||||||
|  | 23:36:58.871 detox[4821] [90mB[39m downloadPatchFromPpk | ||||||
|  | 23:36:58.871 detox[4821] [90mi[39m 测试Native模块的方法: downloadPatchFromPpk | ||||||
|  | 23:36:58.871 detox[4821] [90mE[39m downloadPatchFromPpk | ||||||
|  | 23:36:58.871 detox[4821] [90mi[39m 测试Native模块的方法: downloadPatchFromPpk [FAIL] | ||||||
|  | 23:36:58.871 detox[4821] [90mB[39m downloadPatchFromPackage | ||||||
|  | 23:36:58.871 detox[4821] [90mi[39m 测试Native模块的方法: downloadPatchFromPackage | ||||||
|  | 23:36:58.871 detox[4821] [90mE[39m downloadPatchFromPackage | ||||||
|  | 23:36:58.871 detox[4821] [90mi[39m 测试Native模块的方法: downloadPatchFromPackage [FAIL] | ||||||
|  | 23:36:58.872 detox[4821] [90mB[39m downloadFullUpdate | ||||||
|  | 23:36:58.872 detox[4821] [90mi[39m 测试Native模块的方法: downloadFullUpdate | ||||||
|  | 23:36:58.872 detox[4821] [90mE[39m downloadFullUpdate | ||||||
|  | 23:36:58.872 detox[4821] [90mi[39m 测试Native模块的方法: downloadFullUpdate [FAIL] | ||||||
|  | 23:36:58.872 detox[4821] [90mB[39m downloadAndInstallApk | ||||||
|  | 23:36:58.872 detox[4821] [90mi[39m 测试Native模块的方法: downloadAndInstallApk | ||||||
|  | 23:36:58.872 detox[4821] [90mE[39m downloadAndInstallApk | ||||||
|  | 23:36:58.872 detox[4821] [90mi[39m 测试Native模块的方法: downloadAndInstallApk [FAIL] | ||||||
|  | 23:36:58.873 detox[4821] [90mB[39m onRunDescribeFinish | ||||||
|  |   args: ({"name":"测试Native模块的方法"}) | ||||||
|  | 23:36:58.873 detox[4821] [90mE[39m onRunDescribeFinish | ||||||
|  | 23:36:58.873 detox[4821] [90mE[39m 测试Native模块的方法 | ||||||
|  | 23:36:58.873 detox[4821] [90mB[39m onRunDescribeFinish | ||||||
|  |   args: ({"name":"ROOT_DESCRIBE_BLOCK"}) | ||||||
|  | 23:36:58.873 detox[4821] [90mE[39m onRunDescribeFinish | ||||||
|  | 23:36:58.873 detox[4821] [90mE[39m run the tests | ||||||
|  | 23:36:58.899 detox[4821] [90mB[39m tear down environment | ||||||
|  | 23:36:58.900 detox[4821] [90mB[39m onBeforeCleanup | ||||||
|  |   args: () | ||||||
|  | 23:36:58.902 detox[4821] [90mi[39m saving ADBLogcatRecording to: artifacts/android.emu.debug.2023-04-01 15-34-53Z/emulator-5554 2023-04-01 15-36-58Z.startup.log | ||||||
|  | 23:36:58.902 detox[4821] [90mi[39m stopping ADBLogcatRecording | ||||||
|  | 23:36:58.902 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "date +\"%m-%d %T.000\"" | ||||||
|  | 23:36:58.958 detox[4821] [90mi[39m 12-09 14:44:22.000 | ||||||
|  |  | ||||||
|  | 23:36:58.960 detox[4821] [90mi[39m sending SIGINT to: /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell logcat -T "12-09 14:42:22.000" --pid=20479 -f /sdcard/233455576_0.log | ||||||
|  | 23:36:58.961 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell "logcat -T \"12-09 14:42:22.000\" --pid=20479 -f /sdcard/233455576_0.log" terminated with SIGINT | ||||||
|  | 23:36:58.961 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 pull "/sdcard/233455576_0.log" "artifacts/android.emu.debug.2023-04-01 15-34-53Z/emulator-5554 2023-04-01 15-36-58Z.startup.log" | ||||||
|  | 23:36:58.980 detox[4821] [90mi[39m /sdcard/233455576_0.log: 1 file pulled, 0 skipped. 20.7 MB/s (53248 bytes in 0.002s) | ||||||
|  |  | ||||||
|  | 23:36:58.980 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 shell "rm  \"/sdcard/233455576_0.log\"" | ||||||
|  | 23:36:59.018 detox[4821] [90mi[39m  | ||||||
|  | 23:36:59.019 detox[4821] [90mi[39m saving FileArtifact to: artifacts/android.emu.debug.2023-04-01 15-34-53Z/detox_pid_4821.json.log { append: true } | ||||||
|  | 23:36:59.019 detox[4821] [90mi[39m saving FileArtifact to: artifacts/android.emu.debug.2023-04-01 15-34-53Z/detox_pid_4821.log { append: true } | ||||||
|  | 23:36:59.019 detox[4821] [90mE[39m onBeforeCleanup | ||||||
|  | 23:36:59.019 detox[4821] [90mi[39m The app has not responded to the network requests below: | ||||||
|  |   (id = 1) currentStatus: {} | ||||||
|  |   (id = -1000) isReady: {} | ||||||
|  |  | ||||||
|  | Unresponded network requests might result in timeout errors in Detox tests. | ||||||
|  |  | ||||||
|  | 23:36:59.020 detox[4821] [90mi[39m send message | ||||||
|  |   data: {"type":"cleanup","params":{"stopRunner":true},"messageId":-49642} | ||||||
|  | 23:36:59.021 detox[4818] [90mi[39m get | ||||||
|  |   data: {"type":"cleanup","params":{"stopRunner":true},"messageId":-49642} | ||||||
|  | 23:36:59.022 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "cleanup", | ||||||
|  |     "params": { | ||||||
|  |       "stopRunner": true | ||||||
|  |     }, | ||||||
|  |     "messageId": -49642 | ||||||
|  |   } | ||||||
|  | 23:37:04.022 detox[4821] [90mi[39m The pending request #-49642 ("cleanup") has been rejected due to the following error: | ||||||
|  |  | ||||||
|  | The tester has not received a response within 5000ms timeout to the message: | ||||||
|  |  | ||||||
|  | Cleanup { | ||||||
|  |   type: 'cleanup', | ||||||
|  |   params: [Object], | ||||||
|  |   messageId: -49642 | ||||||
|  | } | ||||||
|  | 23:37:04.027 detox[4818] [90mi[39m tester exited session f4aa1b39-7f49-6a1e-2016-8fceba85b11b | ||||||
|  | 23:37:04.027 detox[4818] [90mi[39m send | ||||||
|  |   data: { | ||||||
|  |     "type": "testerDisconnected", | ||||||
|  |     "messageId": -1 | ||||||
|  |   } | ||||||
|  | 23:37:04.028 detox[4818] [90mE[39m connection :56416<->:56425 | ||||||
|  | 23:37:04.028 detox[4821] [90mi[39m sending SIGINT to: /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:56416 -e detoxSessionId f4aa1b39-7f49-6a1e-2016-8fceba85b11b -e debug false com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner | ||||||
|  | 23:37:04.030 detox[4821] [90mi[39m /Users/arvinh/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:56416 -e detoxSessionId f4aa1b39-7f49-6a1e-2016-8fceba85b11b -e debug false com.awesomeproject.test/androidx.test.runner.AndroidJUnitRunner terminated with SIGINT | ||||||
|  | 23:37:04.030 detox[4821] [90mi[39m An error occurred while waiting for the app to become ready. Waiting for disconnection... | ||||||
|  |   error: Failed to run application on the device | ||||||
|  |    | ||||||
|  |   HINT: Most likely, your tests have timed out and called detox.cleanup() while it was waiting for "ready" message (over WebSocket) from the instrumentation process. | ||||||
|  | 23:37:04.030 detox[4821] [90mi[39m "/Users/arvinh/Library/Android/sdk/platform-tools/adb" -s emulator-5554 reverse --remove tcp:56416 | ||||||
|  | 23:37:04.034 detox[4821] [90mB[39m free | ||||||
|  |   args: ({"adbName":"emulator-5554"}, {"shutdown":false}) | ||||||
|  | 23:37:04.036 detox[4821] [90mE[39m free | ||||||
|  | 23:37:04.036 detox[4821] [90mE[39m tear down environment | ||||||
|  | 23:37:04.036 detox[4821] [90mE[39m e2e/NativeModule.test.ts | ||||||
|  | 23:37:04.041 detox[4821] [90mi[39m dispatching event to  primary-4818 /tmp/detox.primary-4818  :  reportTestResults , { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       testExecError: undefined, | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:37:04.042 detox[4818] [90mi[39m received event of :  reportTestResults { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:37:04.042 detox[4818] [90mi[39m dispatching event to socket  :  reportTestResultsDone { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:37:04.042 detox[4818] [90mi[39m broadcasting event to all known sockets listening to  /tmp/detox.primary-4818  :   sessionStateUpdate { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:37:04.042 detox[4821] [90mi[39m ## received events ## | ||||||
|  | 23:37:04.043 detox[4821] [90mi[39m detected event reportTestResultsDone { | ||||||
|  |   testResults: [ | ||||||
|  |     { | ||||||
|  |       success: false, | ||||||
|  |       testFilePath: '/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/e2e/NativeModule.test.ts', | ||||||
|  |       isPermanentFailure: false | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  | 23:37:04.045 detox[4818] [90mi[39m socket disconnected secondary-4821 | ||||||
|  | 23:37:04.045 detox[4821] [90mi[39m connection closed primary-4818 /tmp/detox.primary-4818 0 tries remaining of 0 | ||||||
|  | 23:37:04.045 detox[4821] [90mi[39m secondary-4821 exceeded connection rety amount of  or stopRetrying flag set. | ||||||
|  | 23:37:04.064 detox[4821] [90mi[39m  | ||||||
|  | 23:37:04.113 detox[4818] [90mE[39m Command failed with exit code = 1: | ||||||
|  | jest --config e2e/jest.config.js | ||||||
|  | 23:37:04.114 detox[4818] [90mi[39m Detox server has been closed gracefully | ||||||
|  | 23:37:04.115 detox[4818] [90mi[39m app exited session f4aa1b39-7f49-6a1e-2016-8fceba85b11b | ||||||
|  | 23:37:04.115 detox[4818] [90mE[39m connection :56416<->:56526 | ||||||
|  | 23:37:04.115 detox[4818] [90mE[39m ../../node_modules/.bin/detox test --configuration android.emu.debug --headless --record-logs all | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -0,0 +1,271 @@ | |||||||
|  | --------- beginning of main | ||||||
|  | 12-09 14:42:23.010 20479 20479 I .awesomeproject: Late-enabling -Xcheck:jni | ||||||
|  | 12-09 14:42:23.052 20479 20479 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10186; state: ENABLED | ||||||
|  | --------- beginning of system | ||||||
|  | 12-09 14:42:23.057 20479 20479 W ActivityThread: Package uses different ABI(s) than its instrumentation: package[com.awesomeproject]: arm64-v8a, null instrumentation[com.awesomeproject.test]: null, null | ||||||
|  | 12-09 14:42:23.058 20479 20479 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886]) | ||||||
|  | 12-09 14:42:23.058 20479 20479 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=2 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951]) | ||||||
|  | 12-09 14:42:23.058 20479 20479 W ziparchive: Unable to open '/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.058 20479 20479 W ziparchive: Unable to open '/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.118 20479 20479 W ziparchive: Unable to open '/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.118 20479 20479 W ziparchive: Unable to open '/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.190 20479 20479 V GraphicsEnvironment: ANGLE Developer option for 'com.awesomeproject' set to: 'default' | ||||||
|  | 12-09 14:42:23.190 20479 20479 V GraphicsEnvironment: ANGLE GameManagerService for com.awesomeproject: false | ||||||
|  | 12-09 14:42:23.190 20479 20479 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported. | ||||||
|  | 12-09 14:42:23.191 20479 20479 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.test.base.jar | ||||||
|  | 12-09 14:42:23.192 20479 20479 D ApplicationLoaders: Returning zygote-cached class loader: /system/framework/android.test.base.jar | ||||||
|  | 12-09 14:42:23.192 20479 20479 W .awesomeproject: ClassLoaderContext shared library size mismatch. Expected=0, found=2 (PCL[] | PCL[]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}) | ||||||
|  | 12-09 14:42:23.193 20479 20479 W .awesomeproject: ClassLoaderContext shared library size mismatch. Expected=0, found=3 (PCL[] | PCL[]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]#PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}};PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951:/system/framework/android.test.base.jar*1628045882:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk*3488107038:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes2.dex*3802597924:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes3.dex*1113348705:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes4.dex*1609470516:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk*4280308006:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes2.dex*2341650508:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes3.dex*2242498629:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes4.dex*1939924932:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes5.dex*3428091317:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes6.dex*1896867339:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes7.dex*616740603]) | ||||||
|  | 12-09 14:42:23.193 20479 20479 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=1 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]#PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}};PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951:/system/framework/android.test.base.jar*1628045882:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk*3488107038:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes2.dex*3802597924:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes3.dex*1113348705:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes4.dex*1609470516:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk*4280308006:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes2.dex*2341650508:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes3.dex*2242498629:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes4.dex*1939924932:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes5.dex*3428091317:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes6.dex*1896867339:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes7.dex*616740603]) | ||||||
|  | 12-09 14:42:23.194 20479 20479 W .awesomeproject: ClassLoaderContext classpath size mismatch. expected=0, found=2 (PCL[] | PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]#PCL[/system/framework/android.test.runner.jar*2256426886]{PCL[/system/framework/android.test.base.jar*1628045882]#PCL[/system/framework/android.test.mock.jar*849501951]}};PCL[/system/framework/android.test.runner.jar*2256426886:/system/framework/android.test.mock.jar*849501951:/system/framework/android.test.base.jar*1628045882:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk*3488107038:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes2.dex*3802597924:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes3.dex*1113348705:/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk!classes4.dex*1609470516:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk*4280308006:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes2.dex*2341650508:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes3.dex*2242498629:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes4.dex*1939924932:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes5.dex*3428091317:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes6.dex*1896867339:/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.apk!classes7.dex*616740603]) | ||||||
|  | 12-09 14:42:23.194 20479 20479 W ziparchive: Unable to open '/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.194 20479 20479 W ziparchive: Unable to open '/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.244 20479 20479 W ziparchive: Unable to open '/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.244 20479 20479 W ziparchive: Unable to open '/data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/base.dm': No such file or directory | ||||||
|  | 12-09 14:42:23.315 20479 20479 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true | ||||||
|  | 12-09 14:42:23.316 20479 20479 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true | ||||||
|  | 12-09 14:42:23.320 20479 20479 I MonitoringInstr: Instrumentation started! | ||||||
|  | 12-09 14:42:23.322 20479 20479 V TestEventClient: No service name argument was given (testDiscoveryService, testRunEventService or orchestratorService) | ||||||
|  | 12-09 14:42:23.324 20479 20479 V fb-UnpackingSoSource: locked dso store /data/user/0/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:42:23.324 20479 20479 V fb-UnpackingSoSource: deps mismatch on deps store: regenerating | ||||||
|  | 12-09 14:42:23.324 20479 20479 V fb-UnpackingSoSource: so store dirty: regenerating | ||||||
|  | 12-09 14:42:23.334 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libc++_shared.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.335 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libevent-2.1.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.335 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libevent_core-2.1.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.335 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libevent_extra-2.1.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfabricjni.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfb.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfbjni.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libflipper.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libfolly_runtime.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libglog.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libglog_init.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libimagepipeline.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsc.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjscexecutor.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsi.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsijniprofiler.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libjsinspector.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/liblogger.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libmapbufferjni.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libnative-filters.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libnative-imagetranscoder.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_codegen_rncore.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_config.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_debug.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.336 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_nativemodule_core.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_animations.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_attributedstring.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_componentregistry.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_core.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_debug.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_graphics.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_imagemanager.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_leakchecker.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_mapbuffer.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_mounting.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_runtimescheduler.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_scheduler.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_telemetry.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_templateprocessor.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_textlayoutmanager.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_render_uimanager.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreact_utils.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreactnativeblob.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreactnativejni.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libreactperfloggerjni.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librnupdate.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_image.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_root.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_scrollview.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_text.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_textinput.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_unimplementedview.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/librrc_view.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libruntimeexecutor.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libturbomodulejsijni.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 D ApkSoSource: not allowing consideration of lib/arm64-v8a/libyoga.so: deferring to libdir | ||||||
|  | 12-09 14:42:23.337 20479 20479 V fb-UnpackingSoSource: regenerating DSO store com.facebook.soloader.ApkSoSource | ||||||
|  | 12-09 14:42:23.337 20479 20479 V fb-UnpackingSoSource: Finished regenerating DSO store com.facebook.soloader.ApkSoSource | ||||||
|  | 12-09 14:42:23.337 20479 20479 V fb-UnpackingSoSource: starting syncer worker | ||||||
|  | 12-09 14:42:23.340 20479 20479 V fb-UnpackingSoSource: releasing dso store lock for /data/user/0/com.awesomeproject/lib-main (from syncer thread) | ||||||
|  | 12-09 14:42:23.340 20479 20479 V fb-UnpackingSoSource: not releasing dso store lock for /data/user/0/com.awesomeproject/lib-main (syncer thread started) | ||||||
|  | 12-09 14:42:23.343 20479 20479 D SoLoader: libjscexecutor.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:42:23.343 20479 20479 D SoLoader: libjscexecutor.so found on /data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/lib/arm64 | ||||||
|  | 12-09 14:42:23.343 20479 20479 D SoLoader: Not resolving dependencies for libjscexecutor.so | ||||||
|  | 12-09 14:42:23.350 20479 20479 D JavaScriptCore.Version: 250230.2.1 | ||||||
|  | 12-09 14:42:23.375 20479 20501 D SoLoader: libfbjni.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:42:23.376 20479 20501 D SoLoader: libfbjni.so found on /data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/lib/arm64 | ||||||
|  | 12-09 14:42:23.376 20479 20501 D SoLoader: Not resolving dependencies for libfbjni.so | ||||||
|  | 12-09 14:42:23.376 20479 20501 D SoLoader: libflipper.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:42:23.376 20479 20501 D SoLoader: libflipper.so found on /data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/lib/arm64 | ||||||
|  | 12-09 14:42:23.376 20479 20501 D SoLoader: Not resolving dependencies for libflipper.so | ||||||
|  | 12-09 14:42:23.392 20479 20506 D TrafficStats: tagSocket(94) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:23.394 20479 20505 D TrafficStats: tagSocket(73) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:23.417 20479 20479 W .awesomeproject: Accessing hidden field Landroid/view/View;->mKeyedTags:Landroid/util/SparseArray; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.419 20479 20479 W .awesomeproject: Accessing hidden field Landroid/view/View;->mListenerInfo:Landroid/view/View$ListenerInfo; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.419 20479 20479 W .awesomeproject: Accessing hidden field Landroid/view/View$ListenerInfo;->mOnClickListener:Landroid/view/View$OnClickListener; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.421 20479 20479 I flipper : flipper: FlipperClient::addPlugin Inspector | ||||||
|  | 12-09 14:42:23.421 20479 20479 I flipper : flipper: FlipperClient::addPlugin React | ||||||
|  | 12-09 14:42:23.421 20479 20479 I flipper : flipper: FlipperClient::addPlugin Databases | ||||||
|  | 12-09 14:42:23.421 20479 20479 I flipper : flipper: FlipperClient::addPlugin Preferences | ||||||
|  | 12-09 14:42:23.421 20479 20479 I flipper : flipper: FlipperClient::addPlugin CrashReporter | ||||||
|  | 12-09 14:42:23.422 20479 20479 I flipper : flipper: FlipperClient::addPlugin Network | ||||||
|  | 12-09 14:42:23.433 20479 20496 I UsageTrackerFacilitator: Usage tracking enabled | ||||||
|  | 12-09 14:42:23.434 20479 20496 I TestRequestBuilder: Scanning classpath to find tests in paths [/data/app/~~R6aC-CFkvZ4rMQCulaSKZw==/com.awesomeproject.test-CZ6b6zb4B0IQtWld4WWUew==/base.apk] | ||||||
|  | 12-09 14:42:23.435 20479 20496 W .awesomeproject: Opening an oat file without a class loader. Are you using the deprecated DexFile APIs? | ||||||
|  | 12-09 14:42:23.526 20479 20500 W System.err: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". | ||||||
|  | 12-09 14:42:23.607 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:42:23.607 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:42:23.607 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:42:23.607 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityHierarchyCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:42:23.608 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/AccessibilityViewCheckResult; annotation class 6432 | ||||||
|  | 12-09 14:42:23.608 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/ClusteringUtils; annotation class 6432 | ||||||
|  | 12-09 14:42:23.608 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/Question; annotation class 6432 | ||||||
|  | 12-09 14:42:23.610 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/replacements/TextUtils; annotation class 6431 | ||||||
|  | 12-09 14:42:23.611 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:42:23.611 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:42:23.611 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElementAndroid; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:42:23.612 20479 20496 W .awesomeproject: Unable to resolve Lcom/google/android/apps/common/testing/accessibility/framework/uielement/ViewHierarchyElement; annotation class 6432 | ||||||
|  | 12-09 14:42:23.627 20479 20500 W System.err: SLF4J: Defaulting to no-operation (NOP) logger implementation | ||||||
|  | 12-09 14:42:23.631 20479 20500 W System.err: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. | ||||||
|  | 12-09 14:42:23.675 20479 20526 D TrafficStats: tagSocket(96) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:23.802 20479 20496 D TestExecutor: Adding listener androidx.test.internal.runner.listener.LogRunListener | ||||||
|  | 12-09 14:42:23.803 20479 20496 D TestExecutor: Adding listener androidx.test.internal.runner.listener.InstrumentationResultPrinter | ||||||
|  | 12-09 14:42:23.803 20479 20496 D TestExecutor: Adding listener androidx.test.internal.runner.listener.ActivityFinisherRunListener | ||||||
|  | 12-09 14:42:23.803 20479 20496 I TestRunner: run started: 1 tests | ||||||
|  | 12-09 14:42:23.804 20479 20496 I TestRunner: started: runDetoxTests(com.awesomeproject.DetoxTest) | ||||||
|  | 12-09 14:42:23.808 20479 20496 D EventInjectionStrategy: Creating injection strategy with input manager. | ||||||
|  | 12-09 14:42:23.808 20479 20496 W .awesomeproject: Accessing hidden method Landroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager; (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.808 20479 20496 W .awesomeproject: Accessing hidden method Landroid/hardware/input/InputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.808 20479 20496 W .awesomeproject: Accessing hidden field Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.810 20479 20496 W .awesomeproject: Accessing hidden field Ljava/lang/reflect/Field;->accessFlags:I (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.832 20479 20531 D libEGL  : loaded /vendor/lib64/egl/libEGL_emulation.so | ||||||
|  | 12-09 14:42:23.841 20479 20531 D libEGL  : loaded /vendor/lib64/egl/libGLESv1_CM_emulation.so | ||||||
|  | 12-09 14:42:23.881 20479 20479 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@10bff7d in: PRE_ON_CREATE | ||||||
|  | 12-09 14:42:23.905 20479 20479 W .awesomeproject: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.907 20479 20479 W .awesomeproject: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed) | ||||||
|  | 12-09 14:42:23.908 20479 20479 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@10bff7d in: CREATED | ||||||
|  | 12-09 14:42:23.908 20479 20479 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@10bff7d in: STARTED | ||||||
|  | 12-09 14:42:23.910 20479 20531 D libEGL  : loaded /vendor/lib64/egl/libGLESv2_emulation.so | ||||||
|  | 12-09 14:42:23.911 20479 20479 D LifecycleMonitor: Lifecycle status change: com.awesomeproject.MainActivity@10bff7d in: RESUMED | ||||||
|  | 12-09 14:42:23.919 20479 20479 W unknown:ReactNative: Packager connection already open, nooping. | ||||||
|  | 12-09 14:42:23.931 20479 20534 D TrafficStats: tagSocket(102) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:23.972 20479 20530 D HostConnection: createUnique: call | ||||||
|  | 12-09 14:42:23.974 20479 20530 D HostConnection: HostConnection::get() New Host Connection established 0xb4000077d3ba7910, tid 20530 | ||||||
|  | 12-09 14:42:23.992 20479 20530 D HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma ANDROID_EMU_hwc_multi_configs GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0  | ||||||
|  | 12-09 14:42:23.995 20479 20530 W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... | ||||||
|  | 12-09 14:42:23.995 20479 20530 W OpenGLRenderer: Failed to initialize 101010-2 format, error = EGL_SUCCESS | ||||||
|  | 12-09 14:42:24.005 20479 20530 D EGL_emulation: eglCreateContext: 0xb4000077d3ba6c50: maj 3 min 0 rcv 3 | ||||||
|  | 12-09 14:42:24.008 20479 20530 D EGL_emulation: eglMakeCurrent: 0xb4000077d3ba6c50: ver 3 0 (tinfo 0x79f25a4080) (first time) | ||||||
|  | 12-09 14:42:24.020 20479 20530 I Gralloc4: mapper 4.x is not supported | ||||||
|  | 12-09 14:42:24.023 20479 20530 D HostConnection: createUnique: call | ||||||
|  | 12-09 14:42:24.023 20479 20530 D HostConnection: HostConnection::get() New Host Connection established 0xb4000077d3ba7a90, tid 20530 | ||||||
|  | 12-09 14:42:24.024 20479 20530 D goldfish-address-space: allocate: Ask for block of size 0x100 | ||||||
|  | 12-09 14:42:24.024 20479 20530 D goldfish-address-space: allocate: ioctl allocate returned offset 0x1efff8000 size 0x8000 | ||||||
|  | 12-09 14:42:24.024 20479 20530 W Gralloc4: allocator 4.x is not supported | ||||||
|  | 12-09 14:42:24.028 20479 20530 D HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma ANDROID_EMU_hwc_multi_configs GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0  | ||||||
|  | 12-09 14:42:24.061 20479 20530 W Parcel  : Expecting binder but got null! | ||||||
|  | 12-09 14:42:24.076 20479 20479 D CompatibilityChangeReporter: Compat change id reported: 210923482; UID 10186; state: DISABLED | ||||||
|  | 12-09 14:42:24.076 20479 20479 D CompatibilityChangeReporter: Compat change id reported: 37756858; UID 10186; state: ENABLED | ||||||
|  | 12-09 14:42:24.110 20479 20534 W unknown:ReactNative: Could not parse DebugServerException from: {"originModulePath":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js","targetModuleName":"react-native-update","message":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m","errors":[{"description":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m"}],"name":"Error","stack":"Error: Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m\n    at ModuleResolver.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:158:15)\n    at DependencyGraph.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph.js:231:43)\n    at Object.resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/lib/transformHelpers.js:129:24)\n    at resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)\n    at /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/ | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: org.json.JSONException: No value for filename | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at org.json.JSONObject.get(JSONObject.java:398) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at org.json.JSONObject.getString(JSONObject.java:559) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.common.DebugServerException.parse(DebugServerException.java:77) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processBundleResult(BundleDownloader.java:251) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$200(BundleDownloader.java:34) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$2.onChunkComplete(BundleDownloader.java:193) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.emitChunk(MultipartStreamReader.java:70) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.readAllParts(MultipartStreamReader.java:152) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processMultipartResponse(BundleDownloader.java:177) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$100(BundleDownloader.java:34) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$1.onResponse(BundleDownloader.java:147) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) | ||||||
|  | 12-09 14:42:24.115 20479 20534 W unknown:ReactNative: 	at java.lang.Thread.run(Thread.java:1012) | ||||||
|  | 12-09 14:42:24.120 20479 20530 W Parcel  : Expecting binder but got null! | ||||||
|  | 12-09 14:42:24.142 20479 20534 E unknown:ReactNative: Unable to download JS bundle | ||||||
|  | 12-09 14:42:24.142 20479 20534 E unknown:ReactNative: com.facebook.react.common.DebugServerException: The development server returned response error code: 500 | ||||||
|  | 12-09 14:42:24.142 20479 20534 E unknown:ReactNative:  | ||||||
|  | 12-09 14:42:24.142 20479 20534 E unknown:ReactNative: URL: http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.awesomeproject&modulesOnly=false&runModule=true | ||||||
|  | 12-09 14:42:24.142 20479 20534 E unknown:ReactNative:  | ||||||
|  | 12-09 14:42:24.142 20479 20534 E unknown:ReactNative: Body: | ||||||
|  | 12-09 14:42:24.144 20479 20534 E unknown:ReactNative: {"originModulePath":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js","targetModuleName":"react-native-update","message":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m","errors":[{"description":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m"}],"name":"Error","stack":"Error: Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m\n    at ModuleResolver.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:158:15)\n    at DependencyGraph.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph.js:231:43)\n    at Object.resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/lib/transformHelpers.js:129:24)\n    at resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)\n    at /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processBundleResult(BundleDownloader.java:264) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$200(BundleDownloader.java:34) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$2.onChunkComplete(BundleDownloader.java:193) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.emitChunk(MultipartStreamReader.java:70) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.readAllParts(MultipartStreamReader.java:152) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processMultipartResponse(BundleDownloader.java:177) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$100(BundleDownloader.java:34) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$1.onResponse(BundleDownloader.java:147) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) | ||||||
|  | 12-09 14:42:24.146 20479 20534 E unknown:ReactNative: 	at java.lang.Thread.run(Thread.java:1012) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: Exception in native call | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: com.facebook.react.common.DebugServerException: The development server returned response error code: 500 | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative:  | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: URL: http://localhost:8081/index.bundle?platform=android&dev=true&minify=false&app=com.awesomeproject&modulesOnly=false&runModule=true | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative:  | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: Body: | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: {"originModulePath":"/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js","targetModuleName":"react-native-update","message":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m","errors":[{"description":"Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m"}],"name":"Error","stack":"Error: Unable to resolve module react-native-update from /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/src/index.js: react-native-update could not be found within the project or in these directories:\n  node_modules\n  ../../node_modules\n  ../../../../../node_modules\n\u001b[0m \u001b[90m 23 |\u001b[39m   downloadAndInstallApk\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 24 |\u001b[39m   cInfo\u001b[33m,\u001b[39m\u001b[0m\n\u001b[0m\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 25 |\u001b[39m } \u001b[36mfrom\u001b[39m \u001b[32m'react-native-update'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m    |\u001b[39m         \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 26 |\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 27 |\u001b[39m \u001b[36mimport\u001b[39m \u001b[33mTestConsole\u001b[39m \u001b[36mfrom\u001b[39m \u001b[32m'./TestConsole'\u001b[39m\u001b[33m;\u001b[39m\u001b[0m\n\u001b[0m \u001b[90m 28 |\u001b[39m\u001b[0m\n    at ModuleResolver.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:158:15)\n    at DependencyGraph.resolveDependency (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/node-haste/DependencyGraph.js:231:43)\n    at Object.resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/lib/transformHelpers.js:129:24)\n    at resolve (/Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies.js:396:33)\n    at /Users/arvinh/Desktop/wooza/react-native-pushy/Example/testHotUpdate/node_modules/metro/src/DeltaBundler/traverseDependencies | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processBundleResult(BundleDownloader.java:264) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$200(BundleDownloader.java:34) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$2.onChunkComplete(BundleDownloader.java:193) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.emitChunk(MultipartStreamReader.java:70) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.MultipartStreamReader.readAllParts(MultipartStreamReader.java:152) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.processMultipartResponse(BundleDownloader.java:177) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader.access$100(BundleDownloader.java:34) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at com.facebook.react.devsupport.BundleDownloader$1.onResponse(BundleDownloader.java:147) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) | ||||||
|  | 12-09 14:42:24.156 20479 20479 E unknown:ReactNative: 	at java.lang.Thread.run(Thread.java:1012) | ||||||
|  | 12-09 14:42:24.158 20479 20479 D CompatibilityChangeReporter: Compat change id reported: 171228096; UID 10186; state: ENABLED | ||||||
|  | 12-09 14:42:24.220 20479 20530 W Parcel  : Expecting binder but got null! | ||||||
|  | 12-09 14:42:24.256 20479 20496 I Detox   : Detox server connection details: url=ws://localhost:56416, sessionId=f4aa1b39-7f49-6a1e-2016-8fceba85b11b | ||||||
|  | 12-09 14:42:24.260 20479 20542 I DetoxDispatcher: Handling action '_init' (ID #0)... | ||||||
|  | 12-09 14:42:24.261 20479 20542 I Detox   : Connecting to server... | ||||||
|  | 12-09 14:42:24.261 20479 20542 I DetoxWSClient: At connectToServer | ||||||
|  | 12-09 14:42:24.272 20479 20544 D TrafficStats: tagSocket(146) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:24.278 20479 20544 D DetoxWSClient: At onOpen | ||||||
|  | 12-09 14:42:24.278 20479 20544 I DetoxWSClient: Sending out action 'login' (ID #0) | ||||||
|  | 12-09 14:42:24.281 20479 20544 I Detox   : Connected to server! | ||||||
|  | 12-09 14:42:24.286 20479 20544 D DetoxWSClient: Received action 'loginSuccess' (ID #0, params={"testerConnected":true,"appConnected":true}) | ||||||
|  | 12-09 14:42:24.287 20479 20544 D DetoxWSClient: Received action 'isReady' (ID #-1000, params={}) | ||||||
|  | 12-09 14:42:24.413 20479 20505 D SoLoader: libreactnativejni.so not found on /data/data/com.awesomeproject/lib-main | ||||||
|  | 12-09 14:42:24.413 20479 20505 D SoLoader: libreactnativejni.so found on /data/app/~~nor3xECowNstcCaNgZMqcA==/com.awesomeproject-XMs4tnOIKVIebcwvA5vvUA==/lib/arm64 | ||||||
|  | 12-09 14:42:24.413 20479 20505 D SoLoader: Not resolving dependencies for libreactnativejni.so | ||||||
|  | 12-09 14:42:25.689 20479 20548 D TrafficStats: tagSocket(150) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:25.821 20479 20530 D EGL_emulation: app_time_stats: avg=399.97ms min=4.14ms max=1335.74ms count=4 | ||||||
|  | 12-09 14:42:27.702 20479 20550 D TrafficStats: tagSocket(128) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:29.758 20479 20552 D TrafficStats: tagSocket(128) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:34.286 20479 20544 D DetoxWSClient: Received action 'currentStatus' (ID #1, params={}) | ||||||
|  | 12-09 14:42:34.287 20479 20543 I DetoxDispatcher: Handling action 'currentStatus' (ID #1)... | ||||||
|  | 12-09 14:42:39.816 20479 20566 D TrafficStats: tagSocket(144) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:41.834 20479 20569 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:43.844 20479 20574 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:45.855 20479 20586 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:55.896 20479 20592 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:57.909 20479 20594 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:42:59.922 20479 20596 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:01.932 20479 20598 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:11.978 20479 20604 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:13.989 20479 20606 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:15.999 20479 20608 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:18.009 20479 20610 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:28.068 20479 20616 D TrafficStats: tagSocket(99) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:30.082 20479 20618 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:32.093 20479 20620 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:34.105 20479 20622 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:44.152 20479 20629 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1 | ||||||
|  | 12-09 14:43:46.159 20479 206 | ||||||
							
								
								
									
										
											BIN
										
									
								
								Example/testHotUpdate/cache/test-butler-app.apk
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Example/testHotUpdate/cache/test-butler-app.apk
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,5 +1,4 @@ | |||||||
| import {by, device, element, expect} from 'detox'; | import {by, device, element, expect, waitFor} from 'detox'; | ||||||
|  |  | ||||||
| describe('测试Native模块的方法', () => { | describe('测试Native模块的方法', () => { | ||||||
|   beforeAll(async () => { |   beforeAll(async () => { | ||||||
|     await device.launchApp(); |     await device.launchApp(); | ||||||
| @@ -7,83 +6,118 @@ describe('测试Native模块的方法', () => { | |||||||
|  |  | ||||||
|   it('setLocalHashInfo', async () => { |   it('setLocalHashInfo', async () => { | ||||||
|     await element(by.id('testcase')).longPress(); |     await element(by.id('testcase')).longPress(); | ||||||
|     await element(by.id('setLocalHashInfo')).tap(); |     await element(by.id('setLocalHashInfo')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('done'))).toBeVisible(); |     await expect(element(by.id('done'))).toBeVisible(); | ||||||
|     await element(by.text('OK')).tap(); |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('getLocalHashInfo', async () => { |   it('getLocalHashInfo', async () => { | ||||||
|     await element(by.id('getLocalHashInfo')).tap(); |     await element(by.id('getLocalHashInfo')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('done'))).toBeVisible(); |     await expect(element(by.text('done'))).toBeVisible(); | ||||||
|     await element(by.text('OK')).tap(); |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('setUuid', async () => { |   it('setUuid', async () => { | ||||||
|     await element(by.id('setUuid')).tap(); |     await element(by.id('setUuid')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('done'))).toBeVisible(); |     await expect(element(by.text('done'))).toBeVisible(); | ||||||
|     await element(by.text('OK')).tap(); |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('setBlockUpdate', async () => { |   it('setBlockUpdate', async () => { | ||||||
|     await element(by.id('setBlockUpdate')).tap(); |     await element(by.id('setBlockUpdate')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('done'))).toBeVisible(); |     await expect(element(by.text('done'))).toBeVisible(); | ||||||
|     await element(by.text('OK')).tap(); |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |   if (device.getPlatform() === 'android') { | ||||||
|   // it('reloadUpdate', async () => { |     it('reloadUpdate', async () => { | ||||||
|   //   await element(by.id('reloadUpdate')).tap(); |       await element(by.id('reloadUpdate')).longPress(); | ||||||
|   //   await element(by.id('submit')).tap(); |       await element(by.id('submit')).longPress(); | ||||||
|   //   await expect(element(by.text('刚刚更新失败了,版本被回滚.'))).toBeVisible(); |       await waitFor(element(by.text('确认'))) | ||||||
|   //   await element(by.text('OK')).tap(); |         .toBeVisible() | ||||||
|   // }); |         .withTimeout(10000); | ||||||
|  |       await element(by.id('done')).longPress(); | ||||||
|  |       await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   it('setNeedUpdate', async () => { |   it('setNeedUpdate', async () => { | ||||||
|     // await element(by.id('testcase')).longPress(); |     await element(by.id('setNeedUpdate')).longPress(); | ||||||
|     await element(by.id('setNeedUpdate')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |  | ||||||
|     await expect(element(by.text('done'))).toBeVisible(); |     await expect(element(by.text('done'))).toBeVisible(); | ||||||
|     await element(by.text('OK')).tap(); |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('markSuccess', async () => { |   if (device.getPlatform() === 'android') { | ||||||
|     await element(by.id('markSuccess')).tap(); |     it('markSuccess', async () => { | ||||||
|     await element(by.id('submit')).tap(); |       await element(by.id('markSuccess')).longPress(); | ||||||
|     await expect(element(by.text('done'))).toBeVisible(); |       await element(by.id('submit')).longPress(); | ||||||
|     await element(by.text('OK')).tap(); |       await waitFor(element(by.text('确认'))) | ||||||
|   }); |         .toBeVisible() | ||||||
|  |         .withTimeout(10000); | ||||||
|  |       await element(by.id('done')).longPress(); | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   it('downloadPatchFromPpk', async () => { |   it('downloadPatchFromPpk', async () => { | ||||||
|     await element(by.id('downloadPatchFromPpk')).tap(); |     await element(by.id('downloadPatchFromPpk')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('failed to open zip file'))).toBeVisible(); |     if (device.getPlatform() === 'ios') { | ||||||
|     await element(by.text('OK')).tap(); |       await expect(element(by.text('failed to open zip file'))).toBeVisible(); | ||||||
|  |     } else { | ||||||
|  |       await waitFor(element(by.text('确认'))) | ||||||
|  |         .toBeVisible() | ||||||
|  |         .withTimeout(10000); | ||||||
|  |     } | ||||||
|  |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('downloadPatchFromPackage', async () => { |   it('downloadPatchFromPackage', async () => { | ||||||
|     await element(by.id('downloadPatchFromPackage')).tap(); |     await element(by.id('downloadPatchFromPackage')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('failed to open zip file'))).toBeVisible(); |     if (device.getPlatform() === 'ios') { | ||||||
|     await element(by.text('OK')).tap(); |       await expect(element(by.text('failed to open zip file'))).toBeVisible(); | ||||||
|  |     } else { | ||||||
|  |       await waitFor(element(by.text('确认'))) | ||||||
|  |         .toBeVisible() | ||||||
|  |         .withTimeout(10000); | ||||||
|  |     } | ||||||
|  |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   it('downloadFullUpdate', async () => { |   it('downloadFullUpdate', async () => { | ||||||
|     await element(by.id('downloadFullUpdate')).tap(); |     await element(by.id('downloadFullUpdate')).longPress(); | ||||||
|     await element(by.id('submit')).tap(); |     await element(by.id('submit')).longPress(); | ||||||
|     await expect(element(by.text('failed to open zip file'))).toBeVisible(); |     if (device.getPlatform() === 'ios') { | ||||||
|     await element(by.text('OK')).tap(); |       await expect(element(by.text('failed to open zip file'))).toBeVisible(); | ||||||
|  |     } else { | ||||||
|  |       await waitFor(element(by.text('确认'))) | ||||||
|  |         .toBeVisible() | ||||||
|  |         .withTimeout(10000); | ||||||
|  |     } | ||||||
|  |     await element(by.id('done')).longPress(); | ||||||
|  |     await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   if (device.getPlatform() === 'android') { |   if (device.getPlatform() === 'android') { | ||||||
|     it('downloadAndInstallApk', async () => { |     it('downloadAndInstallApk', async () => { | ||||||
|       await element(by.id('testcase')).longPress(); |       await element(by.id('downloadAndInstallApk')).longPress(); | ||||||
|       await element(by.id('downloadAndInstallApk')).tap(); |       await element(by.id('submit')).longPress(); | ||||||
|       await element(by.id('submit')).tap(); |       await waitFor(element(by.text('确认'))) | ||||||
|       await expect(element(by.text('failed to open zip file'))).toBeVisible(); |         .toBeVisible() | ||||||
|       await element(by.text('OK')).tap(); |         .withTimeout(10000); | ||||||
|  |       await element(by.id('done')).longPress(); | ||||||
|  |       await expect(element(by.id('done'))).toBeNotVisible(); | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -1,29 +0,0 @@ | |||||||
| import { execSync } from 'child_process'; |  | ||||||
|  |  | ||||||
| import { pathExists, ensureDir } from 'fs-extra'; |  | ||||||
|  |  | ||||||
| import { resolveConfig } from 'detox/internals'; |  | ||||||
| import { globalSetup } from 'detox/runners/jest'; |  | ||||||
|  |  | ||||||
| export default async function customGlobalSetup() { |  | ||||||
|   const config = await resolveConfig(); |  | ||||||
|   if (config.device.type === 'android.emulator') { |  | ||||||
|     await downloadTestButlerAPK(); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   await globalSetup(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| async function downloadTestButlerAPK() { |  | ||||||
|   const version = '2.2.1'; |  | ||||||
|   const artifactUrl = `https://repo1.maven.org/maven2/com/linkedin/testbutler/test-butler-app/${version}/test-butler-app-${version}.apk`; |  | ||||||
|   const filePath = `cache/test-butler-app.apk`; |  | ||||||
|  |  | ||||||
|   await ensureDir('cache'); |  | ||||||
|   if (!(await pathExists(filePath))) { |  | ||||||
|     console.log(`\nDownloading Test-Butler APK v${version}...`); |  | ||||||
|     execSync(`curl -f -o ${filePath} ${artifactUrl}`); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = customGlobalSetup; |  | ||||||
| @@ -1,16 +1,16 @@ | |||||||
| /** @type {import('jest').Config} */ | /** @type {import('@jest/types').Config.InitialOptions} */ | ||||||
| module.exports = { | module.exports = { | ||||||
|   maxWorkers: 1, |   rootDir: '..', | ||||||
|   globalSetup: './globalSetup.ts', |   testMatch: ['<rootDir>/e2e/**/*.test.js'], | ||||||
|   globalTeardown: 'detox/runners/jest/globalTeardown', |  | ||||||
|   testEnvironment: 'detox/runners/jest/testEnvironment', |  | ||||||
|   setupFilesAfterEnv: ['./setup.ts'], |  | ||||||
|   testRunner: 'jest-circus/runner', |  | ||||||
|   testTimeout: 120000, |   testTimeout: 120000, | ||||||
|  |   maxWorkers: 1, | ||||||
|   testMatch: ['**/*.test.ts'], |   testMatch: ['**/*.test.ts'], | ||||||
|   transform: { |   transform: { | ||||||
|     '\\.tsx?$': 'ts-jest', |     '\\.tsx?$': 'ts-jest', | ||||||
|   }, |   }, | ||||||
|  |   globalSetup: 'detox/runners/jest/globalSetup', | ||||||
|  |   globalTeardown: 'detox/runners/jest/globalTeardown', | ||||||
|   reporters: ['detox/runners/jest/reporter'], |   reporters: ['detox/runners/jest/reporter'], | ||||||
|  |   testEnvironment: 'detox/runners/jest/testEnvironment', | ||||||
|   verbose: true, |   verbose: true, | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -1,5 +0,0 @@ | |||||||
| import { device } from 'detox'; |  | ||||||
|  |  | ||||||
| beforeAll(async () => { |  | ||||||
|   await device.launchApp(); |  | ||||||
| }); |  | ||||||
| @@ -7,12 +7,12 @@ | |||||||
| 	objects = { | 	objects = { | ||||||
| 
 | 
 | ||||||
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||||
| 		00E356F31AD99517003FC87E /* testHotupdateTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* testHotupdateTests.m */; }; | 		00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* AwesomeProjectTests.m */; }; | ||||||
| 		0C80B921A6F3F58F76C31292 /* libPods-testHotupdate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-testHotupdate.a */; }; | 		0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */; }; | ||||||
| 		13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; | 		13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; | ||||||
| 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | ||||||
| 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | ||||||
| 		7699B88040F8A987B510C191 /* libPods-testHotupdate-testHotupdateTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-testHotupdate-testHotupdateTests.a */; }; | 		7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */; }; | ||||||
| 		81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; | 		81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; | ||||||
| /* End PBXBuildFile section */ | /* End PBXBuildFile section */ | ||||||
| 
 | 
 | ||||||
| @@ -22,27 +22,27 @@ | |||||||
| 			containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; | 			containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; | ||||||
| 			proxyType = 1; | 			proxyType = 1; | ||||||
| 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | ||||||
| 			remoteInfo = testHotupdate; | 			remoteInfo = AwesomeProject; | ||||||
| 		}; | 		}; | ||||||
| /* End PBXContainerItemProxy section */ | /* End PBXContainerItemProxy section */ | ||||||
| 
 | 
 | ||||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||||
| 		00E356EE1AD99517003FC87E /* testHotupdateTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = testHotupdateTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | 		00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AwesomeProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||||||
| 		00E356F21AD99517003FC87E /* testHotupdateTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = testHotupdateTests.m; sourceTree = "<group>"; }; | 		00E356F21AD99517003FC87E /* AwesomeProjectTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AwesomeProjectTests.m; sourceTree = "<group>"; }; | ||||||
| 		13B07F961A680F5B00A75B9A /* testHotupdate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testHotupdate.app; sourceTree = BUILT_PRODUCTS_DIR; }; | 		13B07F961A680F5B00A75B9A /* AwesomeProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AwesomeProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = testHotupdate/AppDelegate.h; sourceTree = "<group>"; }; | 		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AwesomeProject/AppDelegate.h; sourceTree = "<group>"; }; | ||||||
| 		13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = testHotupdate/AppDelegate.mm; sourceTree = "<group>"; }; | 		13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = AwesomeProject/AppDelegate.mm; sourceTree = "<group>"; }; | ||||||
| 		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = testHotupdate/Images.xcassets; sourceTree = "<group>"; }; | 		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AwesomeProject/Images.xcassets; sourceTree = "<group>"; }; | ||||||
| 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = testHotupdate/Info.plist; sourceTree = "<group>"; }; | 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AwesomeProject/Info.plist; sourceTree = "<group>"; }; | ||||||
| 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = testHotupdate/main.m; sourceTree = "<group>"; }; | 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AwesomeProject/main.m; sourceTree = "<group>"; }; | ||||||
| 		19F6CBCC0A4E27FBF8BF4A61 /* libPods-testHotupdate-testHotupdateTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-testHotupdate-testHotupdateTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | 		19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject-AwesomeProjectTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		3B4392A12AC88292D35C810B /* Pods-testHotupdate.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-testHotupdate.debug.xcconfig"; path = "Target Support Files/Pods-testHotupdate/Pods-testHotupdate.debug.xcconfig"; sourceTree = "<group>"; }; | 		3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.debug.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		5709B34CF0A7D63546082F79 /* Pods-testHotupdate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-testHotupdate.release.xcconfig"; path = "Target Support Files/Pods-testHotupdate/Pods-testHotupdate.release.xcconfig"; sourceTree = "<group>"; }; | 		5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject.release.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		5B7EB9410499542E8C5724F5 /* Pods-testHotupdate-testHotupdateTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-testHotupdate-testHotupdateTests.debug.xcconfig"; path = "Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests.debug.xcconfig"; sourceTree = "<group>"; }; | 		5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		5DCACB8F33CDC322A6C60F78 /* libPods-testHotupdate.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-testHotupdate.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | 		5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AwesomeProject.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = testHotupdate/LaunchScreen.storyboard; sourceTree = "<group>"; }; | 		81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AwesomeProject/LaunchScreen.storyboard; sourceTree = "<group>"; }; | ||||||
| 		89C6BE57DB24E9ADA2F236DE /* Pods-testHotupdate-testHotupdateTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-testHotupdate-testHotupdateTests.release.xcconfig"; path = "Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests.release.xcconfig"; sourceTree = "<group>"; }; | 		89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; path = "Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | ||||||
| /* End PBXFileReference section */ | /* End PBXFileReference section */ | ||||||
| 
 | 
 | ||||||
| @@ -51,7 +51,7 @@ | |||||||
| 			isa = PBXFrameworksBuildPhase; | 			isa = PBXFrameworksBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				7699B88040F8A987B510C191 /* libPods-testHotupdate-testHotupdateTests.a in Frameworks */, | 				7699B88040F8A987B510C191 /* libPods-AwesomeProject-AwesomeProjectTests.a in Frameworks */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| @@ -59,20 +59,20 @@ | |||||||
| 			isa = PBXFrameworksBuildPhase; | 			isa = PBXFrameworksBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				0C80B921A6F3F58F76C31292 /* libPods-testHotupdate.a in Frameworks */, | 				0C80B921A6F3F58F76C31292 /* libPods-AwesomeProject.a in Frameworks */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| /* End PBXFrameworksBuildPhase section */ | /* End PBXFrameworksBuildPhase section */ | ||||||
| 
 | 
 | ||||||
| /* Begin PBXGroup section */ | /* Begin PBXGroup section */ | ||||||
| 		00E356EF1AD99517003FC87E /* testHotupdateTests */ = { | 		00E356EF1AD99517003FC87E /* AwesomeProjectTests */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				00E356F21AD99517003FC87E /* testHotupdateTests.m */, | 				00E356F21AD99517003FC87E /* AwesomeProjectTests.m */, | ||||||
| 				00E356F01AD99517003FC87E /* Supporting Files */, | 				00E356F01AD99517003FC87E /* Supporting Files */, | ||||||
| 			); | 			); | ||||||
| 			path = testHotupdateTests; | 			path = AwesomeProjectTests; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
| 		00E356F01AD99517003FC87E /* Supporting Files */ = { | 		00E356F01AD99517003FC87E /* Supporting Files */ = { | ||||||
| @@ -83,7 +83,7 @@ | |||||||
| 			name = "Supporting Files"; | 			name = "Supporting Files"; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
| 		13B07FAE1A68108700A75B9A /* testHotupdate */ = { | 		13B07FAE1A68108700A75B9A /* AwesomeProject */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				13B07FAF1A68108700A75B9A /* AppDelegate.h */, | 				13B07FAF1A68108700A75B9A /* AppDelegate.h */, | ||||||
| @@ -93,15 +93,15 @@ | |||||||
| 				81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, | 				81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, | ||||||
| 				13B07FB71A68108700A75B9A /* main.m */, | 				13B07FB71A68108700A75B9A /* main.m */, | ||||||
| 			); | 			); | ||||||
| 			name = testHotupdate; | 			name = AwesomeProject; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
| 		2D16E6871FA4F8E400B85C8A /* Frameworks */ = { | 		2D16E6871FA4F8E400B85C8A /* Frameworks */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | ||||||
| 				5DCACB8F33CDC322A6C60F78 /* libPods-testHotupdate.a */, | 				5DCACB8F33CDC322A6C60F78 /* libPods-AwesomeProject.a */, | ||||||
| 				19F6CBCC0A4E27FBF8BF4A61 /* libPods-testHotupdate-testHotupdateTests.a */, | 				19F6CBCC0A4E27FBF8BF4A61 /* libPods-AwesomeProject-AwesomeProjectTests.a */, | ||||||
| 			); | 			); | ||||||
| 			name = Frameworks; | 			name = Frameworks; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| @@ -116,9 +116,9 @@ | |||||||
| 		83CBB9F61A601CBA00E9B192 = { | 		83CBB9F61A601CBA00E9B192 = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				13B07FAE1A68108700A75B9A /* testHotupdate */, | 				13B07FAE1A68108700A75B9A /* AwesomeProject */, | ||||||
| 				832341AE1AAA6A7D00B99B32 /* Libraries */, | 				832341AE1AAA6A7D00B99B32 /* Libraries */, | ||||||
| 				00E356EF1AD99517003FC87E /* testHotupdateTests */, | 				00E356EF1AD99517003FC87E /* AwesomeProjectTests */, | ||||||
| 				83CBBA001A601CBA00E9B192 /* Products */, | 				83CBBA001A601CBA00E9B192 /* Products */, | ||||||
| 				2D16E6871FA4F8E400B85C8A /* Frameworks */, | 				2D16E6871FA4F8E400B85C8A /* Frameworks */, | ||||||
| 				BBD78D7AC51CEA395F1C20DB /* Pods */, | 				BBD78D7AC51CEA395F1C20DB /* Pods */, | ||||||
| @@ -131,8 +131,8 @@ | |||||||
| 		83CBBA001A601CBA00E9B192 /* Products */ = { | 		83CBBA001A601CBA00E9B192 /* Products */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				13B07F961A680F5B00A75B9A /* testHotupdate.app */, | 				13B07F961A680F5B00A75B9A /* AwesomeProject.app */, | ||||||
| 				00E356EE1AD99517003FC87E /* testHotupdateTests.xctest */, | 				00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */, | ||||||
| 			); | 			); | ||||||
| 			name = Products; | 			name = Products; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| @@ -140,10 +140,10 @@ | |||||||
| 		BBD78D7AC51CEA395F1C20DB /* Pods */ = { | 		BBD78D7AC51CEA395F1C20DB /* Pods */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				3B4392A12AC88292D35C810B /* Pods-testHotupdate.debug.xcconfig */, | 				3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */, | ||||||
| 				5709B34CF0A7D63546082F79 /* Pods-testHotupdate.release.xcconfig */, | 				5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */, | ||||||
| 				5B7EB9410499542E8C5724F5 /* Pods-testHotupdate-testHotupdateTests.debug.xcconfig */, | 				5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */, | ||||||
| 				89C6BE57DB24E9ADA2F236DE /* Pods-testHotupdate-testHotupdateTests.release.xcconfig */, | 				89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */, | ||||||
| 			); | 			); | ||||||
| 			path = Pods; | 			path = Pods; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| @@ -151,9 +151,9 @@ | |||||||
| /* End PBXGroup section */ | /* End PBXGroup section */ | ||||||
| 
 | 
 | ||||||
| /* Begin PBXNativeTarget section */ | /* Begin PBXNativeTarget section */ | ||||||
| 		00E356ED1AD99517003FC87E /* testHotupdateTests */ = { | 		00E356ED1AD99517003FC87E /* AwesomeProjectTests */ = { | ||||||
| 			isa = PBXNativeTarget; | 			isa = PBXNativeTarget; | ||||||
| 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "testHotupdateTests" */; | 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */; | ||||||
| 			buildPhases = ( | 			buildPhases = ( | ||||||
| 				A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, | 				A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, | ||||||
| 				00E356EA1AD99517003FC87E /* Sources */, | 				00E356EA1AD99517003FC87E /* Sources */, | ||||||
| @@ -167,14 +167,14 @@ | |||||||
| 			dependencies = ( | 			dependencies = ( | ||||||
| 				00E356F51AD99517003FC87E /* PBXTargetDependency */, | 				00E356F51AD99517003FC87E /* PBXTargetDependency */, | ||||||
| 			); | 			); | ||||||
| 			name = testHotupdateTests; | 			name = AwesomeProjectTests; | ||||||
| 			productName = testHotupdateTests; | 			productName = AwesomeProjectTests; | ||||||
| 			productReference = 00E356EE1AD99517003FC87E /* testHotupdateTests.xctest */; | 			productReference = 00E356EE1AD99517003FC87E /* AwesomeProjectTests.xctest */; | ||||||
| 			productType = "com.apple.product-type.bundle.unit-test"; | 			productType = "com.apple.product-type.bundle.unit-test"; | ||||||
| 		}; | 		}; | ||||||
| 		13B07F861A680F5B00A75B9A /* testHotupdate */ = { | 		13B07F861A680F5B00A75B9A /* AwesomeProject */ = { | ||||||
| 			isa = PBXNativeTarget; | 			isa = PBXNativeTarget; | ||||||
| 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "testHotupdate" */; | 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */; | ||||||
| 			buildPhases = ( | 			buildPhases = ( | ||||||
| 				C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, | 				C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, | ||||||
| 				FD10A7F022414F080027D42C /* Start Packager */, | 				FD10A7F022414F080027D42C /* Start Packager */, | ||||||
| @@ -189,9 +189,9 @@ | |||||||
| 			); | 			); | ||||||
| 			dependencies = ( | 			dependencies = ( | ||||||
| 			); | 			); | ||||||
| 			name = testHotupdate; | 			name = AwesomeProject; | ||||||
| 			productName = testHotupdate; | 			productName = AwesomeProject; | ||||||
| 			productReference = 13B07F961A680F5B00A75B9A /* testHotupdate.app */; | 			productReference = 13B07F961A680F5B00A75B9A /* AwesomeProject.app */; | ||||||
| 			productType = "com.apple.product-type.application"; | 			productType = "com.apple.product-type.application"; | ||||||
| 		}; | 		}; | ||||||
| /* End PBXNativeTarget section */ | /* End PBXNativeTarget section */ | ||||||
| @@ -211,7 +211,7 @@ | |||||||
| 					}; | 					}; | ||||||
| 				}; | 				}; | ||||||
| 			}; | 			}; | ||||||
| 			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "testHotUpdate" */; | 			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */; | ||||||
| 			compatibilityVersion = "Xcode 12.0"; | 			compatibilityVersion = "Xcode 12.0"; | ||||||
| 			developmentRegion = en; | 			developmentRegion = en; | ||||||
| 			hasScannedForEncodings = 0; | 			hasScannedForEncodings = 0; | ||||||
| @@ -224,8 +224,8 @@ | |||||||
| 			projectDirPath = ""; | 			projectDirPath = ""; | ||||||
| 			projectRoot = ""; | 			projectRoot = ""; | ||||||
| 			targets = ( | 			targets = ( | ||||||
| 				13B07F861A680F5B00A75B9A /* testHotupdate */, | 				13B07F861A680F5B00A75B9A /* AwesomeProject */, | ||||||
| 				00E356ED1AD99517003FC87E /* testHotupdateTests */, | 				00E356ED1AD99517003FC87E /* AwesomeProjectTests */, | ||||||
| 			); | 			); | ||||||
| 		}; | 		}; | ||||||
| /* End PBXProject section */ | /* End PBXProject section */ | ||||||
| @@ -272,15 +272,15 @@ | |||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputFileListPaths = ( | 			inputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate/Pods-testHotupdate-frameworks-${CONFIGURATION}-input-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			name = "[CP] Embed Pods Frameworks"; | 			name = "[CP] Embed Pods Frameworks"; | ||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate/Pods-testHotupdate-frameworks-${CONFIGURATION}-output-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-testHotupdate/Pods-testHotupdate-frameworks.sh\"\n"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-frameworks.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { | 		A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { | ||||||
| @@ -298,7 +298,7 @@ | |||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 			); | 			); | ||||||
| 			outputPaths = ( | 			outputPaths = ( | ||||||
| 				"$(DERIVED_FILE_DIR)/Pods-testHotupdate-testHotupdateTests-checkManifestLockResult.txt", | 				"$(DERIVED_FILE_DIR)/Pods-AwesomeProject-AwesomeProjectTests-checkManifestLockResult.txt", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| @@ -320,7 +320,7 @@ | |||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 			); | 			); | ||||||
| 			outputPaths = ( | 			outputPaths = ( | ||||||
| 				"$(DERIVED_FILE_DIR)/Pods-testHotupdate-checkManifestLockResult.txt", | 				"$(DERIVED_FILE_DIR)/Pods-AwesomeProject-checkManifestLockResult.txt", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| @@ -333,15 +333,15 @@ | |||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputFileListPaths = ( | 			inputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			name = "[CP] Embed Pods Frameworks"; | 			name = "[CP] Embed Pods Frameworks"; | ||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests-frameworks.sh\"\n"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-frameworks.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { | 		E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { | ||||||
| @@ -350,15 +350,15 @@ | |||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputFileListPaths = ( | 			inputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate/Pods-testHotupdate-resources-${CONFIGURATION}-input-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			name = "[CP] Copy Pods Resources"; | 			name = "[CP] Copy Pods Resources"; | ||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate/Pods-testHotupdate-resources-${CONFIGURATION}-output-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-testHotupdate/Pods-testHotupdate-resources.sh\"\n"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject/Pods-AwesomeProject-resources.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { | 		F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { | ||||||
| @@ -367,15 +367,15 @@ | |||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputFileListPaths = ( | 			inputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests-resources-${CONFIGURATION}-input-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			name = "[CP] Copy Pods Resources"; | 			name = "[CP] Copy Pods Resources"; | ||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests-resources-${CONFIGURATION}-output-files.xcfilelist", | 				"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-testHotupdate-testHotupdateTests/Pods-testHotupdate-testHotupdateTests-resources.sh\"\n"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AwesomeProject-AwesomeProjectTests/Pods-AwesomeProject-AwesomeProjectTests-resources.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		FD10A7F022414F080027D42C /* Start Packager */ = { | 		FD10A7F022414F080027D42C /* Start Packager */ = { | ||||||
| @@ -404,7 +404,7 @@ | |||||||
| 			isa = PBXSourcesBuildPhase; | 			isa = PBXSourcesBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				00E356F31AD99517003FC87E /* testHotupdateTests.m in Sources */, | 				00E356F31AD99517003FC87E /* AwesomeProjectTests.m in Sources */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| @@ -422,7 +422,7 @@ | |||||||
| /* Begin PBXTargetDependency section */ | /* Begin PBXTargetDependency section */ | ||||||
| 		00E356F51AD99517003FC87E /* PBXTargetDependency */ = { | 		00E356F51AD99517003FC87E /* PBXTargetDependency */ = { | ||||||
| 			isa = PBXTargetDependency; | 			isa = PBXTargetDependency; | ||||||
| 			target = 13B07F861A680F5B00A75B9A /* testHotupdate */; | 			target = 13B07F861A680F5B00A75B9A /* AwesomeProject */; | ||||||
| 			targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | 			targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | ||||||
| 		}; | 		}; | ||||||
| /* End PBXTargetDependency section */ | /* End PBXTargetDependency section */ | ||||||
| @@ -430,14 +430,14 @@ | |||||||
| /* Begin XCBuildConfiguration section */ | /* Begin XCBuildConfiguration section */ | ||||||
| 		00E356F61AD99517003FC87E /* Debug */ = { | 		00E356F61AD99517003FC87E /* Debug */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-testHotupdate-testHotupdateTests.debug.xcconfig */; | 			baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-AwesomeProject-AwesomeProjectTests.debug.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				BUNDLE_LOADER = "$(TEST_HOST)"; | 				BUNDLE_LOADER = "$(TEST_HOST)"; | ||||||
| 				GCC_PREPROCESSOR_DEFINITIONS = ( | 				GCC_PREPROCESSOR_DEFINITIONS = ( | ||||||
| 					"DEBUG=1", | 					"DEBUG=1", | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 				); | 				); | ||||||
| 				INFOPLIST_FILE = testHotupdateTests/Info.plist; | 				INFOPLIST_FILE = AwesomeProjectTests/Info.plist; | ||||||
| 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = ( | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| @@ -451,17 +451,17 @@ | |||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/testHotupdate.app/testHotupdate"; | 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; | ||||||
| 			}; | 			}; | ||||||
| 			name = Debug; | 			name = Debug; | ||||||
| 		}; | 		}; | ||||||
| 		00E356F71AD99517003FC87E /* Release */ = { | 		00E356F71AD99517003FC87E /* Release */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-testHotupdate-testHotupdateTests.release.xcconfig */; | 			baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-AwesomeProject-AwesomeProjectTests.release.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				BUNDLE_LOADER = "$(TEST_HOST)"; | 				BUNDLE_LOADER = "$(TEST_HOST)"; | ||||||
| 				COPY_PHASE_STRIP = NO; | 				COPY_PHASE_STRIP = NO; | ||||||
| 				INFOPLIST_FILE = testHotupdateTests/Info.plist; | 				INFOPLIST_FILE = AwesomeProjectTests/Info.plist; | ||||||
| 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = ( | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| @@ -475,31 +475,30 @@ | |||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/testHotupdate.app/testHotupdate"; | 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AwesomeProject.app/AwesomeProject"; | ||||||
| 			}; | 			}; | ||||||
| 			name = Release; | 			name = Release; | ||||||
| 		}; | 		}; | ||||||
| 		13B07F941A680F5B00A75B9A /* Debug */ = { | 		13B07F941A680F5B00A75B9A /* Debug */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-testHotupdate.debug.xcconfig */; | 			baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-AwesomeProject.debug.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||||
| 				CLANG_ENABLE_MODULES = YES; | 				CLANG_ENABLE_MODULES = YES; | ||||||
| 				CURRENT_PROJECT_VERSION = 1; | 				CURRENT_PROJECT_VERSION = 1; | ||||||
| 				ENABLE_BITCODE = NO; | 				ENABLE_BITCODE = NO; | ||||||
| 				INFOPLIST_FILE = testHotupdate/Info.plist; | 				INFOPLIST_FILE = AwesomeProject/Info.plist; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = ( | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"@executable_path/Frameworks", | 					"@executable_path/Frameworks", | ||||||
| 				); | 				); | ||||||
| 				MARKETING_VERSION = 1.0; |  | ||||||
| 				OTHER_LDFLAGS = ( | 				OTHER_LDFLAGS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"-ObjC", | 					"-ObjC", | ||||||
| 					"-lc++", | 					"-lc++", | ||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = testHotupdate; | 				PRODUCT_NAME = AwesomeProject; | ||||||
| 				SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | 				SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||||||
| 				SWIFT_VERSION = 5.0; | 				SWIFT_VERSION = 5.0; | ||||||
| 				VERSIONING_SYSTEM = "apple-generic"; | 				VERSIONING_SYSTEM = "apple-generic"; | ||||||
| @@ -508,24 +507,23 @@ | |||||||
| 		}; | 		}; | ||||||
| 		13B07F951A680F5B00A75B9A /* Release */ = { | 		13B07F951A680F5B00A75B9A /* Release */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-testHotupdate.release.xcconfig */; | 			baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-AwesomeProject.release.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||||
| 				CLANG_ENABLE_MODULES = YES; | 				CLANG_ENABLE_MODULES = YES; | ||||||
| 				CURRENT_PROJECT_VERSION = 1; | 				CURRENT_PROJECT_VERSION = 1; | ||||||
| 				INFOPLIST_FILE = testHotupdate/Info.plist; | 				INFOPLIST_FILE = AwesomeProject/Info.plist; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = ( | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"@executable_path/Frameworks", | 					"@executable_path/Frameworks", | ||||||
| 				); | 				); | ||||||
| 				MARKETING_VERSION = 1.0; |  | ||||||
| 				OTHER_LDFLAGS = ( | 				OTHER_LDFLAGS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"-ObjC", | 					"-ObjC", | ||||||
| 					"-lc++", | 					"-lc++", | ||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = testHotupdate; | 				PRODUCT_NAME = AwesomeProject; | ||||||
| 				SWIFT_VERSION = 5.0; | 				SWIFT_VERSION = 5.0; | ||||||
| 				VERSIONING_SYSTEM = "apple-generic"; | 				VERSIONING_SYSTEM = "apple-generic"; | ||||||
| 			}; | 			}; | ||||||
| @@ -564,7 +562,7 @@ | |||||||
| 				COPY_PHASE_STRIP = NO; | 				COPY_PHASE_STRIP = NO; | ||||||
| 				ENABLE_STRICT_OBJC_MSGSEND = YES; | 				ENABLE_STRICT_OBJC_MSGSEND = YES; | ||||||
| 				ENABLE_TESTABILITY = YES; | 				ENABLE_TESTABILITY = YES; | ||||||
| 				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; | 				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | ||||||
| 				GCC_C_LANGUAGE_STANDARD = gnu99; | 				GCC_C_LANGUAGE_STANDARD = gnu99; | ||||||
| 				GCC_DYNAMIC_NO_PIC = NO; | 				GCC_DYNAMIC_NO_PIC = NO; | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; | 				GCC_NO_COMMON_BLOCKS = YES; | ||||||
| @@ -636,7 +634,7 @@ | |||||||
| 				COPY_PHASE_STRIP = YES; | 				COPY_PHASE_STRIP = YES; | ||||||
| 				ENABLE_NS_ASSERTIONS = NO; | 				ENABLE_NS_ASSERTIONS = NO; | ||||||
| 				ENABLE_STRICT_OBJC_MSGSEND = YES; | 				ENABLE_STRICT_OBJC_MSGSEND = YES; | ||||||
| 				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; | 				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | ||||||
| 				GCC_C_LANGUAGE_STANDARD = gnu99; | 				GCC_C_LANGUAGE_STANDARD = gnu99; | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; | 				GCC_NO_COMMON_BLOCKS = YES; | ||||||
| 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||||||
| @@ -671,7 +669,7 @@ | |||||||
| /* End XCBuildConfiguration section */ | /* End XCBuildConfiguration section */ | ||||||
| 
 | 
 | ||||||
| /* Begin XCConfigurationList section */ | /* Begin XCConfigurationList section */ | ||||||
| 		00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "testHotupdateTests" */ = { | 		00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "AwesomeProjectTests" */ = { | ||||||
| 			isa = XCConfigurationList; | 			isa = XCConfigurationList; | ||||||
| 			buildConfigurations = ( | 			buildConfigurations = ( | ||||||
| 				00E356F61AD99517003FC87E /* Debug */, | 				00E356F61AD99517003FC87E /* Debug */, | ||||||
| @@ -680,7 +678,7 @@ | |||||||
| 			defaultConfigurationIsVisible = 0; | 			defaultConfigurationIsVisible = 0; | ||||||
| 			defaultConfigurationName = Release; | 			defaultConfigurationName = Release; | ||||||
| 		}; | 		}; | ||||||
| 		13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "testHotupdate" */ = { | 		13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AwesomeProject" */ = { | ||||||
| 			isa = XCConfigurationList; | 			isa = XCConfigurationList; | ||||||
| 			buildConfigurations = ( | 			buildConfigurations = ( | ||||||
| 				13B07F941A680F5B00A75B9A /* Debug */, | 				13B07F941A680F5B00A75B9A /* Debug */, | ||||||
| @@ -689,7 +687,7 @@ | |||||||
| 			defaultConfigurationIsVisible = 0; | 			defaultConfigurationIsVisible = 0; | ||||||
| 			defaultConfigurationName = Release; | 			defaultConfigurationName = Release; | ||||||
| 		}; | 		}; | ||||||
| 		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "testHotUpdate" */ = { | 		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AwesomeProject" */ = { | ||||||
| 			isa = XCConfigurationList; | 			isa = XCConfigurationList; | ||||||
| 			buildConfigurations = ( | 			buildConfigurations = ( | ||||||
| 				83CBBA201A601CBA00E9B192 /* Debug */, | 				83CBBA201A601CBA00E9B192 /* Debug */, | ||||||
| @@ -15,9 +15,9 @@ | |||||||
|             <BuildableReference |             <BuildableReference | ||||||
|                BuildableIdentifier = "primary" |                BuildableIdentifier = "primary" | ||||||
|                BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |                BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | ||||||
|                BuildableName = "testHotupdate.app" |                BuildableName = "AwesomeProject.app" | ||||||
|                BlueprintName = "testHotupdate" |                BlueprintName = "AwesomeProject" | ||||||
|                ReferencedContainer = "container:testHotupdate.xcodeproj"> |                ReferencedContainer = "container:AwesomeProject.xcodeproj"> | ||||||
|             </BuildableReference> |             </BuildableReference> | ||||||
|          </BuildActionEntry> |          </BuildActionEntry> | ||||||
|       </BuildActionEntries> |       </BuildActionEntries> | ||||||
| @@ -33,9 +33,9 @@ | |||||||
|             <BuildableReference |             <BuildableReference | ||||||
|                BuildableIdentifier = "primary" |                BuildableIdentifier = "primary" | ||||||
|                BlueprintIdentifier = "00E356ED1AD99517003FC87E" |                BlueprintIdentifier = "00E356ED1AD99517003FC87E" | ||||||
|                BuildableName = "testHotupdateTests.xctest" |                BuildableName = "AwesomeProjectTests.xctest" | ||||||
|                BlueprintName = "testHotupdateTests" |                BlueprintName = "AwesomeProjectTests" | ||||||
|                ReferencedContainer = "container:testHotupdate.xcodeproj"> |                ReferencedContainer = "container:AwesomeProject.xcodeproj"> | ||||||
|             </BuildableReference> |             </BuildableReference> | ||||||
|          </TestableReference> |          </TestableReference> | ||||||
|       </Testables> |       </Testables> | ||||||
| @@ -55,9 +55,9 @@ | |||||||
|          <BuildableReference |          <BuildableReference | ||||||
|             BuildableIdentifier = "primary" |             BuildableIdentifier = "primary" | ||||||
|             BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |             BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | ||||||
|             BuildableName = "testHotupdate.app" |             BuildableName = "AwesomeProject.app" | ||||||
|             BlueprintName = "testHotupdate" |             BlueprintName = "AwesomeProject" | ||||||
|             ReferencedContainer = "container:testHotupdate.xcodeproj"> |             ReferencedContainer = "container:AwesomeProject.xcodeproj"> | ||||||
|          </BuildableReference> |          </BuildableReference> | ||||||
|       </BuildableProductRunnable> |       </BuildableProductRunnable> | ||||||
|    </LaunchAction> |    </LaunchAction> | ||||||
| @@ -72,9 +72,9 @@ | |||||||
|          <BuildableReference |          <BuildableReference | ||||||
|             BuildableIdentifier = "primary" |             BuildableIdentifier = "primary" | ||||||
|             BlueprintIdentifier = "13B07F861A680F5B00A75B9A" |             BlueprintIdentifier = "13B07F861A680F5B00A75B9A" | ||||||
|             BuildableName = "testHotupdate.app" |             BuildableName = "AwesomeProject.app" | ||||||
|             BlueprintName = "testHotupdate" |             BlueprintName = "AwesomeProject" | ||||||
|             ReferencedContainer = "container:testHotupdate.xcodeproj"> |             ReferencedContainer = "container:AwesomeProject.xcodeproj"> | ||||||
|          </BuildableReference> |          </BuildableReference> | ||||||
|       </BuildableProductRunnable> |       </BuildableProductRunnable> | ||||||
|    </ProfileAction> |    </ProfileAction> | ||||||
| @@ -2,12 +2,9 @@ | |||||||
| <Workspace | <Workspace | ||||||
|    version = "1.0"> |    version = "1.0"> | ||||||
|    <FileRef |    <FileRef | ||||||
|       location = "group:testHotupdate.xcodeproj"> |       location = "group:AwesomeProject.xcodeproj"> | ||||||
|    </FileRef> |    </FileRef> | ||||||
|    <FileRef |    <FileRef | ||||||
|       location = "group:Pods/Pods.xcodeproj"> |       location = "group:Pods/Pods.xcodeproj"> | ||||||
|    </FileRef> |    </FileRef> | ||||||
|    <FileRef |  | ||||||
|       location = "group:testHotUpdate.xcodeproj"> |  | ||||||
|    </FileRef> |  | ||||||
| </Workspace> | </Workspace> | ||||||
							
								
								
									
										8
									
								
								Example/testHotUpdate/ios/AwesomeProject/AppDelegate.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Example/testHotUpdate/ios/AwesomeProject/AppDelegate.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | #import <React/RCTBridgeDelegate.h> | ||||||
|  | #import <UIKit/UIKit.h> | ||||||
|  |  | ||||||
|  | @interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate> | ||||||
|  |  | ||||||
|  | @property (nonatomic, strong) UIWindow *window; | ||||||
|  |  | ||||||
|  | @end | ||||||
							
								
								
									
										133
									
								
								Example/testHotUpdate/ios/AwesomeProject/AppDelegate.mm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								Example/testHotUpdate/ios/AwesomeProject/AppDelegate.mm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | |||||||
|  | #import "AppDelegate.h" | ||||||
|  |  | ||||||
|  | #import <React/RCTBridge.h> | ||||||
|  | #import <React/RCTBundleURLProvider.h> | ||||||
|  | #import <React/RCTRootView.h> | ||||||
|  |  | ||||||
|  | #import <React/RCTAppSetupUtils.h> | ||||||
|  |  | ||||||
|  | #if RCT_NEW_ARCH_ENABLED | ||||||
|  | #import <React/CoreModulesPlugins.h> | ||||||
|  | #import <React/RCTCxxBridgeDelegate.h> | ||||||
|  | #import <React/RCTFabricSurfaceHostingProxyRootView.h> | ||||||
|  | #import <React/RCTSurfacePresenter.h> | ||||||
|  | #import <React/RCTSurfacePresenterBridgeAdapter.h> | ||||||
|  | #import <ReactCommon/RCTTurboModuleManager.h> | ||||||
|  |  | ||||||
|  | #import <react/config/ReactNativeConfig.h> | ||||||
|  |  | ||||||
|  | static NSString *const kRNConcurrentRoot = @"concurrentRoot"; | ||||||
|  |  | ||||||
|  | @interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> { | ||||||
|  |   RCTTurboModuleManager *_turboModuleManager; | ||||||
|  |   RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; | ||||||
|  |   std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig; | ||||||
|  |   facebook::react::ContextContainer::Shared _contextContainer; | ||||||
|  | } | ||||||
|  | @end | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @implementation AppDelegate | ||||||
|  |  | ||||||
|  | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | ||||||
|  | { | ||||||
|  |   RCTAppSetupPrepareApp(application); | ||||||
|  |  | ||||||
|  |   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | ||||||
|  |  | ||||||
|  | #if RCT_NEW_ARCH_ENABLED | ||||||
|  |   _contextContainer = std::make_shared<facebook::react::ContextContainer const>(); | ||||||
|  |   _reactNativeConfig = std::make_shared<facebook::react::EmptyReactNativeConfig const>(); | ||||||
|  |   _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); | ||||||
|  |   _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; | ||||||
|  |   bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |   NSDictionary *initProps = [self prepareInitialProps]; | ||||||
|  |   UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"AwesomeProject", initProps); | ||||||
|  |  | ||||||
|  |   if (@available(iOS 13.0, *)) { | ||||||
|  |     rootView.backgroundColor = [UIColor systemBackgroundColor]; | ||||||
|  |   } else { | ||||||
|  |     rootView.backgroundColor = [UIColor whiteColor]; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | ||||||
|  |   UIViewController *rootViewController = [UIViewController new]; | ||||||
|  |   rootViewController.view = rootView; | ||||||
|  |   self.window.rootViewController = rootViewController; | ||||||
|  |   [self.window makeKeyAndVisible]; | ||||||
|  |   return YES; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. | ||||||
|  | /// | ||||||
|  | /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html | ||||||
|  | /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). | ||||||
|  | /// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. | ||||||
|  | - (BOOL)concurrentRootEnabled | ||||||
|  | { | ||||||
|  |   // Switch this bool to turn on and off the concurrent root | ||||||
|  |   return true; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (NSDictionary *)prepareInitialProps | ||||||
|  | { | ||||||
|  |   NSMutableDictionary *initProps = [NSMutableDictionary new]; | ||||||
|  |  | ||||||
|  | #ifdef RCT_NEW_ARCH_ENABLED | ||||||
|  |   initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |   return initProps; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | ||||||
|  | { | ||||||
|  | #if DEBUG | ||||||
|  |   return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; | ||||||
|  | #else | ||||||
|  |   return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #if RCT_NEW_ARCH_ENABLED | ||||||
|  |  | ||||||
|  | #pragma mark - RCTCxxBridgeDelegate | ||||||
|  |  | ||||||
|  | - (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge | ||||||
|  | { | ||||||
|  |   _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge | ||||||
|  |                                                              delegate:self | ||||||
|  |                                                             jsInvoker:bridge.jsCallInvoker]; | ||||||
|  |   return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #pragma mark RCTTurboModuleManagerDelegate | ||||||
|  |  | ||||||
|  | - (Class)getModuleClassFromName:(const char *)name | ||||||
|  | { | ||||||
|  |   return RCTCoreModulesClassProvider(name); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | ||||||
|  |                                                       jsInvoker:(std::shared_ptr<facebook::react::CallInvoker>)jsInvoker | ||||||
|  | { | ||||||
|  |   return nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | ||||||
|  |                                                      initParams: | ||||||
|  |                                                          (const facebook::react::ObjCTurboModule::InitParams &)params | ||||||
|  | { | ||||||
|  |   return nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass | ||||||
|  | { | ||||||
|  |   return RCTAppSetupDefaultModuleFromClass(moduleClass); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @end | ||||||
| @@ -5,7 +5,7 @@ | |||||||
| 	<key>CFBundleDevelopmentRegion</key> | 	<key>CFBundleDevelopmentRegion</key> | ||||||
| 	<string>en</string> | 	<string>en</string> | ||||||
| 	<key>CFBundleDisplayName</key> | 	<key>CFBundleDisplayName</key> | ||||||
| 	<string>testHotupdate</string> | 	<string>AwesomeProject</string> | ||||||
| 	<key>CFBundleExecutable</key> | 	<key>CFBundleExecutable</key> | ||||||
| 	<string>$(EXECUTABLE_NAME)</string> | 	<string>$(EXECUTABLE_NAME)</string> | ||||||
| 	<key>CFBundleIdentifier</key> | 	<key>CFBundleIdentifier</key> | ||||||
| @@ -17,11 +17,11 @@ | |||||||
| 	<key>CFBundlePackageType</key> | 	<key>CFBundlePackageType</key> | ||||||
| 	<string>APPL</string> | 	<string>APPL</string> | ||||||
| 	<key>CFBundleShortVersionString</key> | 	<key>CFBundleShortVersionString</key> | ||||||
| 	<string>$(MARKETING_VERSION)</string> | 	<string>1.0</string> | ||||||
| 	<key>CFBundleSignature</key> | 	<key>CFBundleSignature</key> | ||||||
| 	<string>????</string> | 	<string>????</string> | ||||||
| 	<key>CFBundleVersion</key> | 	<key>CFBundleVersion</key> | ||||||
| 	<string>$(CURRENT_PROJECT_VERSION)</string> | 	<string>1</string> | ||||||
| 	<key>LSRequiresIPhoneOS</key> | 	<key>LSRequiresIPhoneOS</key> | ||||||
| 	<true/> | 	<true/> | ||||||
| 	<key>NSLocationWhenInUseUsageDescription</key> | 	<key>NSLocationWhenInUseUsageDescription</key> | ||||||
| @@ -16,7 +16,7 @@ | |||||||
|                         <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |                         <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||||||
|                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||||||
|                         <subviews> |                         <subviews> | ||||||
|                             <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="testHotupdate" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb"> |                             <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AwesomeProject" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb"> | ||||||
|                                 <rect key="frame" x="0.0" y="202" width="375" height="43"/> |                                 <rect key="frame" x="0.0" y="202" width="375" height="43"/> | ||||||
|                                 <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> |                                 <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> | ||||||
|                                 <nil key="highlightedColor"/> |                                 <nil key="highlightedColor"/> | ||||||
| @@ -7,11 +7,11 @@ | |||||||
| #define TIMEOUT_SECONDS 600 | #define TIMEOUT_SECONDS 600 | ||||||
| #define TEXT_TO_LOOK_FOR @"Welcome to React" | #define TEXT_TO_LOOK_FOR @"Welcome to React" | ||||||
| 
 | 
 | ||||||
| @interface testHotupdateTests : XCTestCase | @interface AwesomeProjectTests : XCTestCase | ||||||
| 
 | 
 | ||||||
| @end | @end | ||||||
| 
 | 
 | ||||||
| @implementation testHotupdateTests | @implementation AwesomeProjectTests | ||||||
| 
 | 
 | ||||||
| - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test | ||||||
| { | { | ||||||
| @@ -1,27 +1,12 @@ | |||||||
| require_relative '../node_modules/react-native/scripts/react_native_pods' | require_relative '../node_modules/react-native/scripts/react_native_pods' | ||||||
| require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | ||||||
|  |  | ||||||
| platform :ios, min_ios_version_supported | platform :ios, '12.4' | ||||||
| prepare_react_native_project! | install! 'cocoapods', :deterministic_uuids => false | ||||||
|  |  | ||||||
| # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. | production = ENV["PRODUCTION"] == "1" | ||||||
| # because `react-native-flipper` depends on (FlipperKit,...) that will be excluded |  | ||||||
| # |  | ||||||
| # To fix this you can also exclude `react-native-flipper` using a `react-native.config.js` |  | ||||||
| # ```js |  | ||||||
| # module.exports = { |  | ||||||
| #   dependencies: { |  | ||||||
| #     ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), |  | ||||||
| # ``` |  | ||||||
| flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled |  | ||||||
|  |  | ||||||
| linkage = ENV['USE_FRAMEWORKS'] | target 'AwesomeProject' do | ||||||
| if linkage != nil |  | ||||||
|   Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green |  | ||||||
|   use_frameworks! :linkage => linkage.to_sym |  | ||||||
| end |  | ||||||
|  |  | ||||||
| target 'testHotupdate' do |  | ||||||
|   config = use_native_modules! |   config = use_native_modules! | ||||||
|  |  | ||||||
|   # Flags change depending on the env values. |   # Flags change depending on the env values. | ||||||
| @@ -29,32 +14,22 @@ target 'testHotupdate' do | |||||||
|  |  | ||||||
|   use_react_native!( |   use_react_native!( | ||||||
|     :path => config[:reactNativePath], |     :path => config[:reactNativePath], | ||||||
|     # Hermes is now enabled by default. Disable by setting this flag to false. |     # to enable hermes on iOS, change `false` to `true` and then install pods | ||||||
|     # Upcoming versions of React Native may rely on get_default_flags(), but |     :production => production, | ||||||
|     # we make it explicit here to aid in the React Native upgrade process. |  | ||||||
|     :hermes_enabled => flags[:hermes_enabled], |     :hermes_enabled => flags[:hermes_enabled], | ||||||
|     :fabric_enabled => flags[:fabric_enabled], |     :fabric_enabled => flags[:fabric_enabled], | ||||||
|     # Enables Flipper. |     :flipper_configuration => FlipperConfiguration.enabled, | ||||||
|     # |  | ||||||
|     # Note that if you have use_frameworks! enabled, Flipper will not work and |  | ||||||
|     # you should disable the next line. |  | ||||||
|     :flipper_configuration => flipper_config, |  | ||||||
|     # An absolute path to your application root. |     # An absolute path to your application root. | ||||||
|     :app_path => "#{Pod::Config.instance.installation_root}/.." |     :app_path => "#{Pod::Config.instance.installation_root}/.." | ||||||
|   ) |   ) | ||||||
|  |  | ||||||
|   target 'testHotupdateTests' do |   target 'AwesomeProjectTests' do | ||||||
|     inherit! :complete |     inherit! :complete | ||||||
|     # Pods for testing |     # Pods for testing | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   post_install do |installer| |   post_install do |installer| | ||||||
|     react_native_post_install( |     react_native_post_install(installer) | ||||||
|       installer, |  | ||||||
|       # Set `mac_catalyst_enabled` to `true` in order to apply patches |  | ||||||
|       # necessary for Mac Catalyst builds |  | ||||||
|       :mac_catalyst_enabled => false |  | ||||||
|     ) |  | ||||||
|     __apply_Xcode_12_5_M1_post_install_workaround(installer) |     __apply_Xcode_12_5_M1_post_install_workaround(installer) | ||||||
|   end |   end | ||||||
| end | end | ||||||
|   | |||||||
| @@ -2,14 +2,14 @@ PODS: | |||||||
|   - boost (1.76.0) |   - boost (1.76.0) | ||||||
|   - CocoaAsyncSocket (7.6.5) |   - CocoaAsyncSocket (7.6.5) | ||||||
|   - DoubleConversion (1.1.6) |   - DoubleConversion (1.1.6) | ||||||
|   - FBLazyVector (0.71.1) |   - FBLazyVector (0.69.8) | ||||||
|   - FBReactNativeSpec (0.71.1): |   - FBReactNativeSpec (0.69.8): | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - RCTRequired (= 0.71.1) |     - RCTRequired (= 0.69.8) | ||||||
|     - RCTTypeSafety (= 0.71.1) |     - RCTTypeSafety (= 0.69.8) | ||||||
|     - React-Core (= 0.71.1) |     - React-Core (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|   - Flipper (0.125.0): |   - Flipper (0.125.0): | ||||||
|     - Flipper-Folly (~> 2.6) |     - Flipper-Folly (~> 2.6) | ||||||
|     - Flipper-RSocket (~> 1.4) |     - Flipper-RSocket (~> 1.4) | ||||||
| @@ -73,229 +73,216 @@ PODS: | |||||||
|     - FlipperKit/FlipperKitNetworkPlugin |     - FlipperKit/FlipperKitNetworkPlugin | ||||||
|   - fmt (6.2.1) |   - fmt (6.2.1) | ||||||
|   - glog (0.3.5) |   - glog (0.3.5) | ||||||
|   - hermes-engine (0.71.1): |  | ||||||
|     - hermes-engine/Pre-built (= 0.71.1) |  | ||||||
|   - hermes-engine/Pre-built (0.71.1) |  | ||||||
|   - libevent (2.1.12) |   - libevent (2.1.12) | ||||||
|   - OpenSSL-Universal (1.1.1100) |   - OpenSSL-Universal (1.1.1100) | ||||||
|   - RCT-Folly (2021.07.22.00): |   - RCT-Folly (2021.06.28.00-v2): | ||||||
|     - boost |     - boost | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - fmt (~> 6.2.1) |     - fmt (~> 6.2.1) | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly/Default (= 2021.07.22.00) |     - RCT-Folly/Default (= 2021.06.28.00-v2) | ||||||
|   - RCT-Folly/Default (2021.07.22.00): |   - RCT-Folly/Default (2021.06.28.00-v2): | ||||||
|     - boost |     - boost | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - fmt (~> 6.2.1) |     - fmt (~> 6.2.1) | ||||||
|     - glog |     - glog | ||||||
|   - RCT-Folly/Futures (2021.07.22.00): |   - RCTRequired (0.69.8) | ||||||
|     - boost |   - RCTTypeSafety (0.69.8): | ||||||
|     - DoubleConversion |     - FBLazyVector (= 0.69.8) | ||||||
|     - fmt (~> 6.2.1) |     - RCTRequired (= 0.69.8) | ||||||
|  |     - React-Core (= 0.69.8) | ||||||
|  |   - React (0.69.8): | ||||||
|  |     - React-Core (= 0.69.8) | ||||||
|  |     - React-Core/DevSupport (= 0.69.8) | ||||||
|  |     - React-Core/RCTWebSocket (= 0.69.8) | ||||||
|  |     - React-RCTActionSheet (= 0.69.8) | ||||||
|  |     - React-RCTAnimation (= 0.69.8) | ||||||
|  |     - React-RCTBlob (= 0.69.8) | ||||||
|  |     - React-RCTImage (= 0.69.8) | ||||||
|  |     - React-RCTLinking (= 0.69.8) | ||||||
|  |     - React-RCTNetwork (= 0.69.8) | ||||||
|  |     - React-RCTSettings (= 0.69.8) | ||||||
|  |     - React-RCTText (= 0.69.8) | ||||||
|  |     - React-RCTVibration (= 0.69.8) | ||||||
|  |   - React-bridging (0.69.8): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-jsi (= 0.69.8) | ||||||
|  |   - React-callinvoker (0.69.8) | ||||||
|  |   - React-Codegen (0.69.8): | ||||||
|  |     - FBReactNativeSpec (= 0.69.8) | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTRequired (= 0.69.8) | ||||||
|  |     - RCTTypeSafety (= 0.69.8) | ||||||
|  |     - React-Core (= 0.69.8) | ||||||
|  |     - React-jsi (= 0.69.8) | ||||||
|  |     - React-jsiexecutor (= 0.69.8) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|  |   - React-Core (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - libevent |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|   - RCTRequired (0.71.1) |     - React-Core/Default (= 0.69.8) | ||||||
|   - RCTTypeSafety (0.71.1): |     - React-cxxreact (= 0.69.8) | ||||||
|     - FBLazyVector (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - RCTRequired (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-Core (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|   - React (0.71.1): |  | ||||||
|     - React-Core (= 0.71.1) |  | ||||||
|     - React-Core/DevSupport (= 0.71.1) |  | ||||||
|     - React-Core/RCTWebSocket (= 0.71.1) |  | ||||||
|     - React-RCTActionSheet (= 0.71.1) |  | ||||||
|     - React-RCTAnimation (= 0.71.1) |  | ||||||
|     - React-RCTBlob (= 0.71.1) |  | ||||||
|     - React-RCTImage (= 0.71.1) |  | ||||||
|     - React-RCTLinking (= 0.71.1) |  | ||||||
|     - React-RCTNetwork (= 0.71.1) |  | ||||||
|     - React-RCTSettings (= 0.71.1) |  | ||||||
|     - React-RCTText (= 0.71.1) |  | ||||||
|     - React-RCTVibration (= 0.71.1) |  | ||||||
|   - React-callinvoker (0.71.1) |  | ||||||
|   - React-Codegen (0.71.1): |  | ||||||
|     - FBReactNativeSpec |  | ||||||
|     - hermes-engine |  | ||||||
|     - RCT-Folly |  | ||||||
|     - RCTRequired |  | ||||||
|     - RCTTypeSafety |  | ||||||
|     - React-Core |  | ||||||
|     - React-jsi |  | ||||||
|     - React-jsiexecutor |  | ||||||
|     - ReactCommon/turbomodule/bridging |  | ||||||
|     - ReactCommon/turbomodule/core |  | ||||||
|   - React-Core (0.71.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2021.07.22.00) |  | ||||||
|     - React-Core/Default (= 0.71.1) |  | ||||||
|     - React-cxxreact (= 0.71.1) |  | ||||||
|     - React-jsi (= 0.71.1) |  | ||||||
|     - React-jsiexecutor (= 0.71.1) |  | ||||||
|     - React-perflogger (= 0.71.1) |  | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/CoreModulesHeaders (0.71.1): |   - React-Core/CoreModulesHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/Default (0.71.1): |   - React-Core/Default (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/DevSupport (0.71.1): |   - React-Core/DevSupport (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default (= 0.71.1) |     - React-Core/Default (= 0.69.8) | ||||||
|     - React-Core/RCTWebSocket (= 0.71.1) |     - React-Core/RCTWebSocket (= 0.69.8) | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-jsinspector (= 0.71.1) |     - React-jsinspector (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTActionSheetHeaders (0.71.1): |   - React-Core/RCTActionSheetHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTAnimationHeaders (0.71.1): |   - React-Core/RCTAnimationHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTBlobHeaders (0.71.1): |   - React-Core/RCTBlobHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTImageHeaders (0.71.1): |   - React-Core/RCTImageHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTLinkingHeaders (0.71.1): |   - React-Core/RCTLinkingHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTNetworkHeaders (0.71.1): |   - React-Core/RCTNetworkHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTSettingsHeaders (0.71.1): |   - React-Core/RCTSettingsHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTTextHeaders (0.71.1): |   - React-Core/RCTTextHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTVibrationHeaders (0.71.1): |   - React-Core/RCTVibrationHeaders (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default |     - React-Core/Default | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-Core/RCTWebSocket (0.71.1): |   - React-Core/RCTWebSocket (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/Default (= 0.71.1) |     - React-Core/Default (= 0.69.8) | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsiexecutor (= 0.71.1) |     - React-jsiexecutor (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - Yoga |     - Yoga | ||||||
|   - React-CoreModules (0.71.1): |   - React-CoreModules (0.69.8): | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - RCTTypeSafety (= 0.71.1) |     - RCTTypeSafety (= 0.69.8) | ||||||
|     - React-Codegen (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - React-Core/CoreModulesHeaders (= 0.71.1) |     - React-Core/CoreModulesHeaders (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-RCTImage (= 0.71.1) |     - React-RCTImage (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|   - React-cxxreact (0.71.1): |   - React-cxxreact (0.69.8): | ||||||
|     - boost (= 1.76.0) |     - boost (= 1.76.0) | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-callinvoker (= 0.71.1) |     - React-callinvoker (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-jsinspector (= 0.71.1) |     - React-jsinspector (= 0.69.8) | ||||||
|     - React-logger (= 0.71.1) |     - React-logger (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-perflogger (= 0.69.8) | ||||||
|     - React-runtimeexecutor (= 0.71.1) |     - React-runtimeexecutor (= 0.69.8) | ||||||
|   - React-hermes (0.71.1): |   - React-jsi (0.69.8): | ||||||
|     - DoubleConversion |  | ||||||
|     - glog |  | ||||||
|     - hermes-engine |  | ||||||
|     - RCT-Folly (= 2021.07.22.00) |  | ||||||
|     - RCT-Folly/Futures (= 2021.07.22.00) |  | ||||||
|     - React-cxxreact (= 0.71.1) |  | ||||||
|     - React-jsiexecutor (= 0.71.1) |  | ||||||
|     - React-jsinspector (= 0.71.1) |  | ||||||
|     - React-perflogger (= 0.71.1) |  | ||||||
|   - React-jsi (0.71.1): |  | ||||||
|     - boost (= 1.76.0) |     - boost (= 1.76.0) | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - hermes-engine |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - React-jsi/Default (= 0.69.8) | ||||||
|   - React-jsiexecutor (0.71.1): |   - React-jsi/Default (0.69.8): | ||||||
|  |     - boost (= 1.76.0) | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-cxxreact (= 0.71.1) |   - React-jsiexecutor (0.69.8): | ||||||
|     - React-jsi (= 0.71.1) |     - DoubleConversion | ||||||
|     - React-perflogger (= 0.71.1) |     - glog | ||||||
|   - React-jsinspector (0.71.1) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|   - React-logger (0.71.1): |     - React-cxxreact (= 0.69.8) | ||||||
|  |     - React-jsi (= 0.69.8) | ||||||
|  |     - React-perflogger (= 0.69.8) | ||||||
|  |   - React-jsinspector (0.69.8) | ||||||
|  |   - React-logger (0.69.8): | ||||||
|     - glog |     - glog | ||||||
|   - react-native-update (9.0.0): |   - react-native-update (9.0.0): | ||||||
|     - React |     - React | ||||||
| @@ -311,87 +298,72 @@ PODS: | |||||||
|     - React |     - React | ||||||
|     - React-Core |     - React-Core | ||||||
|     - SSZipArchive |     - SSZipArchive | ||||||
|   - React-perflogger (0.71.1) |   - React-perflogger (0.69.8) | ||||||
|   - React-RCTActionSheet (0.71.1): |   - React-RCTActionSheet (0.69.8): | ||||||
|     - React-Core/RCTActionSheetHeaders (= 0.71.1) |     - React-Core/RCTActionSheetHeaders (= 0.69.8) | ||||||
|   - React-RCTAnimation (0.71.1): |   - React-RCTAnimation (0.69.8): | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - RCTTypeSafety (= 0.71.1) |     - RCTTypeSafety (= 0.69.8) | ||||||
|     - React-Codegen (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - React-Core/RCTAnimationHeaders (= 0.71.1) |     - React-Core/RCTAnimationHeaders (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|   - React-RCTAppDelegate (0.71.1): |   - React-RCTBlob (0.69.8): | ||||||
|     - RCT-Folly |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - RCTRequired |     - React-Codegen (= 0.69.8) | ||||||
|     - RCTTypeSafety |     - React-Core/RCTBlobHeaders (= 0.69.8) | ||||||
|     - React-Core |     - React-Core/RCTWebSocket (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core |     - React-jsi (= 0.69.8) | ||||||
|   - React-RCTBlob (0.71.1): |     - React-RCTNetwork (= 0.69.8) | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|     - React-Codegen (= 0.71.1) |   - React-RCTImage (0.69.8): | ||||||
|     - React-Core/RCTBlobHeaders (= 0.71.1) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Core/RCTWebSocket (= 0.71.1) |     - RCTTypeSafety (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - React-RCTNetwork (= 0.71.1) |     - React-Core/RCTImageHeaders (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|   - React-RCTImage (0.71.1): |     - React-RCTNetwork (= 0.69.8) | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|     - RCTTypeSafety (= 0.71.1) |   - React-RCTLinking (0.69.8): | ||||||
|     - React-Codegen (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - React-Core/RCTImageHeaders (= 0.71.1) |     - React-Core/RCTLinkingHeaders (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-RCTNetwork (= 0.71.1) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |   - React-RCTNetwork (0.69.8): | ||||||
|   - React-RCTLinking (0.71.1): |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Codegen (= 0.71.1) |     - RCTTypeSafety (= 0.69.8) | ||||||
|     - React-Core/RCTLinkingHeaders (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-Core/RCTNetworkHeaders (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|   - React-RCTNetwork (0.71.1): |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|     - RCT-Folly (= 2021.07.22.00) |   - React-RCTSettings (0.69.8): | ||||||
|     - RCTTypeSafety (= 0.71.1) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-Codegen (= 0.71.1) |     - RCTTypeSafety (= 0.69.8) | ||||||
|     - React-Core/RCTNetworkHeaders (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-Core/RCTSettingsHeaders (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|   - React-RCTSettings (0.71.1): |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|     - RCT-Folly (= 2021.07.22.00) |   - React-RCTText (0.69.8): | ||||||
|     - RCTTypeSafety (= 0.71.1) |     - React-Core/RCTTextHeaders (= 0.69.8) | ||||||
|     - React-Codegen (= 0.71.1) |   - React-RCTVibration (0.69.8): | ||||||
|     - React-Core/RCTSettingsHeaders (= 0.71.1) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-jsi (= 0.71.1) |     - React-Codegen (= 0.69.8) | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |     - React-Core/RCTVibrationHeaders (= 0.69.8) | ||||||
|   - React-RCTText (0.71.1): |     - React-jsi (= 0.69.8) | ||||||
|     - React-Core/RCTTextHeaders (= 0.71.1) |     - ReactCommon/turbomodule/core (= 0.69.8) | ||||||
|   - React-RCTVibration (0.71.1): |   - React-runtimeexecutor (0.69.8): | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - React-jsi (= 0.69.8) | ||||||
|     - React-Codegen (= 0.71.1) |   - ReactCommon/turbomodule/core (0.69.8): | ||||||
|     - React-Core/RCTVibrationHeaders (= 0.71.1) |  | ||||||
|     - React-jsi (= 0.71.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.71.1) |  | ||||||
|   - React-runtimeexecutor (0.71.1): |  | ||||||
|     - React-jsi (= 0.71.1) |  | ||||||
|   - ReactCommon/turbomodule/bridging (0.71.1): |  | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2021.07.22.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-callinvoker (= 0.71.1) |     - React-bridging (= 0.69.8) | ||||||
|     - React-Core (= 0.71.1) |     - React-callinvoker (= 0.69.8) | ||||||
|     - React-cxxreact (= 0.71.1) |     - React-Core (= 0.69.8) | ||||||
|     - React-jsi (= 0.71.1) |     - React-cxxreact (= 0.69.8) | ||||||
|     - React-logger (= 0.71.1) |     - React-jsi (= 0.69.8) | ||||||
|     - React-perflogger (= 0.71.1) |     - React-logger (= 0.69.8) | ||||||
|   - ReactCommon/turbomodule/core (0.71.1): |     - React-perflogger (= 0.69.8) | ||||||
|     - DoubleConversion |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2021.07.22.00) |  | ||||||
|     - React-callinvoker (= 0.71.1) |  | ||||||
|     - React-Core (= 0.71.1) |  | ||||||
|     - React-cxxreact (= 0.71.1) |  | ||||||
|     - React-jsi (= 0.71.1) |  | ||||||
|     - React-logger (= 0.71.1) |  | ||||||
|     - React-perflogger (= 0.71.1) |  | ||||||
|   - SocketRocket (0.6.0) |   - SocketRocket (0.6.0) | ||||||
|   - SSZipArchive (2.4.3) |   - SSZipArchive (2.4.3) | ||||||
|   - Yoga (1.14.0) |   - Yoga (1.14.0) | ||||||
| @@ -425,13 +397,12 @@ DEPENDENCIES: | |||||||
|   - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) |   - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) | ||||||
|   - FlipperKit/SKIOSNetworkPlugin (= 0.125.0) |   - FlipperKit/SKIOSNetworkPlugin (= 0.125.0) | ||||||
|   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) |   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) | ||||||
|   - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) |  | ||||||
|   - libevent (~> 2.1.12) |  | ||||||
|   - OpenSSL-Universal (= 1.1.1100) |   - OpenSSL-Universal (= 1.1.1100) | ||||||
|   - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) |   - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) | ||||||
|   - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) |   - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) | ||||||
|   - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) |   - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) | ||||||
|   - React (from `../node_modules/react-native/`) |   - React (from `../node_modules/react-native/`) | ||||||
|  |   - React-bridging (from `../node_modules/react-native/ReactCommon`) | ||||||
|   - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) |   - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) | ||||||
|   - React-Codegen (from `build/generated/ios`) |   - React-Codegen (from `build/generated/ios`) | ||||||
|   - React-Core (from `../node_modules/react-native/`) |   - React-Core (from `../node_modules/react-native/`) | ||||||
| @@ -439,7 +410,6 @@ DEPENDENCIES: | |||||||
|   - React-Core/RCTWebSocket (from `../node_modules/react-native/`) |   - React-Core/RCTWebSocket (from `../node_modules/react-native/`) | ||||||
|   - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) |   - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) | ||||||
|   - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) |   - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) | ||||||
|   - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) |  | ||||||
|   - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) |   - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) | ||||||
|   - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) |   - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) | ||||||
|   - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) |   - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) | ||||||
| @@ -448,7 +418,6 @@ DEPENDENCIES: | |||||||
|   - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) |   - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) | ||||||
|   - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) |   - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) | ||||||
|   - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) |   - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) | ||||||
|   - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) |  | ||||||
|   - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) |   - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) | ||||||
|   - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) |   - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) | ||||||
|   - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) |   - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) | ||||||
| @@ -490,8 +459,6 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/React/FBReactNativeSpec" |     :path: "../node_modules/react-native/React/FBReactNativeSpec" | ||||||
|   glog: |   glog: | ||||||
|     :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" |     :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" | ||||||
|   hermes-engine: |  | ||||||
|     :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" |  | ||||||
|   RCT-Folly: |   RCT-Folly: | ||||||
|     :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" |     :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" | ||||||
|   RCTRequired: |   RCTRequired: | ||||||
| @@ -500,6 +467,8 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/Libraries/TypeSafety" |     :path: "../node_modules/react-native/Libraries/TypeSafety" | ||||||
|   React: |   React: | ||||||
|     :path: "../node_modules/react-native/" |     :path: "../node_modules/react-native/" | ||||||
|  |   React-bridging: | ||||||
|  |     :path: "../node_modules/react-native/ReactCommon" | ||||||
|   React-callinvoker: |   React-callinvoker: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/callinvoker" |     :path: "../node_modules/react-native/ReactCommon/callinvoker" | ||||||
|   React-Codegen: |   React-Codegen: | ||||||
| @@ -510,8 +479,6 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/React/CoreModules" |     :path: "../node_modules/react-native/React/CoreModules" | ||||||
|   React-cxxreact: |   React-cxxreact: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/cxxreact" |     :path: "../node_modules/react-native/ReactCommon/cxxreact" | ||||||
|   React-hermes: |  | ||||||
|     :path: "../node_modules/react-native/ReactCommon/hermes" |  | ||||||
|   React-jsi: |   React-jsi: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/jsi" |     :path: "../node_modules/react-native/ReactCommon/jsi" | ||||||
|   React-jsiexecutor: |   React-jsiexecutor: | ||||||
| @@ -528,8 +495,6 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/Libraries/ActionSheetIOS" |     :path: "../node_modules/react-native/Libraries/ActionSheetIOS" | ||||||
|   React-RCTAnimation: |   React-RCTAnimation: | ||||||
|     :path: "../node_modules/react-native/Libraries/NativeAnimation" |     :path: "../node_modules/react-native/Libraries/NativeAnimation" | ||||||
|   React-RCTAppDelegate: |  | ||||||
|     :path: "../node_modules/react-native/Libraries/AppDelegate" |  | ||||||
|   React-RCTBlob: |   React-RCTBlob: | ||||||
|     :path: "../node_modules/react-native/Libraries/Blob" |     :path: "../node_modules/react-native/Libraries/Blob" | ||||||
|   React-RCTImage: |   React-RCTImage: | ||||||
| @@ -552,11 +517,11 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/ReactCommon/yoga" |     :path: "../node_modules/react-native/ReactCommon/yoga" | ||||||
|  |  | ||||||
| SPEC CHECKSUMS: | SPEC CHECKSUMS: | ||||||
|   boost: 57d2868c099736d80fcd648bf211b4431e51a558 |   boost: a7c83b31436843459a1961bfd74b96033dc77234 | ||||||
|   CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 |   CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 | ||||||
|   DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 |   DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 | ||||||
|   FBLazyVector: ad72713385db5289b19f1ead07e8e4aa26dcb01d |   FBLazyVector: c7b6997d41fffaaaf4d18c82bc93885df731e2d0 | ||||||
|   FBReactNativeSpec: df2602c11e33d310433496e28a48b4b2be652a61 |   FBReactNativeSpec: b1217c558a3ae84c2057d9c2ddce88af21379a68 | ||||||
|   Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 |   Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 | ||||||
|   Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c |   Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c | ||||||
|   Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 |   Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 | ||||||
| @@ -567,43 +532,41 @@ SPEC CHECKSUMS: | |||||||
|   Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 |   Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 | ||||||
|   FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 |   FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 | ||||||
|   fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 |   fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 | ||||||
|   glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b |   glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a | ||||||
|   hermes-engine: 922ccd744f50d9bfde09e9677bf0f3b562ea5fb9 |  | ||||||
|   libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 |   libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 | ||||||
|   OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c |   OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c | ||||||
|   RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 |   RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a | ||||||
|   RCTRequired: fd4d923b964658aa0c4091a32c8b2004c6d9e3a6 |   RCTRequired: 344fd6fb3c669da87e91294be7ee0199bf35c701 | ||||||
|   RCTTypeSafety: c276d85975bde3d8448907235c70bf0da257adfd |   RCTTypeSafety: ca608cc1d3a81229632bc0c1136b698b9337c1d8 | ||||||
|   React: e481a67971af1ce9639c9f746b753dd0e84ca108 |   React: 1d76bae8d73113b202224075f0b0bd546996b328 | ||||||
|   React-callinvoker: 1051c04a94fa9d243786b86380606bad701a3b31 |   React-bridging: 2eb62dc8ba31194d285705cb62e24a15753aeaec | ||||||
|   React-Codegen: 14b1e716d361d5ad95e0ce1a338f3fa0733a98b5 |   React-callinvoker: f3cfb045a0fb185445542555d88b6acf385cbedc | ||||||
|   React-Core: 698fc3baecb80d511d987475a16d036cec6d287f |   React-Codegen: 808e2d4d4201583ac89fb40d6862aaa26cb88999 | ||||||
|   React-CoreModules: 59245305f41ff0adfeac334acc0594dea4585a7c |   React-Core: 82c5392ab182252ce4ffbc16794e0e38b32ea9a1 | ||||||
|   React-cxxreact: 49accd2954b0f532805dbcd1918fa6962f32f247 |   React-CoreModules: 4e891a6c0a59b01ca8406e041c7e49ab12e51d48 | ||||||
|   React-hermes: d068733294581a085e95b6024e8d951b005e26d3 |   React-cxxreact: 0dc4ba3d97839bd36d422592ddb0bdfa9940a990 | ||||||
|   React-jsi: 122b9bce14f4c6c7cb58f28f87912cfe091885fa |   React-jsi: dcd936ff5e580dba0d8644ac9ee4ca47bb166df1 | ||||||
|   React-jsiexecutor: 60cf272aababc5212410e4249d17cea14fc36caa |   React-jsiexecutor: 2cf8ea3753afb81dfcc386613dbbb0b5d155fb34 | ||||||
|   React-jsinspector: ff56004b0c974b688a6548c156d5830ad751ae07 |   React-jsinspector: 0eda09e9cf22bbb5dbb1d23143b03a31acf37d67 | ||||||
|   React-logger: 60a0b5f8bed667ecf9e24fecca1f30d125de6d75 |   React-logger: 5997ab008583826c10ffe4e1ff990363e975639d | ||||||
|   react-native-update: 2b5ef06bfeaa668614c8deb7ec4d20dcf56f9278 |   react-native-update: 2b5ef06bfeaa668614c8deb7ec4d20dcf56f9278 | ||||||
|   React-perflogger: ec8eef2a8f03ecfa6361c2c5fb9197ef4a29cc85 |   React-perflogger: ad1416a715d86b32f456e5d0aed99c3b52f1de37 | ||||||
|   React-RCTActionSheet: a0c023b86cf4c862fa9c4eb0f6f91fbe878fb2de |   React-RCTActionSheet: cbf7c6a953982562418ee72a1084ff7b9447b558 | ||||||
|   React-RCTAnimation: 168d53718c74153947c0109f55900faa64d79439 |   React-RCTAnimation: 33df3e25824dd7313edec28dded2745542f9352b | ||||||
|   React-RCTAppDelegate: a8efbab128b34aa07a9491c85a41401210b1bec5 |   React-RCTBlob: 2434411df0d2d0e6567445a995f6678e2cc1d8e3 | ||||||
|   React-RCTBlob: 9bcbfc893bfda9f6b2eb016329d38c0f6366d31a |   React-RCTImage: 0b912ab4255ea5ec903d06c77f5a23cea9e9c988 | ||||||
|   React-RCTImage: 3fcd4570b4b0f1ac2f4b4b6308dba33ce66c5b50 |   React-RCTLinking: eb239c24f4f5fe79c57a2fedf45f34f40481dda3 | ||||||
|   React-RCTLinking: 1edb8e1bb3fc39bf9e13c63d6aaaa3f0c3d18683 |   React-RCTNetwork: db173a6c35c1212909944920a5aa03eb8b7b9cf4 | ||||||
|   React-RCTNetwork: 500a79e0e0f67678077df727fabba87a55c043e1 |   React-RCTSettings: 687fa7538972467d80cd7729b6f86598e1369813 | ||||||
|   React-RCTSettings: cc4414eb84ad756d619076c3999fecbf12896d6f |   React-RCTText: 605ef414f8e72bd111945d3612cd0518de612b24 | ||||||
|   React-RCTText: 2a34261f3da6e34f47a62154def657546ebfa5e1 |   React-RCTVibration: 5462287ee85304ba1a00474665ab292e63a41663 | ||||||
|   React-RCTVibration: 49d531ec8498e0afa2c9b22c2205784372e3d4f3 |   React-runtimeexecutor: 9df680f18497367bcf5c15b6b6406c0f2dfa2b6a | ||||||
|   React-runtimeexecutor: 311feb67600774723fe10eb8801d3138cae9ad67 |   ReactCommon: c10f046f3ef8561e7c8e7e9b9dae2ecc9ffc48ef | ||||||
|   ReactCommon: 03be76588338a27a88d103b35c3c44a3fd43d136 |  | ||||||
|   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 |   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 | ||||||
|   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef |   SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef | ||||||
|   Yoga: 921eb014669cf9c718ada68b08d362517d564e0c |   Yoga: d3820731e0ca3a4933f061ad29defaf7726e3251 | ||||||
|   YogaKit: f782866e155069a2cca2517aafea43200b01fd5a |   YogaKit: f782866e155069a2cca2517aafea43200b01fd5a | ||||||
|  |  | ||||||
| PODFILE CHECKSUM: 3a4760d7ec3a6ffc7497e8723f29129170c8dc0d | PODFILE CHECKSUM: 618d17df10f335f1d113daac849a7997894646b2 | ||||||
|  |  | ||||||
| COCOAPODS: 1.11.3 | COCOAPODS: 1.11.3 | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 696 B | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.2 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.8 KiB | 
| @@ -1,6 +0,0 @@ | |||||||
| #import <RCTAppDelegate.h> |  | ||||||
| #import <UIKit/UIKit.h> |  | ||||||
|  |  | ||||||
| @interface AppDelegate : RCTAppDelegate |  | ||||||
|  |  | ||||||
| @end |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| #import "AppDelegate.h" |  | ||||||
|  |  | ||||||
| #import <React/RCTBundleURLProvider.h> |  | ||||||
| #import "RCTPushy.h" |  | ||||||
|  |  | ||||||
| @implementation AppDelegate |  | ||||||
|  |  | ||||||
| - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |  | ||||||
| { |  | ||||||
|   self.moduleName = @"testHotupdate"; |  | ||||||
|   // You can add your custom initial props in the dictionary below. |  | ||||||
|   // They will be passed down to the ViewController used by React Native. |  | ||||||
|   self.initialProps = @{}; |  | ||||||
|  |  | ||||||
|   return [super application:application didFinishLaunchingWithOptions:launchOptions]; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge |  | ||||||
| { |  | ||||||
| #if DEBUG |  | ||||||
|   return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; |  | ||||||
| #else |  | ||||||
|   // 非DEBUG情况下替换为热更新bundle |  | ||||||
|   return [RCTPushy bundleURL]; |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. |  | ||||||
| /// |  | ||||||
| /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html |  | ||||||
| /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). |  | ||||||
| /// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`. |  | ||||||
| - (BOOL)concurrentRootEnabled |  | ||||||
| { |  | ||||||
|   return true; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @end |  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| { | { | ||||||
|   "name": "testhotupdate", |   "name": "testHotUpdate", | ||||||
|   "version": "0.0.1", |   "version": "0.0.1", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "scripts": { |   "scripts": { | ||||||
| @@ -7,35 +7,27 @@ | |||||||
|     "ios": "react-native run-ios", |     "ios": "react-native run-ios", | ||||||
|     "start": "react-native start", |     "start": "react-native start", | ||||||
|     "test": "jest", |     "test": "jest", | ||||||
|     "lint": "eslint .", |     "test:e2e": "detox test --configuration android.emu.debug", | ||||||
|     "apk": "(cd android && ./gradlew aR)" |     "lint": "eslint ." | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "react": "18.2.0", |     "patch-package": "^6.5.1", | ||||||
|     "react-native": "0.71.1", |     "react": "18.0.0", | ||||||
|  |     "react-native": "0.69.8", | ||||||
|     "react-native-update": "link:../.." |     "react-native-update": "link:../.." | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/core": "^7.20.0", |     "@babel/core": "^7.21.0", | ||||||
|     "@babel/preset-env": "^7.20.0", |     "@babel/runtime": "^7.21.0", | ||||||
|     "@babel/runtime": "^7.20.0", |     "@react-native-community/eslint-config": "^3.2.0", | ||||||
|     "@react-native-community/eslint-config": "^3.0.0", |     "babel-jest": "^29.5.0", | ||||||
|     "@tsconfig/react-native": "^2.0.2", |  | ||||||
|     "@types/jest": "^29.2.1", |  | ||||||
|     "@types/react": "^18.0.24", |  | ||||||
|     "@types/react-test-renderer": "^18.0.0", |  | ||||||
|     "babel-jest": "^29.2.1", |  | ||||||
|     "detox": "^20.5.0", |     "detox": "^20.5.0", | ||||||
|     "eslint": "^8.19.0", |     "eslint": "^8.36.0", | ||||||
|     "fs-extra": "^11.1.0", |     "jest": "^29.5.0", | ||||||
|     "jest": "^29.2.1", |     "metro-react-native-babel-preset": "^0.76.0", | ||||||
|     "metro-react-native-babel-preset": "0.73.7", |     "prettier": "^2.8.4", | ||||||
|     "prettier": "^2.4.1", |  | ||||||
|     "react-test-renderer": "18.2.0", |     "react-test-renderer": "18.2.0", | ||||||
|     "ts-jest": "^29.0.5", |     "ts-jest": "^29.0.5" | ||||||
|     "typescript": "^4.9.5", |  | ||||||
|     "nyc": "^15.0.1", |  | ||||||
|     "pod-install": "^0.1.37" |  | ||||||
|   }, |   }, | ||||||
|   "jest": { |   "jest": { | ||||||
|     "preset": "react-native" |     "preset": "react-native" | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								Example/testHotUpdate/patches/react-native+0.69.8.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Example/testHotUpdate/patches/react-native+0.69.8.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | diff --git a/node_modules/react-native/scripts/react_native_pods.rb b/node_modules/react-native/scripts/react_native_pods.rb | ||||||
|  | index e7c59ad..1461d45 100644 | ||||||
|  | --- a/node_modules/react-native/scripts/react_native_pods.rb | ||||||
|  | +++ b/node_modules/react-native/scripts/react_native_pods.rb | ||||||
|  | @@ -420,7 +420,7 @@ def get_react_codegen_spec(options={}) | ||||||
|  |      'source' => { :git => '' }, | ||||||
|  |      'header_mappings_dir' => './', | ||||||
|  |      'platforms' => { | ||||||
|  | -      'ios' => '11.0', | ||||||
|  | +      'ios' => '12.0', | ||||||
|  |      }, | ||||||
|  |      'source_files' => "**/*.{h,mm,cpp}", | ||||||
|  |      'pod_target_xcconfig' => { "HEADER_SEARCH_PATHS" => | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
|  |  | ||||||
| trap 'kill $RN_PID' EXIT |  | ||||||
|  |  | ||||||
| PLATFORM=$1 |  | ||||||
|  |  | ||||||
| kill -9 $(lsof -i :8081 | awk '{print $2}' | tail -n +2) & npm start & |  | ||||||
| RN_PID=$! |  | ||||||
| sleep 2 && curl>/dev/null http://localhost:8081/index.bundle |  | ||||||
| wait $RN_PID |  | ||||||
| @@ -3,14 +3,12 @@ | |||||||
| import {useCallback, useMemo, useState} from 'react'; | import {useCallback, useMemo, useState} from 'react'; | ||||||
| import { | import { | ||||||
|   ActivityIndicator, |   ActivityIndicator, | ||||||
|   Alert, |  | ||||||
|   Modal, |   Modal, | ||||||
|   TextInput, |   TextInput, | ||||||
|   Button, |   Button, | ||||||
|   StyleSheet, |   StyleSheet, | ||||||
|   SafeAreaView, |   SafeAreaView, | ||||||
|   Text, |   Text, | ||||||
|   ScrollView, |  | ||||||
|   View, |   View, | ||||||
|   TouchableOpacity, |   TouchableOpacity, | ||||||
| } from 'react-native'; | } from 'react-native'; | ||||||
| @@ -19,11 +17,31 @@ import {PushyModule} from 'react-native-update'; | |||||||
| const Hash = '9D5CE6EBA420717BE7E7D308B11F8207681B066C951D68F3994D19828F342474'; | const Hash = '9D5CE6EBA420717BE7E7D308B11F8207681B066C951D68F3994D19828F342474'; | ||||||
| const UUID = '00000000-0000-0000-0000-000000000000'; | const UUID = '00000000-0000-0000-0000-000000000000'; | ||||||
| const DownloadUrl = | const DownloadUrl = | ||||||
|   'http://cos.pgyer.com/697913e94d7441f20c686e2b0996a1aa.apk?sign=363b035b7ef52c199c268abfacee3712&t=1678603669&response-content-disposition=attachment%3Bfilename%3DtestHotupdate_1.0.apk'; |   'http://cos.pgyer.com/697913e94d7441f20c686e2b0996a1aa.apk?sign=7a8f11b1df82cba45c8ac30b1acec88c&t=1680404102&response-content-disposition=attachment%3Bfilename%3DtestHotupdate_1.0.apk'; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   const CustomDialog = ({title, visible, onConfirm}) => { | ||||||
|  |     if (!visible) { | ||||||
|  |       return null; | ||||||
|  |     } | ||||||
|  |    | ||||||
|  |     return ( | ||||||
|  |       <View style={styles.overlay}> | ||||||
|  |         <View style={styles.dialog}> | ||||||
|  |           <Text style={styles.title}>{title}</Text> | ||||||
|  |           <TouchableOpacity testID='done' style={styles.button} onLongPress={onConfirm}> | ||||||
|  |             <Text style={styles.buttonText}>确认</Text> | ||||||
|  |           </TouchableOpacity> | ||||||
|  |         </View> | ||||||
|  |       </View> | ||||||
|  |     ); | ||||||
|  |   }; | ||||||
| export default function TestConsole({visible}) { | export default function TestConsole({visible}) { | ||||||
|   const [text, setText] = useState(''); |   const [text, setText] = useState(''); | ||||||
|   const [running, setRunning] = useState(false); |   const [running, setRunning] = useState(false); | ||||||
|   const [options, setOptions] = useState(); |   const [options, setOptions] = useState(); | ||||||
|  |   const [alertVisible, setAlertVisible] = useState(false); | ||||||
|  |   const [alertMsg, setAlertMsg] = useState(''); | ||||||
|   const NativeTestMethod = useMemo(() => { |   const NativeTestMethod = useMemo(() => { | ||||||
|     return [ |     return [ | ||||||
|       { |       { | ||||||
| @@ -71,6 +89,7 @@ export default function TestConsole({visible}) { | |||||||
|         name: 'markSuccess', |         name: 'markSuccess', | ||||||
|         invoke: () => { |         invoke: () => { | ||||||
|           setText('markSuccess'); |           setText('markSuccess'); | ||||||
|  |           setOptions(undefined); | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
| @@ -111,11 +130,12 @@ export default function TestConsole({visible}) { | |||||||
|         <TouchableOpacity |         <TouchableOpacity | ||||||
|           key={i} |           key={i} | ||||||
|           testID={NativeTestMethod[i].name} |           testID={NativeTestMethod[i].name} | ||||||
|           onPress={() => { |           onLongPress={() => { | ||||||
|             NativeTestMethod[i].invoke(); |             NativeTestMethod[i].invoke(); | ||||||
|           }} |           }} | ||||||
|           style={{width: 10, height: 10}} |         > | ||||||
|         />, |         <Text>{NativeTestMethod[i].name}</Text> | ||||||
|  |         </TouchableOpacity>, | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|     return <View>{views}</View>; |     return <View>{views}</View>; | ||||||
| @@ -143,10 +163,11 @@ export default function TestConsole({visible}) { | |||||||
|           onChangeText={setText} |           onChangeText={setText} | ||||||
|         /> |         /> | ||||||
|         {running && <ActivityIndicator />} |         {running && <ActivityIndicator />} | ||||||
|         <Button |         <TouchableOpacity | ||||||
|           title="执行" |         style={{backgroundColor:'rgb(0,140,237)', justifyContent: 'center', | ||||||
|  |         alignItems: 'center',paddingTop:10,paddingBottom:10,marginBottom:5}} | ||||||
|           testID="submit" |           testID="submit" | ||||||
|           onPress={async () => { |           onLongPress={async () => { | ||||||
|             setRunning(true); |             setRunning(true); | ||||||
|             try { |             try { | ||||||
|               const inputs = text.split('\n'); |               const inputs = text.split('\n'); | ||||||
| @@ -167,19 +188,65 @@ export default function TestConsole({visible}) { | |||||||
|                 } |                 } | ||||||
|                 await PushyModule[methodName](...params); |                 await PushyModule[methodName](...params); | ||||||
|               } |               } | ||||||
|               Alert.alert('done'); |               setAlertVisible(true); | ||||||
|  |               setAlertMsg('done'); | ||||||
|             } catch (e) { |             } catch (e) { | ||||||
|               Alert.alert(e.message); |               setAlertVisible(true); | ||||||
|  |               setAlertMsg(e.message); | ||||||
|             } |             } | ||||||
|             setRunning(false); |             setRunning(false); | ||||||
|           }} |           }} | ||||||
|         /> |         > | ||||||
|         <ScrollView style={{marginTop: 15}}> |           <Text style={{color:'white'}}>执行</Text> | ||||||
|           <Button title="重置" onPress={() => setText('')} /> |         </TouchableOpacity> | ||||||
|  |          <Button title="重置" onPress={() => setText('')} /> | ||||||
|           {renderTestView()} |           {renderTestView()} | ||||||
|         </ScrollView> |           <CustomDialog | ||||||
|  |             title={alertMsg} | ||||||
|  |             visible={alertVisible} | ||||||
|  |             onConfirm={()=>{setAlertVisible(false)}} | ||||||
|  |       /> | ||||||
|       </SafeAreaView> |       </SafeAreaView> | ||||||
|     </Modal> |     </Modal> | ||||||
|   ); |   ); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | const styles = StyleSheet.create({ | ||||||
|  |   container: { | ||||||
|  |     flex: 1, | ||||||
|  |     justifyContent: 'center', | ||||||
|  |     alignItems: 'center', | ||||||
|  |   }, | ||||||
|  |   overlay: { | ||||||
|  |     position: 'absolute', | ||||||
|  |     top: 0, | ||||||
|  |     left: 0, | ||||||
|  |     right: 0, | ||||||
|  |     bottom: 0, | ||||||
|  |     backgroundColor: 'rgba(0, 0, 0, 0.5)', | ||||||
|  |     justifyContent: 'center', | ||||||
|  |     alignItems: 'center', | ||||||
|  |   }, | ||||||
|  |   dialog: { | ||||||
|  |     backgroundColor: 'white', | ||||||
|  |     borderRadius: 10, | ||||||
|  |     padding: 20, | ||||||
|  |     width: '80%', | ||||||
|  |     alignItems: 'center', | ||||||
|  |   }, | ||||||
|  |   title: { | ||||||
|  |     fontSize: 18, | ||||||
|  |     fontWeight: 'bold', | ||||||
|  |     marginBottom: 20, | ||||||
|  |   }, | ||||||
|  |   button: { | ||||||
|  |     backgroundColor: '#2196F3', | ||||||
|  |     borderRadius: 5, | ||||||
|  |     paddingVertical: 10, | ||||||
|  |     paddingHorizontal: 20, | ||||||
|  |   }, | ||||||
|  |   buttonText: { | ||||||
|  |     color: 'white', | ||||||
|  |     fontWeight: 'bold', | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -169,7 +169,7 @@ public class UpdateModule extends ReactContextBaseJavaModule { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @ReactMethod |     @ReactMethod | ||||||
|     public void reloadUpdate(ReadableMap options) { |     public void reloadUpdate(ReadableMap options, final Promise promise) { | ||||||
|         final String hash = options.getString("hash"); |         final String hash = options.getString("hash"); | ||||||
|  |  | ||||||
|         UiThreadUtil.runOnUiThread(new Runnable() { |         UiThreadUtil.runOnUiThread(new Runnable() { | ||||||
| @@ -191,6 +191,7 @@ public class UpdateModule extends ReactContextBaseJavaModule { | |||||||
|                         loadField.setAccessible(true); |                         loadField.setAccessible(true); | ||||||
|                         loadField.set(instanceManager, loader); |                         loadField.set(instanceManager, loader); | ||||||
|                     } catch (Throwable err) { |                     } catch (Throwable err) { | ||||||
|  |                         promise.reject(err); | ||||||
|                         Field jsBundleField = instanceManager.getClass().getDeclaredField("mJSBundleFile"); |                         Field jsBundleField = instanceManager.getClass().getDeclaredField("mJSBundleFile"); | ||||||
|                         jsBundleField.setAccessible(true); |                         jsBundleField.setAccessible(true); | ||||||
|                         jsBundleField.set(instanceManager, UpdateContext.getBundleUrl(application)); |                         jsBundleField.set(instanceManager, UpdateContext.getBundleUrl(application)); | ||||||
| @@ -198,11 +199,14 @@ public class UpdateModule extends ReactContextBaseJavaModule { | |||||||
|  |  | ||||||
|                     try { |                     try { | ||||||
|                         instanceManager.recreateReactContextInBackground(); |                         instanceManager.recreateReactContextInBackground(); | ||||||
|  |                         promise.resolve(null); | ||||||
|                     } catch (Throwable err) { |                     } catch (Throwable err) { | ||||||
|                         activity.recreate(); |                         activity.recreate(); | ||||||
|  |                         promise.reject(err); | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                 } catch (Throwable err) { |                 } catch (Throwable err) { | ||||||
|  |                     promise.reject(err); | ||||||
|                     Log.e("pushy", "switchVersion failed", err); |                     Log.e("pushy", "switchVersion failed", err); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| 1680264885 | 1680410620 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 steven
					steven