├── .bundle └── config ├── .env.example ├── .eslintrc.js ├── .gitattributes ├── .gitignore ├── .prettierrc.js ├── .ruby-version ├── .watchmanconfig ├── App.tsx ├── Gemfile ├── Gemfile.lock ├── README.md ├── __tests__ └── App.test.tsx ├── android ├── app │ ├── build.gradle │ ├── debug.keystore │ ├── proguard-rules.pro │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── io │ │ │ └── beplus │ │ │ └── bootstrap │ │ │ └── mobile │ │ │ ├── MainActivity.kt │ │ │ └── MainApplication.kt │ │ └── res │ │ ├── app-icon_512x512.png │ │ ├── drawable │ │ └── rn_edit_text_material.xml │ │ ├── mipmap-anydpi-v26 │ │ └── ic_launcher.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_monochrome.png │ │ ├── ic_launcher_round.png │ │ └── ic_launcher_squircle.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_monochrome.png │ │ ├── ic_launcher_round.png │ │ └── ic_launcher_squircle.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_monochrome.png │ │ ├── ic_launcher_round.png │ │ └── ic_launcher_squircle.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_monochrome.png │ │ ├── ic_launcher_round.png │ │ └── ic_launcher_squircle.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_monochrome.png │ │ ├── ic_launcher_round.png │ │ └── ic_launcher_squircle.png │ │ └── values │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── fastlane │ └── Fastfile ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── app.json ├── babel.config.js ├── index.js ├── ios ├── .xcode.env ├── Config.xcconfig ├── Podfile ├── Podfile.lock ├── beplus.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── beplus.debug.xcscheme │ │ ├── beplus.dev.xcscheme │ │ ├── beplus.stage.xcscheme │ │ └── beplus.xcscheme ├── beplus.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── beplus │ ├── AppDelegate.h │ ├── AppDelegate.mm │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ └── app-icon_1024x1024.png │ │ ├── Contents.json │ │ └── LaunchScreen.imageset │ │ │ ├── Contents.json │ │ │ └── logo_1000x1000.png │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── PrivacyInfo.xcprivacy │ ├── beplus.entitlements │ └── main.m ├── beplusTests │ ├── Info.plist │ └── beplusTests.m └── fastlane │ ├── .gitignore │ ├── Fastfile │ ├── Matchfile │ └── devices.samples.zip ├── jest.config.js ├── metro.config.js ├── package.json ├── pnpm-lock.yaml └── tsconfig.json /.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | BE_APP_NAME=Bootstrap 2 | BE_APP_ANDROID_NAMESPACE=io.beplus.bootstrap.mobile 3 | BE_APP_APPLICATION_ID=io.beplus.bootstrap.mobile 4 | BE_APP_BUNDLE_ID=io.beplus.bootstrap.mobile 5 | BE_APPLE_DEVELOPER_TEAM_ID= 6 | BE_APP_VERSION="1.0.0" 7 | BE_APP_BUILD_NUMBER="1" 8 | 9 | ## Test variables 10 | 11 | # BE_VAR_IN_JS="value-js" 12 | # BE_VAR_IN_JAVA="value-java" 13 | # BE_VAR_IN_GRADLE="value-gradle" 14 | # BE_VAR_IN_MANIFEST="value-manifest" 15 | # BE_VAR_IN_OBJC="value-objc" 16 | # BE_VAR_IN_PLIST="value-plist" 17 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native', 4 | }; 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Don't allow people to merge changes to these generated files, because the result 2 | # may be invalid. You need to run "rush update" again. 3 | pnpm-lock.yaml merge=text 4 | shrinkwrap.yaml merge=binary 5 | npm-shrinkwrap.json merge=binary 6 | yarn.lock merge=binary 7 | 8 | # Rush's JSON config files use JavaScript-style code comments. The rule below prevents pedantic 9 | # syntax highlighters such as GitHub's from highlighting these comments as errors. Your text editor 10 | # may also require a special configuration to allow comments in JSON. 11 | # 12 | # For more information, see this issue: https://github.com/microsoft/rushstack/issues/1088 13 | # 14 | *.json linguist-language=JSON-with-Comments 15 | 16 | # iOS 17 | *.pbxproj -text 18 | 19 | # Windows script files 20 | *.bat text eol=crlf 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | *.log 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | 7 | # Runtime data 8 | *.pid 9 | *.seed 10 | *.pid.lock 11 | 12 | # Directory for instrumented libs generated by jscoverage/JSCover 13 | lib-cov 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # nyc test coverage 19 | .nyc_output 20 | 21 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 22 | .grunt 23 | 24 | # Bower dependency directory (https://bower.io/) 25 | bower_components 26 | 27 | # node-waf configuration 28 | .lock-wscript 29 | 30 | # Compiled binary addons (https://nodejs.org/api/addons.html) 31 | build/Release 32 | 33 | # Dependency directories 34 | node_modules/ 35 | jspm_packages/ 36 | 37 | # Optional npm cache directory 38 | .npm 39 | 40 | # Optional eslint cache 41 | .eslintcache 42 | 43 | # Optional REPL history 44 | .node_repl_history 45 | 46 | # Output of 'npm pack' 47 | *.tgz 48 | 49 | # Yarn Integrity file 50 | .yarn-integrity 51 | 52 | # dotenv environment variables file 53 | .env 54 | 55 | # next.js build output 56 | .next 57 | 58 | # OS X temporary files (in case you don't have it global .gitignore) 59 | .DS_Store 60 | 61 | # Heft 62 | .heft 63 | 64 | # build artifacts 65 | build_output 66 | 67 | # yarn 68 | .yarn/* 69 | !.yarn/cache 70 | !.yarn/patches 71 | !.yarn/plugins 72 | !.yarn/releases 73 | !.yarn/sdks 74 | !.yarn/versions 75 | 76 | # Xcode 77 | # 78 | build/ 79 | *.pbxuser 80 | !default.pbxuser 81 | *.mode1v3 82 | !default.mode1v3 83 | *.mode2v3 84 | !default.mode2v3 85 | *.perspectivev3 86 | !default.perspectivev3 87 | xcuserdata 88 | *.xccheckout 89 | *.moved-aside 90 | DerivedData 91 | *.hmap 92 | *.ipa 93 | *.xcuserstate 94 | **/.xcode.env.local 95 | 96 | # Android/IntelliJ 97 | # 98 | build/ 99 | .idea 100 | .gradle 101 | local.properties 102 | *.iml 103 | *.hprof 104 | .cxx/ 105 | *.keystore 106 | !debug.keystore 107 | 108 | # fastlane 109 | # 110 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 111 | # screenshots whenever they are needed. 112 | # For more information about the recommended setup visit: 113 | # https://docs.fastlane.tools/best-practices/source-control/ 114 | 115 | **/fastlane/report.xml 116 | **/fastlane/Preview.html 117 | **/fastlane/screenshots 118 | **/fastlane/test_output 119 | 120 | # Bundle artifact 121 | *.jsbundle 122 | 123 | # Ruby / CocoaPods 124 | **/Pods/ 125 | /vendor/bundle/ 126 | 127 | # Temporary files created by Metro to check the health of the file watcher 128 | .metro-health-check* 129 | 130 | # testing 131 | /coverage 132 | 133 | # react-native-config codegen 134 | ios/tmp.xcconfig 135 | 136 | # beplus 137 | android/app/upload.keystore 138 | ios/*.dSYM.zip 139 | ios/tmp.xcconfig 140 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.3.0 2 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /App.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample React Native App 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | 8 | import React from 'react'; 9 | import type {PropsWithChildren} from 'react'; 10 | import { 11 | SafeAreaView, 12 | ScrollView, 13 | StatusBar, 14 | StyleSheet, 15 | Text, 16 | useColorScheme, 17 | View, 18 | } from 'react-native'; 19 | 20 | import { 21 | Colors, 22 | DebugInstructions, 23 | Header, 24 | LearnMoreLinks, 25 | ReloadInstructions, 26 | } from 'react-native/Libraries/NewAppScreen'; 27 | 28 | // import Config from 'react-native-config'; 29 | 30 | type SectionProps = PropsWithChildren<{ 31 | title: string; 32 | }>; 33 | 34 | function Section({children, title}: SectionProps): React.JSX.Element { 35 | const isDarkMode = useColorScheme() === 'dark'; 36 | return ( 37 | 38 | 45 | {title} 46 | 47 | 54 | {children} 55 | 56 | 57 | ); 58 | } 59 | 60 | function App(): React.JSX.Element { 61 | const isDarkMode = useColorScheme() === 'dark'; 62 | 63 | const backgroundStyle = { 64 | backgroundColor: isDarkMode ? Colors.darker : Colors.lighter, 65 | }; 66 | 67 | // console.log("RNConfig_JS: ", Config?.BE_VAR_IN_JS); 68 | 69 | return ( 70 | 71 | 75 | 78 |
79 | 83 |
84 | Edit App.tsx to change this 85 | screen and then come back to see your edits. 86 |
87 |
88 | 89 |
90 |
91 | 92 |
93 |
94 | Read the docs to discover what to do next: 95 |
96 | 97 |
98 | 99 | 100 | ); 101 | } 102 | 103 | const styles = StyleSheet.create({ 104 | sectionContainer: { 105 | marginTop: 32, 106 | paddingHorizontal: 24, 107 | }, 108 | sectionTitle: { 109 | fontSize: 24, 110 | fontWeight: '600', 111 | }, 112 | sectionDescription: { 113 | marginTop: 8, 114 | fontSize: 18, 115 | fontWeight: '400', 116 | }, 117 | highlight: { 118 | fontWeight: '700', 119 | }, 120 | }); 121 | 122 | export default App; 123 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby File.read(File.join(__dir__, '.ruby-version')).strip 5 | 6 | gem 'ffi', '1.15.5' # @todo This is locked to the latest version before 1.16.0 which is unable to compile (Sept 24 2023) 7 | gem 'mutex_m' # mutex_m was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add mutex_m to your Gemfile or gemspec. Also contact author of activesupport-7.0.8 to add mutex_m into its gemspec. 8 | gem 'bigdecimal' # bigdecimal was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add bigdecimal to your Gemfile or gemspec. Also contact author of activesupport-7.0.8 to add bigdecimal into its gemspec. 9 | gem 'activesupport', '7.0.8' # @todo This is locked to the latest version before 7.1.0 which has an error (Oct 05 2023) 10 | 11 | gem 'cocoapods', '1.14.3' # @todo '~> 1.15' when resolved: https://github.com/facebook/react-native/issues/42698 12 | gem 'fastlane' 13 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | CFPropertyList (3.0.7) 5 | base64 6 | nkf 7 | rexml 8 | activesupport (7.0.8) 9 | concurrent-ruby (~> 1.0, >= 1.0.2) 10 | i18n (>= 1.6, < 2) 11 | minitest (>= 5.1) 12 | tzinfo (~> 2.0) 13 | addressable (2.8.7) 14 | public_suffix (>= 2.0.2, < 7.0) 15 | algoliasearch (1.27.5) 16 | httpclient (~> 2.8, >= 2.8.3) 17 | json (>= 1.5.1) 18 | artifactory (3.0.17) 19 | atomos (0.1.3) 20 | aws-eventstream (1.3.0) 21 | aws-partitions (1.961.0) 22 | aws-sdk-core (3.201.3) 23 | aws-eventstream (~> 1, >= 1.3.0) 24 | aws-partitions (~> 1, >= 1.651.0) 25 | aws-sigv4 (~> 1.8) 26 | jmespath (~> 1, >= 1.6.1) 27 | aws-sdk-kms (1.88.0) 28 | aws-sdk-core (~> 3, >= 3.201.0) 29 | aws-sigv4 (~> 1.5) 30 | aws-sdk-s3 (1.157.0) 31 | aws-sdk-core (~> 3, >= 3.201.0) 32 | aws-sdk-kms (~> 1) 33 | aws-sigv4 (~> 1.5) 34 | aws-sigv4 (1.9.1) 35 | aws-eventstream (~> 1, >= 1.0.2) 36 | babosa (1.0.4) 37 | base64 (0.2.0) 38 | bigdecimal (3.1.8) 39 | claide (1.1.0) 40 | cocoapods (1.14.3) 41 | addressable (~> 2.8) 42 | claide (>= 1.0.2, < 2.0) 43 | cocoapods-core (= 1.14.3) 44 | cocoapods-deintegrate (>= 1.0.3, < 2.0) 45 | cocoapods-downloader (>= 2.1, < 3.0) 46 | cocoapods-plugins (>= 1.0.0, < 2.0) 47 | cocoapods-search (>= 1.0.0, < 2.0) 48 | cocoapods-trunk (>= 1.6.0, < 2.0) 49 | cocoapods-try (>= 1.1.0, < 2.0) 50 | colored2 (~> 3.1) 51 | escape (~> 0.0.4) 52 | fourflusher (>= 2.3.0, < 3.0) 53 | gh_inspector (~> 1.0) 54 | molinillo (~> 0.8.0) 55 | nap (~> 1.0) 56 | ruby-macho (>= 2.3.0, < 3.0) 57 | xcodeproj (>= 1.23.0, < 2.0) 58 | cocoapods-core (1.14.3) 59 | activesupport (>= 5.0, < 8) 60 | addressable (~> 2.8) 61 | algoliasearch (~> 1.0) 62 | concurrent-ruby (~> 1.1) 63 | fuzzy_match (~> 2.0.4) 64 | nap (~> 1.0) 65 | netrc (~> 0.11) 66 | public_suffix (~> 4.0) 67 | typhoeus (~> 1.0) 68 | cocoapods-deintegrate (1.0.5) 69 | cocoapods-downloader (2.1) 70 | cocoapods-plugins (1.0.0) 71 | nap 72 | cocoapods-search (1.0.1) 73 | cocoapods-trunk (1.6.0) 74 | nap (>= 0.8, < 2.0) 75 | netrc (~> 0.11) 76 | cocoapods-try (1.2.0) 77 | colored (1.2) 78 | colored2 (3.1.2) 79 | commander (4.6.0) 80 | highline (~> 2.0.0) 81 | concurrent-ruby (1.3.3) 82 | declarative (0.0.20) 83 | digest-crc (0.6.5) 84 | rake (>= 12.0.0, < 14.0.0) 85 | domain_name (0.6.20240107) 86 | dotenv (2.8.1) 87 | emoji_regex (3.2.3) 88 | escape (0.0.4) 89 | ethon (0.16.0) 90 | ffi (>= 1.15.0) 91 | excon (0.111.0) 92 | faraday (1.10.3) 93 | faraday-em_http (~> 1.0) 94 | faraday-em_synchrony (~> 1.0) 95 | faraday-excon (~> 1.1) 96 | faraday-httpclient (~> 1.0) 97 | faraday-multipart (~> 1.0) 98 | faraday-net_http (~> 1.0) 99 | faraday-net_http_persistent (~> 1.0) 100 | faraday-patron (~> 1.0) 101 | faraday-rack (~> 1.0) 102 | faraday-retry (~> 1.0) 103 | ruby2_keywords (>= 0.0.4) 104 | faraday-cookie_jar (0.0.7) 105 | faraday (>= 0.8.0) 106 | http-cookie (~> 1.0.0) 107 | faraday-em_http (1.0.0) 108 | faraday-em_synchrony (1.0.0) 109 | faraday-excon (1.1.0) 110 | faraday-httpclient (1.0.1) 111 | faraday-multipart (1.0.4) 112 | multipart-post (~> 2) 113 | faraday-net_http (1.0.2) 114 | faraday-net_http_persistent (1.2.0) 115 | faraday-patron (1.0.0) 116 | faraday-rack (1.0.0) 117 | faraday-retry (1.0.3) 118 | faraday_middleware (1.2.0) 119 | faraday (~> 1.0) 120 | fastimage (2.3.1) 121 | fastlane (2.222.0) 122 | CFPropertyList (>= 2.3, < 4.0.0) 123 | addressable (>= 2.8, < 3.0.0) 124 | artifactory (~> 3.0) 125 | aws-sdk-s3 (~> 1.0) 126 | babosa (>= 1.0.3, < 2.0.0) 127 | bundler (>= 1.12.0, < 3.0.0) 128 | colored (~> 1.2) 129 | commander (~> 4.6) 130 | dotenv (>= 2.1.1, < 3.0.0) 131 | emoji_regex (>= 0.1, < 4.0) 132 | excon (>= 0.71.0, < 1.0.0) 133 | faraday (~> 1.0) 134 | faraday-cookie_jar (~> 0.0.6) 135 | faraday_middleware (~> 1.0) 136 | fastimage (>= 2.1.0, < 3.0.0) 137 | gh_inspector (>= 1.1.2, < 2.0.0) 138 | google-apis-androidpublisher_v3 (~> 0.3) 139 | google-apis-playcustomapp_v1 (~> 0.1) 140 | google-cloud-env (>= 1.6.0, < 2.0.0) 141 | google-cloud-storage (~> 1.31) 142 | highline (~> 2.0) 143 | http-cookie (~> 1.0.5) 144 | json (< 3.0.0) 145 | jwt (>= 2.1.0, < 3) 146 | mini_magick (>= 4.9.4, < 5.0.0) 147 | multipart-post (>= 2.0.0, < 3.0.0) 148 | naturally (~> 2.2) 149 | optparse (>= 0.1.1, < 1.0.0) 150 | plist (>= 3.1.0, < 4.0.0) 151 | rubyzip (>= 2.0.0, < 3.0.0) 152 | security (= 0.1.5) 153 | simctl (~> 1.6.3) 154 | terminal-notifier (>= 2.0.0, < 3.0.0) 155 | terminal-table (~> 3) 156 | tty-screen (>= 0.6.3, < 1.0.0) 157 | tty-spinner (>= 0.8.0, < 1.0.0) 158 | word_wrap (~> 1.0.0) 159 | xcodeproj (>= 1.13.0, < 2.0.0) 160 | xcpretty (~> 0.3.0) 161 | xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) 162 | ffi (1.15.5) 163 | fourflusher (2.3.1) 164 | fuzzy_match (2.0.4) 165 | gh_inspector (1.1.3) 166 | google-apis-androidpublisher_v3 (0.54.0) 167 | google-apis-core (>= 0.11.0, < 2.a) 168 | google-apis-core (0.11.3) 169 | addressable (~> 2.5, >= 2.5.1) 170 | googleauth (>= 0.16.2, < 2.a) 171 | httpclient (>= 2.8.1, < 3.a) 172 | mini_mime (~> 1.0) 173 | representable (~> 3.0) 174 | retriable (>= 2.0, < 4.a) 175 | rexml 176 | google-apis-iamcredentials_v1 (0.17.0) 177 | google-apis-core (>= 0.11.0, < 2.a) 178 | google-apis-playcustomapp_v1 (0.13.0) 179 | google-apis-core (>= 0.11.0, < 2.a) 180 | google-apis-storage_v1 (0.31.0) 181 | google-apis-core (>= 0.11.0, < 2.a) 182 | google-cloud-core (1.7.0) 183 | google-cloud-env (>= 1.0, < 3.a) 184 | google-cloud-errors (~> 1.0) 185 | google-cloud-env (1.6.0) 186 | faraday (>= 0.17.3, < 3.0) 187 | google-cloud-errors (1.4.0) 188 | google-cloud-storage (1.47.0) 189 | addressable (~> 2.8) 190 | digest-crc (~> 0.4) 191 | google-apis-iamcredentials_v1 (~> 0.1) 192 | google-apis-storage_v1 (~> 0.31.0) 193 | google-cloud-core (~> 1.6) 194 | googleauth (>= 0.16.2, < 2.a) 195 | mini_mime (~> 1.0) 196 | googleauth (1.8.1) 197 | faraday (>= 0.17.3, < 3.a) 198 | jwt (>= 1.4, < 3.0) 199 | multi_json (~> 1.11) 200 | os (>= 0.9, < 2.0) 201 | signet (>= 0.16, < 2.a) 202 | highline (2.0.3) 203 | http-cookie (1.0.6) 204 | domain_name (~> 0.5) 205 | httpclient (2.8.3) 206 | i18n (1.14.5) 207 | concurrent-ruby (~> 1.0) 208 | jmespath (1.6.2) 209 | json (2.7.2) 210 | jwt (2.8.2) 211 | base64 212 | mini_magick (4.13.2) 213 | mini_mime (1.1.5) 214 | minitest (5.24.1) 215 | molinillo (0.8.0) 216 | multi_json (1.15.0) 217 | multipart-post (2.4.1) 218 | mutex_m (0.2.0) 219 | nanaimo (0.3.0) 220 | nap (1.1.0) 221 | naturally (2.2.1) 222 | netrc (0.11.0) 223 | nkf (0.2.0) 224 | optparse (0.5.0) 225 | os (1.1.4) 226 | plist (3.7.1) 227 | public_suffix (4.0.7) 228 | rake (13.2.1) 229 | representable (3.2.0) 230 | declarative (< 0.1.0) 231 | trailblazer-option (>= 0.1.1, < 0.2.0) 232 | uber (< 0.2.0) 233 | retriable (3.1.2) 234 | rexml (3.2.9) 235 | strscan 236 | rouge (2.0.7) 237 | ruby-macho (2.5.1) 238 | ruby2_keywords (0.0.5) 239 | rubyzip (2.3.2) 240 | security (0.1.5) 241 | signet (0.19.0) 242 | addressable (~> 2.8) 243 | faraday (>= 0.17.5, < 3.a) 244 | jwt (>= 1.5, < 3.0) 245 | multi_json (~> 1.10) 246 | simctl (1.6.10) 247 | CFPropertyList 248 | naturally 249 | strscan (3.1.0) 250 | terminal-notifier (2.0.0) 251 | terminal-table (3.0.2) 252 | unicode-display_width (>= 1.1.1, < 3) 253 | trailblazer-option (0.1.2) 254 | tty-cursor (0.7.1) 255 | tty-screen (0.8.2) 256 | tty-spinner (0.9.3) 257 | tty-cursor (~> 0.7) 258 | typhoeus (1.4.1) 259 | ethon (>= 0.9.0) 260 | tzinfo (2.0.6) 261 | concurrent-ruby (~> 1.0) 262 | uber (0.1.0) 263 | unicode-display_width (2.5.0) 264 | word_wrap (1.0.0) 265 | xcodeproj (1.24.0) 266 | CFPropertyList (>= 2.3.3, < 4.0) 267 | atomos (~> 0.1.3) 268 | claide (>= 1.0.2, < 2.0) 269 | colored2 (~> 3.1) 270 | nanaimo (~> 0.3.0) 271 | rexml (~> 3.2.4) 272 | xcpretty (0.3.0) 273 | rouge (~> 2.0.7) 274 | xcpretty-travis-formatter (1.0.1) 275 | xcpretty (~> 0.2, >= 0.0.7) 276 | 277 | PLATFORMS 278 | ruby 279 | 280 | DEPENDENCIES 281 | activesupport (= 7.0.8) 282 | bigdecimal 283 | cocoapods (= 1.14.3) 284 | fastlane 285 | ffi (= 1.15.5) 286 | mutex_m 287 | 288 | RUBY VERSION 289 | ruby 3.3.0p0 290 | 291 | BUNDLED WITH 292 | 2.5.3 293 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # beplus Bootstrap Mobile 2 | 3 | **Deploy Your React Native Mobile Apps to AppStores within minutes**. 4 | 5 | [beplus Bootstrap Mobile](https://be.plus/bootstrap/mobile) optimizes your workflow, making React Native mobile app(s) deployment faster, smoother, and more reliable. 6 | 7 | 8 | ## What is this repository? 9 | This is a **Free version** of [beplus Bootstrap Mobile](https://be.plus/bootstrap/mobile#get) containing: 10 | - Latest [React Native](https://reactnative.dev/) CLI Template (actually `v0.74.4`), 11 | - [Refined](https://docs.be.plus/playbooks/mobile/basics/refinement) to be easily reusable according to the **free [beplus Mobile Playbook](https://docs.be.plus/training/playbooks/mobile)**: 12 | - configurable from the environment, 13 | - `dev`, `stage`, `prod` support, 14 | - With a basic [Fastlane](https://fastlane.tools/) Integration for both iOS & Android to automate: 15 | - app creation in Apple Developer and Apple App Store Connect, 16 | - iOS Code Signing, 17 | - deployment to Apple App Store and Google Play. 18 | 19 | **You can have your app deployed from nothing into both Apple App Store and Google Play within 15 minutes just by setting a few Environment Variables**. 20 | 21 | Also, having everything configurable allows you to use the same Template without any significant changes across multiple projects, which will allow you to stay up-to-date with this template down the line. 22 | 23 | 24 | # How To Use It? 25 | 26 | Checkout the [**Free Speedrun**]((https://docs.be.plus/bootstrap/mobile/speedrun)) to see how to run & use this Template: 27 | - [https://docs.be.plus/bootstrap/mobile/speedrun](https://docs.be.plus/bootstrap/mobile/speedrun) 28 | 29 | 30 | … and if you want more, make sure to check out **[beplus Bootstrap Mobile All-Access](https://be.plus/bootstrap/mobile)**. 31 | 32 | 33 | ## beplus Mobile Playbook 34 | 35 | Check out the **free [beplus Mobile Playbook](https://docs.be.plus/training/playbooks/mobile)** if you want to: 36 | - [Run this project fast](https://docs.be.plus/bootstrap/mobile/speedrun), 37 | - [Use Fastlane to create your apps in AppStore(s) and manage your Code Signing](https://docs.be.plus//playbooks/mobile/fastlane/overview), 38 | - Learn how to set up automated Mobile CI/CD: 39 | - with [Bitrise](https://docs.be.plus/training/playbooks/mobile/cicd/bitrise), 40 | - with [Codemagic](https://docs.be.plus/training/playbooks/mobile/cicd/codemagic), 41 | - with [GitHub Actions](https://docs.be.plus/training/playbooks/mobile/cicd/github-actions). 42 | 43 | 44 | ## beplus Bootstrap Mobile All-Access 45 | 46 | The ultimate tool to deliver your React Native App into AppStore(s) in minutes. 47 | 48 | Check the video about [**How It Works**](https://be.plus/bootstrap/mobile#how-it-works) on the official [be.plus Web](https://be.plus/bootstrap/mobile#how-it-works) or [YouTube](https://youtu.be/a0eBRkR8_IU). 49 | 50 | **With [beplus Bootstrap Mobile All-Access](https://be.plus/bootstrap/mobile#get), you can**: 51 | - fully automate the whole Mobile CI/CD Workflow creation, 52 | - easily manage iOS & Android Signing, across multiple Teams, with a single Tool, 53 | - effortlessly manage and keep your Configuration on a single place you actually own → your AWS Account and easily reuse it anywhere 54 | - easily switch between multiple Mobile CI/CD providers just by changing the configuration, 55 | - and much more. 56 | 57 | **One-Time Investment, Unlimited Usage, Lifetime Access, Free Updates**. 58 | 59 | https://be.plus/bootstrap/mobile 60 | -------------------------------------------------------------------------------- /__tests__/App.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: import explicitly to use the types shipped with jest. 10 | import {it} from '@jest/globals'; 11 | 12 | // Note: test renderer must be required after react-native. 13 | import renderer from 'react-test-renderer'; 14 | 15 | it('renders correctly', () => { 16 | renderer.create(); 17 | }); 18 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "com.android.application" 2 | apply plugin: "org.jetbrains.kotlin.android" 3 | apply plugin: "com.facebook.react" 4 | 5 | apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" 6 | 7 | /** 8 | * This is the configuration block to customize your React Native Android app. 9 | * By default you don't need to apply any configuration, just uncomment the lines you need. 10 | */ 11 | react { 12 | /* Folders */ 13 | // The root of your project, i.e. where "package.json" lives. Default is '..' 14 | // root = file("../") 15 | // The folder where the react-native NPM package is. Default is ../node_modules/react-native 16 | // reactNativeDir = file("../node_modules/react-native") 17 | // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen 18 | // codegenDir = file("../node_modules/@react-native/codegen") 19 | // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js 20 | // cliFile = file("../node_modules/react-native/cli.js") 21 | 22 | /* Variants */ 23 | // The list of variants to that are debuggable. For those we're going to 24 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'. 25 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. 26 | // debuggableVariants = ["liteDebug", "prodDebug"] 27 | 28 | /* Bundling */ 29 | // A list containing the node command and its flags. Default is just 'node'. 30 | // nodeExecutableAndArgs = ["node"] 31 | // 32 | // The command to run when bundling. By default is 'bundle' 33 | // bundleCommand = "ram-bundle" 34 | // 35 | // The path to the CLI configuration file. Default is empty. 36 | // bundleConfig = file(../rn-cli.config.js) 37 | // 38 | // The name of the generated asset file containing your JS bundle 39 | // bundleAssetName = "MyApplication.android.bundle" 40 | // 41 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' 42 | // entryFile = file("../js/MyApplication.android.js") 43 | // 44 | // A list of extra flags to pass to the 'bundle' commands. 45 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle 46 | // extraPackagerArgs = [] 47 | 48 | /* Hermes Commands */ 49 | // The hermes compiler command to run. By default it is 'hermesc' 50 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" 51 | // 52 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" 53 | // hermesFlags = ["-O", "-output-source-map"] 54 | } 55 | 56 | /** 57 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode. 58 | */ 59 | def enableProguardInReleaseBuilds = false 60 | 61 | /** 62 | * The preferred build flavor of JavaScriptCore (JSC) 63 | * 64 | * For example, to use the international variant, you can use: 65 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` 66 | * 67 | * The international variant includes ICU i18n library and necessary data 68 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that 69 | * give correct results when using with locales other than en-US. Note that 70 | * this variant is about 6MiB larger per architecture than default. 71 | */ 72 | def jscFlavor = 'org.webkit:android-jsc:+' 73 | 74 | android { 75 | ndkVersion rootProject.ext.ndkVersion 76 | buildToolsVersion rootProject.ext.buildToolsVersion 77 | compileSdk rootProject.ext.compileSdkVersion 78 | 79 | namespace 'io.beplus.bootstrap.mobile' 80 | 81 | defaultConfig { 82 | applicationId System.env.get("BE_APP_APPLICATION_ID") ? System.env.get("BE_APP_APPLICATION_ID").toString() : project.env.get("BE_APP_APPLICATION_ID").toString() 83 | minSdkVersion rootProject.ext.minSdkVersion 84 | targetSdkVersion rootProject.ext.targetSdkVersion 85 | 86 | versionName System.env.get("BE_APP_VERSION") ? System.env.get("BE_APP_VERSION") : project.env.get("BE_APP_VERSION") ? project.env.get("BE_APP_VERSION").toString() : "1.0.0" 87 | versionCode System.env.get("BE_APP_BUILD_NUMBER") ? System.env.get("BE_APP_BUILD_NUMBER").toInteger() : project.env.get("BE_APP_BUILD_NUMBER") ? project.env.get("BE_APP_BUILD_NUMBER").toInteger() : 1 88 | 89 | // should correspond to the "package" in Main.kt 90 | resValue "string", "build_config_package", System.env.get("BE_APP_ANDROID_NAMESPACE") ? System.env.get("BE_APP_ANDROID_NAMESPACE").toString() : project.env.get("BE_APP_ANDROID_NAMESPACE").toString() 91 | 92 | // https://developer.android.com/build/shrink-code#unused-alt-resources 93 | resConfigs "en" 94 | } 95 | signingConfigs { 96 | debug { 97 | storeFile file('debug.keystore') 98 | storePassword 'android' 99 | keyAlias 'androiddebugkey' 100 | keyPassword 'android' 101 | } 102 | release { 103 | storeFile file(System.env.get("BE_GOOGLE_PLAY_UPLOAD_KEY_STORE_FILE_PATH") ? System.env.get("BE_GOOGLE_PLAY_UPLOAD_KEY_STORE_FILE_PATH").toString() : "upload.keystore") 104 | storePassword System.env.get("BE_GOOGLE_PLAY_UPLOAD_KEY_STORE_PASSWORD").toString() 105 | keyAlias System.env.get("BE_GOOGLE_PLAY_UPLOAD_KEY_ALIAS").toString() 106 | keyPassword System.env.get("BE_GOOGLE_PLAY_UPLOAD_KEY_PASSWORD").toString() 107 | } 108 | } 109 | buildTypes { 110 | debug { 111 | applicationIdSuffix ".debug" 112 | signingConfig signingConfigs.debug 113 | } 114 | releaseDev { 115 | applicationIdSuffix ".dev" 116 | signingConfig signingConfigs.release 117 | minifyEnabled enableProguardInReleaseBuilds 118 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 119 | matchingFallbacks = ['release'] 120 | } 121 | releaseStage { 122 | applicationIdSuffix ".stage" 123 | signingConfig signingConfigs.release 124 | minifyEnabled enableProguardInReleaseBuilds 125 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 126 | matchingFallbacks = ['release'] 127 | } 128 | release { 129 | signingConfig signingConfigs.release 130 | minifyEnabled enableProguardInReleaseBuilds 131 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 132 | } 133 | } 134 | } 135 | 136 | dependencies { 137 | // The version of react-native is set by the React Native Gradle Plugin 138 | implementation("com.facebook.react:react-android") 139 | 140 | if (hermesEnabled.toBoolean()) { 141 | implementation("com.facebook.react:hermes-android") 142 | } else { 143 | implementation jscFlavor 144 | } 145 | } 146 | 147 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) 148 | -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/debug.keystore -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -keep class io.beplus**.BuildConfig { *; } 12 | -keepresources string/build_config_package 13 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 19 | 20 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/app/src/main/java/io/beplus/bootstrap/mobile/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package io.beplus.bootstrap.mobile 2 | 3 | import com.facebook.react.ReactActivity 4 | import com.facebook.react.ReactActivityDelegate 5 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 6 | import com.facebook.react.defaults.DefaultReactActivityDelegate 7 | 8 | import android.content.pm.ApplicationInfo 9 | import android.content.pm.PackageManager 10 | import android.os.Bundle 11 | import android.util.Log 12 | 13 | class MainActivity : ReactActivity() { 14 | 15 | /** 16 | * Returns the name of the main component registered from JavaScript. This is used to schedule 17 | * rendering of the component. 18 | */ 19 | override fun getMainComponentName(): String = "beplus" 20 | 21 | /** 22 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] 23 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] 24 | */ 25 | override fun createReactActivityDelegate(): ReactActivityDelegate = 26 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) 27 | 28 | /** 29 | * react-native-config 30 | */ 31 | override fun onCreate(savedInstanceState: Bundle?) { 32 | super.onCreate(savedInstanceState) 33 | 34 | // val varInJava: String = BuildConfig.BE_VAR_IN_JAVA 35 | // Log.i("RNConfig_Java: ", varInJava) 36 | 37 | // try { 38 | // val app = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA) 39 | // Log.i("RNConfig_Manifest: ", ""+app.metaData.getString("varInManifest")) 40 | // } catch (e: PackageManager.NameNotFoundException) { 41 | // e.printStackTrace() 42 | // } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /android/app/src/main/java/io/beplus/bootstrap/mobile/MainApplication.kt: -------------------------------------------------------------------------------- 1 | package io.beplus.bootstrap.mobile 2 | 3 | import android.app.Application 4 | import com.facebook.react.PackageList 5 | import com.facebook.react.ReactApplication 6 | import com.facebook.react.ReactHost 7 | import com.facebook.react.ReactNativeHost 8 | import com.facebook.react.ReactPackage 9 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load 10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost 11 | import com.facebook.react.defaults.DefaultReactNativeHost 12 | import com.facebook.soloader.SoLoader 13 | 14 | class MainApplication : Application(), ReactApplication { 15 | 16 | override val reactNativeHost: ReactNativeHost = 17 | object : DefaultReactNativeHost(this) { 18 | override fun getPackages(): List { 19 | // Packages that cannot be autolinked yet can be added manually here, for example: 20 | // packages.add(new MyReactNativePackage()); 21 | return PackageList(this).packages 22 | } 23 | 24 | override fun getJSMainModuleName(): String = "index" 25 | 26 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG 27 | 28 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED 29 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED 30 | } 31 | 32 | override val reactHost: ReactHost 33 | get() = getDefaultReactHost(applicationContext, reactNativeHost) 34 | 35 | override fun onCreate() { 36 | super.onCreate() 37 | SoLoader.init(this, false) 38 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { 39 | // If you opted-in for the New Architecture, we load the native entry point for this app. 40 | load() 41 | } 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /android/app/src/main/res/app-icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/app-icon_512x512.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/rn_edit_text_material.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 21 | 22 | 23 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_squircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-hdpi/ic_launcher_squircle.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_squircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-mdpi/ic_launcher_squircle.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_squircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xhdpi/ic_launcher_squircle.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_squircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_squircle.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_squircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_squircle.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #eab305 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | @string/BE_APP_NAME 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext { 3 | buildToolsVersion = "34.0.0" 4 | minSdkVersion = 23 5 | compileSdkVersion = 34 6 | targetSdkVersion = 34 7 | ndkVersion = "26.1.10909125" 8 | kotlinVersion = "1.9.22" 9 | } 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle") 16 | classpath("com.facebook.react:react-native-gradle-plugin") 17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") 18 | } 19 | } 20 | 21 | // apply plugin: "com.facebook.react.rootproject" 22 | -------------------------------------------------------------------------------- /android/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # https://docs.fastlane.tools/ 2 | 3 | skip_docs 4 | 5 | envs = [ 6 | { name: "dev", id_suffix: ".dev", build_type: "ReleaseDev" }, 7 | { name: "stage", id_suffix: ".stage", build_type: "ReleaseStage" }, 8 | { name: "prod", id_suffix: "", build_type: "Release" } 9 | ] 10 | 11 | # deploy 12 | lane :deploy do |options| 13 | selected_env = envs.select { |env| env[:name] == options[:env] }.first 14 | 15 | gradle( 16 | task: "bundle", 17 | build_type: selected_env[:build_type] 18 | ) 19 | 20 | upload_to_play_store( 21 | package_name: "#{ENV["BE_APP_APPLICATION_ID"]}#{selected_env[:id_suffix]}", 22 | track: "internal", # @todo 23 | release_status: "draft", # @todo 24 | # json_key: ENV["BE_GOOGLE_PLAY_JSON_KEY_FILE_PATH"], 25 | json_key_data: ENV["BE_GOOGLE_PLAY_JSON_KEY_CONTENT"], 26 | skip_upload_apk: true 27 | ) 28 | end 29 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m 13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | # AndroidX package structure to make it clearer which packages are bundled with the 21 | # Android operating system, and which are packaged with your app's APK 22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 23 | android.useAndroidX=true 24 | # Automatically convert third-party libraries to use AndroidX 25 | android.enableJetifier=true 26 | 27 | # Use this property to specify which architecture you want to build. 28 | # You can also override it from the CLI using 29 | # ./gradlew -PreactNativeArchitectures=x86_64 30 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 31 | 32 | # Use this property to enable support to the new architecture. 33 | # This will allow you to use TurboModules and the Fabric render in 34 | # your application. You should enable this flag either if you want 35 | # to write custom TurboModules/Fabric components OR use libraries that 36 | # are providing them. 37 | newArchEnabled=false 38 | 39 | # Use this property to enable or disable the Hermes JS engine. 40 | # If set to false, you will be using JSC instead. 41 | hermesEnabled=true 42 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /android/gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | # 21 | # Gradle start up script for POSIX generated by Gradle. 22 | # 23 | # Important for running: 24 | # 25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 26 | # noncompliant, but you have some other compliant shell such as ksh or 27 | # bash, then to run this script, type that shell name before the whole 28 | # command line, like: 29 | # 30 | # ksh Gradle 31 | # 32 | # Busybox and similar reduced shells will NOT work, because this script 33 | # requires all of these POSIX shell features: 34 | # * functions; 35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 37 | # * compound commands having a testable exit status, especially «case»; 38 | # * various built-in commands including «command», «set», and «ulimit». 39 | # 40 | # Important for patching: 41 | # 42 | # (2) This script targets any POSIX shell, so it avoids extensions provided 43 | # by Bash, Ksh, etc; in particular arrays are avoided. 44 | # 45 | # The "traditional" practice of packing multiple parameters into a 46 | # space-separated string is a well documented source of bugs and security 47 | # problems, so this is (mostly) avoided, by progressively accumulating 48 | # options in "$@", and eventually passing that to Java. 49 | # 50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 52 | # see the in-line comments for details. 53 | # 54 | # There are tweaks for specific operating systems such as AIX, CygWin, 55 | # Darwin, MinGW, and NonStop. 56 | # 57 | # (3) This script is generated from the Groovy template 58 | # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 59 | # within the Gradle project. 60 | # 61 | # You can find Gradle at https://github.com/gradle/gradle/. 62 | # 63 | ############################################################################## 64 | 65 | # Attempt to set APP_HOME 66 | 67 | # Resolve links: $0 may be a link 68 | app_path=$0 69 | 70 | # Need this for daisy-chained symlinks. 71 | while 72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 73 | [ -h "$app_path" ] 74 | do 75 | ls=$( ls -ld "$app_path" ) 76 | link=${ls#*' -> '} 77 | case $link in #( 78 | /*) app_path=$link ;; #( 79 | *) app_path=$APP_HOME$link ;; 80 | esac 81 | done 82 | 83 | # This is normally unused 84 | # shellcheck disable=SC2034 85 | APP_BASE_NAME=${0##*/} 86 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 87 | APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit 88 | 89 | # Use the maximum available, or set MAX_FD != -1 to use that value. 90 | MAX_FD=maximum 91 | 92 | warn () { 93 | echo "$*" 94 | } >&2 95 | 96 | die () { 97 | echo 98 | echo "$*" 99 | echo 100 | exit 1 101 | } >&2 102 | 103 | # OS specific support (must be 'true' or 'false'). 104 | cygwin=false 105 | msys=false 106 | darwin=false 107 | nonstop=false 108 | case "$( uname )" in #( 109 | CYGWIN* ) cygwin=true ;; #( 110 | Darwin* ) darwin=true ;; #( 111 | MSYS* | MINGW* ) msys=true ;; #( 112 | NONSTOP* ) nonstop=true ;; 113 | esac 114 | 115 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 116 | 117 | 118 | # Determine the Java command to use to start the JVM. 119 | if [ -n "$JAVA_HOME" ] ; then 120 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 121 | # IBM's JDK on AIX uses strange locations for the executables 122 | JAVACMD=$JAVA_HOME/jre/sh/java 123 | else 124 | JAVACMD=$JAVA_HOME/bin/java 125 | fi 126 | if [ ! -x "$JAVACMD" ] ; then 127 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 128 | 129 | Please set the JAVA_HOME variable in your environment to match the 130 | location of your Java installation." 131 | fi 132 | else 133 | JAVACMD=java 134 | if ! command -v java >/dev/null 2>&1 135 | then 136 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 137 | 138 | Please set the JAVA_HOME variable in your environment to match the 139 | location of your Java installation." 140 | fi 141 | fi 142 | 143 | # Increase the maximum file descriptors if we can. 144 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 145 | case $MAX_FD in #( 146 | max*) 147 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 148 | # shellcheck disable=SC2039,SC3045 149 | MAX_FD=$( ulimit -H -n ) || 150 | warn "Could not query maximum file descriptor limit" 151 | esac 152 | case $MAX_FD in #( 153 | '' | soft) :;; #( 154 | *) 155 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 156 | # shellcheck disable=SC2039,SC3045 157 | ulimit -n "$MAX_FD" || 158 | warn "Could not set maximum file descriptor limit to $MAX_FD" 159 | esac 160 | fi 161 | 162 | # Collect all arguments for the java command, stacking in reverse order: 163 | # * args from the command line 164 | # * the main class name 165 | # * -classpath 166 | # * -D...appname settings 167 | # * --module-path (only if needed) 168 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 169 | 170 | # For Cygwin or MSYS, switch paths to Windows format before running java 171 | if "$cygwin" || "$msys" ; then 172 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 173 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 174 | 175 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 176 | 177 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 178 | for arg do 179 | if 180 | case $arg in #( 181 | -*) false ;; # don't mess with options #( 182 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 183 | [ -e "$t" ] ;; #( 184 | *) false ;; 185 | esac 186 | then 187 | arg=$( cygpath --path --ignore --mixed "$arg" ) 188 | fi 189 | # Roll the args list around exactly as many times as the number of 190 | # args, so each arg winds up back in the position where it started, but 191 | # possibly modified. 192 | # 193 | # NB: a `for` loop captures its iteration list before it begins, so 194 | # changing the positional parameters here affects neither the number of 195 | # iterations, nor the values presented in `arg`. 196 | shift # remove old arg 197 | set -- "$@" "$arg" # push replacement arg 198 | done 199 | fi 200 | 201 | 202 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 203 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 204 | 205 | # Collect all arguments for the java command: 206 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 207 | # and any embedded shellness will be escaped. 208 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 209 | # treated as '${Hostname}' itself on the command line. 210 | 211 | set -- \ 212 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 213 | -classpath "$CLASSPATH" \ 214 | org.gradle.wrapper.GradleWrapperMain \ 215 | "$@" 216 | 217 | # Stop when "xargs" is not available. 218 | if ! command -v xargs >/dev/null 2>&1 219 | then 220 | die "xargs is not available" 221 | fi 222 | 223 | # Use "xargs" to parse quoted args. 224 | # 225 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 226 | # 227 | # In Bash we could simply go: 228 | # 229 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 230 | # set -- "${ARGS[@]}" "$@" 231 | # 232 | # but POSIX shell has neither arrays nor command substitution, so instead we 233 | # post-process each arg (as a line of input to sed) to backslash-escape any 234 | # character that might be a shell metacharacter, then use eval to reverse 235 | # that process (while maintaining the separation between arguments), and wrap 236 | # the whole thing up as a single "set" statement. 237 | # 238 | # This will of course break if any of these variables contains a newline or 239 | # an unmatched quote. 240 | # 241 | 242 | eval "set -- $( 243 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 244 | xargs -n1 | 245 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 246 | tr '\n' ' ' 247 | )" '"$@"' 248 | 249 | exec "$JAVACMD" "$@" 250 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%"=="" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%"=="" set DIRNAME=. 29 | @rem This is normally unused 30 | set APP_BASE_NAME=%~n0 31 | set APP_HOME=%DIRNAME% 32 | 33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 35 | 36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 38 | 39 | @rem Find java.exe 40 | if defined JAVA_HOME goto findJavaFromJavaHome 41 | 42 | set JAVA_EXE=java.exe 43 | %JAVA_EXE% -version >NUL 2>&1 44 | if %ERRORLEVEL% equ 0 goto execute 45 | 46 | echo. 1>&2 47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 48 | echo. 1>&2 49 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 50 | echo location of your Java installation. 1>&2 51 | 52 | goto fail 53 | 54 | :findJavaFromJavaHome 55 | set JAVA_HOME=%JAVA_HOME:"=% 56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 57 | 58 | if exist "%JAVA_EXE%" goto execute 59 | 60 | echo. 1>&2 61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 62 | echo. 1>&2 63 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 64 | echo location of your Java installation. 1>&2 65 | 66 | goto fail 67 | 68 | :execute 69 | @rem Setup the command line 70 | 71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 72 | 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if %ERRORLEVEL% equ 0 goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | set EXIT_CODE=%ERRORLEVEL% 85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 87 | exit /b %EXIT_CODE% 88 | 89 | :mainEnd 90 | if "%OS%"=="Windows_NT" endlocal 91 | 92 | :omega 93 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'beplus' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | includeBuild('../node_modules/@react-native/gradle-plugin') 5 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "beplus", 3 | "displayName": "beplus" 4 | } 5 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:@react-native/babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /ios/.xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /ios/Config.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Config.xcconfig 3 | // 4 | 5 | // Configuration settings file format documentation can be found at: 6 | // https://help.apple.com/xcode/#/dev745c5c974 7 | 8 | #include? "tmp.xcconfig" 9 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | # Resolve react_native_pods.rb with node to allow for hoisting 2 | require Pod::Executable.execute_command('node', ['-p', 3 | 'require.resolve( 4 | "react-native/scripts/react_native_pods.rb", 5 | {paths: [process.argv[1]]}, 6 | )', __dir__]).strip 7 | 8 | platform :ios, min_ios_version_supported 9 | prepare_react_native_project! 10 | 11 | linkage = ENV['USE_FRAMEWORKS'] 12 | if linkage != nil 13 | Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green 14 | use_frameworks! :linkage => linkage.to_sym 15 | end 16 | 17 | target 'beplus' do 18 | config = use_native_modules! 19 | 20 | use_react_native!( 21 | :path => config[:reactNativePath], 22 | # An absolute path to your application root. 23 | :app_path => "#{Pod::Config.instance.installation_root}/.." 24 | ) 25 | 26 | target 'beplusTests' do 27 | inherit! :complete 28 | # Pods for testing 29 | end 30 | 31 | post_install do |installer| 32 | # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 33 | react_native_post_install( 34 | installer, 35 | config[:reactNativePath], 36 | :mac_catalyst_enabled => false, 37 | # :ccache_enabled => true 38 | ) 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - boost (1.83.0) 3 | - DoubleConversion (1.1.6) 4 | - FBLazyVector (0.74.4) 5 | - fmt (9.1.0) 6 | - glog (0.3.5) 7 | - hermes-engine (0.74.3): 8 | - hermes-engine/Pre-built (= 0.74.3) 9 | - hermes-engine/Pre-built (0.74.3) 10 | - RCT-Folly (2024.01.01.00): 11 | - boost 12 | - DoubleConversion 13 | - fmt (= 9.1.0) 14 | - glog 15 | - RCT-Folly/Default (= 2024.01.01.00) 16 | - RCT-Folly/Default (2024.01.01.00): 17 | - boost 18 | - DoubleConversion 19 | - fmt (= 9.1.0) 20 | - glog 21 | - RCT-Folly/Fabric (2024.01.01.00): 22 | - boost 23 | - DoubleConversion 24 | - fmt (= 9.1.0) 25 | - glog 26 | - RCTDeprecation (0.74.4) 27 | - RCTRequired (0.74.4) 28 | - RCTTypeSafety (0.74.4): 29 | - FBLazyVector (= 0.74.4) 30 | - RCTRequired (= 0.74.4) 31 | - React-Core (= 0.74.4) 32 | - React (0.74.4): 33 | - React-Core (= 0.74.4) 34 | - React-Core/DevSupport (= 0.74.4) 35 | - React-Core/RCTWebSocket (= 0.74.4) 36 | - React-RCTActionSheet (= 0.74.4) 37 | - React-RCTAnimation (= 0.74.4) 38 | - React-RCTBlob (= 0.74.4) 39 | - React-RCTImage (= 0.74.4) 40 | - React-RCTLinking (= 0.74.4) 41 | - React-RCTNetwork (= 0.74.4) 42 | - React-RCTSettings (= 0.74.4) 43 | - React-RCTText (= 0.74.4) 44 | - React-RCTVibration (= 0.74.4) 45 | - React-callinvoker (0.74.4) 46 | - React-Codegen (0.74.4): 47 | - DoubleConversion 48 | - glog 49 | - hermes-engine 50 | - RCT-Folly 51 | - RCTRequired 52 | - RCTTypeSafety 53 | - React-Core 54 | - React-debug 55 | - React-Fabric 56 | - React-FabricImage 57 | - React-featureflags 58 | - React-graphics 59 | - React-jsi 60 | - React-jsiexecutor 61 | - React-NativeModulesApple 62 | - React-rendererdebug 63 | - React-utils 64 | - ReactCommon/turbomodule/bridging 65 | - ReactCommon/turbomodule/core 66 | - React-Core (0.74.4): 67 | - glog 68 | - hermes-engine 69 | - RCT-Folly (= 2024.01.01.00) 70 | - RCTDeprecation 71 | - React-Core/Default (= 0.74.4) 72 | - React-cxxreact 73 | - React-featureflags 74 | - React-hermes 75 | - React-jsi 76 | - React-jsiexecutor 77 | - React-jsinspector 78 | - React-perflogger 79 | - React-runtimescheduler 80 | - React-utils 81 | - SocketRocket (= 0.7.0) 82 | - Yoga 83 | - React-Core/CoreModulesHeaders (0.74.4): 84 | - glog 85 | - hermes-engine 86 | - RCT-Folly (= 2024.01.01.00) 87 | - RCTDeprecation 88 | - React-Core/Default 89 | - React-cxxreact 90 | - React-featureflags 91 | - React-hermes 92 | - React-jsi 93 | - React-jsiexecutor 94 | - React-jsinspector 95 | - React-perflogger 96 | - React-runtimescheduler 97 | - React-utils 98 | - SocketRocket (= 0.7.0) 99 | - Yoga 100 | - React-Core/Default (0.74.4): 101 | - glog 102 | - hermes-engine 103 | - RCT-Folly (= 2024.01.01.00) 104 | - RCTDeprecation 105 | - React-cxxreact 106 | - React-featureflags 107 | - React-hermes 108 | - React-jsi 109 | - React-jsiexecutor 110 | - React-jsinspector 111 | - React-perflogger 112 | - React-runtimescheduler 113 | - React-utils 114 | - SocketRocket (= 0.7.0) 115 | - Yoga 116 | - React-Core/DevSupport (0.74.4): 117 | - glog 118 | - hermes-engine 119 | - RCT-Folly (= 2024.01.01.00) 120 | - RCTDeprecation 121 | - React-Core/Default (= 0.74.4) 122 | - React-Core/RCTWebSocket (= 0.74.4) 123 | - React-cxxreact 124 | - React-featureflags 125 | - React-hermes 126 | - React-jsi 127 | - React-jsiexecutor 128 | - React-jsinspector 129 | - React-perflogger 130 | - React-runtimescheduler 131 | - React-utils 132 | - SocketRocket (= 0.7.0) 133 | - Yoga 134 | - React-Core/RCTActionSheetHeaders (0.74.4): 135 | - glog 136 | - hermes-engine 137 | - RCT-Folly (= 2024.01.01.00) 138 | - RCTDeprecation 139 | - React-Core/Default 140 | - React-cxxreact 141 | - React-featureflags 142 | - React-hermes 143 | - React-jsi 144 | - React-jsiexecutor 145 | - React-jsinspector 146 | - React-perflogger 147 | - React-runtimescheduler 148 | - React-utils 149 | - SocketRocket (= 0.7.0) 150 | - Yoga 151 | - React-Core/RCTAnimationHeaders (0.74.4): 152 | - glog 153 | - hermes-engine 154 | - RCT-Folly (= 2024.01.01.00) 155 | - RCTDeprecation 156 | - React-Core/Default 157 | - React-cxxreact 158 | - React-featureflags 159 | - React-hermes 160 | - React-jsi 161 | - React-jsiexecutor 162 | - React-jsinspector 163 | - React-perflogger 164 | - React-runtimescheduler 165 | - React-utils 166 | - SocketRocket (= 0.7.0) 167 | - Yoga 168 | - React-Core/RCTBlobHeaders (0.74.4): 169 | - glog 170 | - hermes-engine 171 | - RCT-Folly (= 2024.01.01.00) 172 | - RCTDeprecation 173 | - React-Core/Default 174 | - React-cxxreact 175 | - React-featureflags 176 | - React-hermes 177 | - React-jsi 178 | - React-jsiexecutor 179 | - React-jsinspector 180 | - React-perflogger 181 | - React-runtimescheduler 182 | - React-utils 183 | - SocketRocket (= 0.7.0) 184 | - Yoga 185 | - React-Core/RCTImageHeaders (0.74.4): 186 | - glog 187 | - hermes-engine 188 | - RCT-Folly (= 2024.01.01.00) 189 | - RCTDeprecation 190 | - React-Core/Default 191 | - React-cxxreact 192 | - React-featureflags 193 | - React-hermes 194 | - React-jsi 195 | - React-jsiexecutor 196 | - React-jsinspector 197 | - React-perflogger 198 | - React-runtimescheduler 199 | - React-utils 200 | - SocketRocket (= 0.7.0) 201 | - Yoga 202 | - React-Core/RCTLinkingHeaders (0.74.4): 203 | - glog 204 | - hermes-engine 205 | - RCT-Folly (= 2024.01.01.00) 206 | - RCTDeprecation 207 | - React-Core/Default 208 | - React-cxxreact 209 | - React-featureflags 210 | - React-hermes 211 | - React-jsi 212 | - React-jsiexecutor 213 | - React-jsinspector 214 | - React-perflogger 215 | - React-runtimescheduler 216 | - React-utils 217 | - SocketRocket (= 0.7.0) 218 | - Yoga 219 | - React-Core/RCTNetworkHeaders (0.74.4): 220 | - glog 221 | - hermes-engine 222 | - RCT-Folly (= 2024.01.01.00) 223 | - RCTDeprecation 224 | - React-Core/Default 225 | - React-cxxreact 226 | - React-featureflags 227 | - React-hermes 228 | - React-jsi 229 | - React-jsiexecutor 230 | - React-jsinspector 231 | - React-perflogger 232 | - React-runtimescheduler 233 | - React-utils 234 | - SocketRocket (= 0.7.0) 235 | - Yoga 236 | - React-Core/RCTSettingsHeaders (0.74.4): 237 | - glog 238 | - hermes-engine 239 | - RCT-Folly (= 2024.01.01.00) 240 | - RCTDeprecation 241 | - React-Core/Default 242 | - React-cxxreact 243 | - React-featureflags 244 | - React-hermes 245 | - React-jsi 246 | - React-jsiexecutor 247 | - React-jsinspector 248 | - React-perflogger 249 | - React-runtimescheduler 250 | - React-utils 251 | - SocketRocket (= 0.7.0) 252 | - Yoga 253 | - React-Core/RCTTextHeaders (0.74.4): 254 | - glog 255 | - hermes-engine 256 | - RCT-Folly (= 2024.01.01.00) 257 | - RCTDeprecation 258 | - React-Core/Default 259 | - React-cxxreact 260 | - React-featureflags 261 | - React-hermes 262 | - React-jsi 263 | - React-jsiexecutor 264 | - React-jsinspector 265 | - React-perflogger 266 | - React-runtimescheduler 267 | - React-utils 268 | - SocketRocket (= 0.7.0) 269 | - Yoga 270 | - React-Core/RCTVibrationHeaders (0.74.4): 271 | - glog 272 | - hermes-engine 273 | - RCT-Folly (= 2024.01.01.00) 274 | - RCTDeprecation 275 | - React-Core/Default 276 | - React-cxxreact 277 | - React-featureflags 278 | - React-hermes 279 | - React-jsi 280 | - React-jsiexecutor 281 | - React-jsinspector 282 | - React-perflogger 283 | - React-runtimescheduler 284 | - React-utils 285 | - SocketRocket (= 0.7.0) 286 | - Yoga 287 | - React-Core/RCTWebSocket (0.74.4): 288 | - glog 289 | - hermes-engine 290 | - RCT-Folly (= 2024.01.01.00) 291 | - RCTDeprecation 292 | - React-Core/Default (= 0.74.4) 293 | - React-cxxreact 294 | - React-featureflags 295 | - React-hermes 296 | - React-jsi 297 | - React-jsiexecutor 298 | - React-jsinspector 299 | - React-perflogger 300 | - React-runtimescheduler 301 | - React-utils 302 | - SocketRocket (= 0.7.0) 303 | - Yoga 304 | - React-CoreModules (0.74.4): 305 | - DoubleConversion 306 | - fmt (= 9.1.0) 307 | - RCT-Folly (= 2024.01.01.00) 308 | - RCTTypeSafety (= 0.74.4) 309 | - React-Codegen 310 | - React-Core/CoreModulesHeaders (= 0.74.4) 311 | - React-jsi (= 0.74.4) 312 | - React-jsinspector 313 | - React-NativeModulesApple 314 | - React-RCTBlob 315 | - React-RCTImage (= 0.74.4) 316 | - ReactCommon 317 | - SocketRocket (= 0.7.0) 318 | - React-cxxreact (0.74.4): 319 | - boost (= 1.83.0) 320 | - DoubleConversion 321 | - fmt (= 9.1.0) 322 | - glog 323 | - hermes-engine 324 | - RCT-Folly (= 2024.01.01.00) 325 | - React-callinvoker (= 0.74.4) 326 | - React-debug (= 0.74.4) 327 | - React-jsi (= 0.74.4) 328 | - React-jsinspector 329 | - React-logger (= 0.74.4) 330 | - React-perflogger (= 0.74.4) 331 | - React-runtimeexecutor (= 0.74.4) 332 | - React-debug (0.74.4) 333 | - React-Fabric (0.74.4): 334 | - DoubleConversion 335 | - fmt (= 9.1.0) 336 | - glog 337 | - hermes-engine 338 | - RCT-Folly/Fabric (= 2024.01.01.00) 339 | - RCTRequired 340 | - RCTTypeSafety 341 | - React-Core 342 | - React-cxxreact 343 | - React-debug 344 | - React-Fabric/animations (= 0.74.4) 345 | - React-Fabric/attributedstring (= 0.74.4) 346 | - React-Fabric/componentregistry (= 0.74.4) 347 | - React-Fabric/componentregistrynative (= 0.74.4) 348 | - React-Fabric/components (= 0.74.4) 349 | - React-Fabric/core (= 0.74.4) 350 | - React-Fabric/imagemanager (= 0.74.4) 351 | - React-Fabric/leakchecker (= 0.74.4) 352 | - React-Fabric/mounting (= 0.74.4) 353 | - React-Fabric/scheduler (= 0.74.4) 354 | - React-Fabric/telemetry (= 0.74.4) 355 | - React-Fabric/templateprocessor (= 0.74.4) 356 | - React-Fabric/textlayoutmanager (= 0.74.4) 357 | - React-Fabric/uimanager (= 0.74.4) 358 | - React-graphics 359 | - React-jsi 360 | - React-jsiexecutor 361 | - React-logger 362 | - React-rendererdebug 363 | - React-runtimescheduler 364 | - React-utils 365 | - ReactCommon/turbomodule/core 366 | - React-Fabric/animations (0.74.4): 367 | - DoubleConversion 368 | - fmt (= 9.1.0) 369 | - glog 370 | - hermes-engine 371 | - RCT-Folly/Fabric (= 2024.01.01.00) 372 | - RCTRequired 373 | - RCTTypeSafety 374 | - React-Core 375 | - React-cxxreact 376 | - React-debug 377 | - React-graphics 378 | - React-jsi 379 | - React-jsiexecutor 380 | - React-logger 381 | - React-rendererdebug 382 | - React-runtimescheduler 383 | - React-utils 384 | - ReactCommon/turbomodule/core 385 | - React-Fabric/attributedstring (0.74.4): 386 | - DoubleConversion 387 | - fmt (= 9.1.0) 388 | - glog 389 | - hermes-engine 390 | - RCT-Folly/Fabric (= 2024.01.01.00) 391 | - RCTRequired 392 | - RCTTypeSafety 393 | - React-Core 394 | - React-cxxreact 395 | - React-debug 396 | - React-graphics 397 | - React-jsi 398 | - React-jsiexecutor 399 | - React-logger 400 | - React-rendererdebug 401 | - React-runtimescheduler 402 | - React-utils 403 | - ReactCommon/turbomodule/core 404 | - React-Fabric/componentregistry (0.74.4): 405 | - DoubleConversion 406 | - fmt (= 9.1.0) 407 | - glog 408 | - hermes-engine 409 | - RCT-Folly/Fabric (= 2024.01.01.00) 410 | - RCTRequired 411 | - RCTTypeSafety 412 | - React-Core 413 | - React-cxxreact 414 | - React-debug 415 | - React-graphics 416 | - React-jsi 417 | - React-jsiexecutor 418 | - React-logger 419 | - React-rendererdebug 420 | - React-runtimescheduler 421 | - React-utils 422 | - ReactCommon/turbomodule/core 423 | - React-Fabric/componentregistrynative (0.74.4): 424 | - DoubleConversion 425 | - fmt (= 9.1.0) 426 | - glog 427 | - hermes-engine 428 | - RCT-Folly/Fabric (= 2024.01.01.00) 429 | - RCTRequired 430 | - RCTTypeSafety 431 | - React-Core 432 | - React-cxxreact 433 | - React-debug 434 | - React-graphics 435 | - React-jsi 436 | - React-jsiexecutor 437 | - React-logger 438 | - React-rendererdebug 439 | - React-runtimescheduler 440 | - React-utils 441 | - ReactCommon/turbomodule/core 442 | - React-Fabric/components (0.74.4): 443 | - DoubleConversion 444 | - fmt (= 9.1.0) 445 | - glog 446 | - hermes-engine 447 | - RCT-Folly/Fabric (= 2024.01.01.00) 448 | - RCTRequired 449 | - RCTTypeSafety 450 | - React-Core 451 | - React-cxxreact 452 | - React-debug 453 | - React-Fabric/components/inputaccessory (= 0.74.4) 454 | - React-Fabric/components/legacyviewmanagerinterop (= 0.74.4) 455 | - React-Fabric/components/modal (= 0.74.4) 456 | - React-Fabric/components/rncore (= 0.74.4) 457 | - React-Fabric/components/root (= 0.74.4) 458 | - React-Fabric/components/safeareaview (= 0.74.4) 459 | - React-Fabric/components/scrollview (= 0.74.4) 460 | - React-Fabric/components/text (= 0.74.4) 461 | - React-Fabric/components/textinput (= 0.74.4) 462 | - React-Fabric/components/unimplementedview (= 0.74.4) 463 | - React-Fabric/components/view (= 0.74.4) 464 | - React-graphics 465 | - React-jsi 466 | - React-jsiexecutor 467 | - React-logger 468 | - React-rendererdebug 469 | - React-runtimescheduler 470 | - React-utils 471 | - ReactCommon/turbomodule/core 472 | - React-Fabric/components/inputaccessory (0.74.4): 473 | - DoubleConversion 474 | - fmt (= 9.1.0) 475 | - glog 476 | - hermes-engine 477 | - RCT-Folly/Fabric (= 2024.01.01.00) 478 | - RCTRequired 479 | - RCTTypeSafety 480 | - React-Core 481 | - React-cxxreact 482 | - React-debug 483 | - React-graphics 484 | - React-jsi 485 | - React-jsiexecutor 486 | - React-logger 487 | - React-rendererdebug 488 | - React-runtimescheduler 489 | - React-utils 490 | - ReactCommon/turbomodule/core 491 | - React-Fabric/components/legacyviewmanagerinterop (0.74.4): 492 | - DoubleConversion 493 | - fmt (= 9.1.0) 494 | - glog 495 | - hermes-engine 496 | - RCT-Folly/Fabric (= 2024.01.01.00) 497 | - RCTRequired 498 | - RCTTypeSafety 499 | - React-Core 500 | - React-cxxreact 501 | - React-debug 502 | - React-graphics 503 | - React-jsi 504 | - React-jsiexecutor 505 | - React-logger 506 | - React-rendererdebug 507 | - React-runtimescheduler 508 | - React-utils 509 | - ReactCommon/turbomodule/core 510 | - React-Fabric/components/modal (0.74.4): 511 | - DoubleConversion 512 | - fmt (= 9.1.0) 513 | - glog 514 | - hermes-engine 515 | - RCT-Folly/Fabric (= 2024.01.01.00) 516 | - RCTRequired 517 | - RCTTypeSafety 518 | - React-Core 519 | - React-cxxreact 520 | - React-debug 521 | - React-graphics 522 | - React-jsi 523 | - React-jsiexecutor 524 | - React-logger 525 | - React-rendererdebug 526 | - React-runtimescheduler 527 | - React-utils 528 | - ReactCommon/turbomodule/core 529 | - React-Fabric/components/rncore (0.74.4): 530 | - DoubleConversion 531 | - fmt (= 9.1.0) 532 | - glog 533 | - hermes-engine 534 | - RCT-Folly/Fabric (= 2024.01.01.00) 535 | - RCTRequired 536 | - RCTTypeSafety 537 | - React-Core 538 | - React-cxxreact 539 | - React-debug 540 | - React-graphics 541 | - React-jsi 542 | - React-jsiexecutor 543 | - React-logger 544 | - React-rendererdebug 545 | - React-runtimescheduler 546 | - React-utils 547 | - ReactCommon/turbomodule/core 548 | - React-Fabric/components/root (0.74.4): 549 | - DoubleConversion 550 | - fmt (= 9.1.0) 551 | - glog 552 | - hermes-engine 553 | - RCT-Folly/Fabric (= 2024.01.01.00) 554 | - RCTRequired 555 | - RCTTypeSafety 556 | - React-Core 557 | - React-cxxreact 558 | - React-debug 559 | - React-graphics 560 | - React-jsi 561 | - React-jsiexecutor 562 | - React-logger 563 | - React-rendererdebug 564 | - React-runtimescheduler 565 | - React-utils 566 | - ReactCommon/turbomodule/core 567 | - React-Fabric/components/safeareaview (0.74.4): 568 | - DoubleConversion 569 | - fmt (= 9.1.0) 570 | - glog 571 | - hermes-engine 572 | - RCT-Folly/Fabric (= 2024.01.01.00) 573 | - RCTRequired 574 | - RCTTypeSafety 575 | - React-Core 576 | - React-cxxreact 577 | - React-debug 578 | - React-graphics 579 | - React-jsi 580 | - React-jsiexecutor 581 | - React-logger 582 | - React-rendererdebug 583 | - React-runtimescheduler 584 | - React-utils 585 | - ReactCommon/turbomodule/core 586 | - React-Fabric/components/scrollview (0.74.4): 587 | - DoubleConversion 588 | - fmt (= 9.1.0) 589 | - glog 590 | - hermes-engine 591 | - RCT-Folly/Fabric (= 2024.01.01.00) 592 | - RCTRequired 593 | - RCTTypeSafety 594 | - React-Core 595 | - React-cxxreact 596 | - React-debug 597 | - React-graphics 598 | - React-jsi 599 | - React-jsiexecutor 600 | - React-logger 601 | - React-rendererdebug 602 | - React-runtimescheduler 603 | - React-utils 604 | - ReactCommon/turbomodule/core 605 | - React-Fabric/components/text (0.74.4): 606 | - DoubleConversion 607 | - fmt (= 9.1.0) 608 | - glog 609 | - hermes-engine 610 | - RCT-Folly/Fabric (= 2024.01.01.00) 611 | - RCTRequired 612 | - RCTTypeSafety 613 | - React-Core 614 | - React-cxxreact 615 | - React-debug 616 | - React-graphics 617 | - React-jsi 618 | - React-jsiexecutor 619 | - React-logger 620 | - React-rendererdebug 621 | - React-runtimescheduler 622 | - React-utils 623 | - ReactCommon/turbomodule/core 624 | - React-Fabric/components/textinput (0.74.4): 625 | - DoubleConversion 626 | - fmt (= 9.1.0) 627 | - glog 628 | - hermes-engine 629 | - RCT-Folly/Fabric (= 2024.01.01.00) 630 | - RCTRequired 631 | - RCTTypeSafety 632 | - React-Core 633 | - React-cxxreact 634 | - React-debug 635 | - React-graphics 636 | - React-jsi 637 | - React-jsiexecutor 638 | - React-logger 639 | - React-rendererdebug 640 | - React-runtimescheduler 641 | - React-utils 642 | - ReactCommon/turbomodule/core 643 | - React-Fabric/components/unimplementedview (0.74.4): 644 | - DoubleConversion 645 | - fmt (= 9.1.0) 646 | - glog 647 | - hermes-engine 648 | - RCT-Folly/Fabric (= 2024.01.01.00) 649 | - RCTRequired 650 | - RCTTypeSafety 651 | - React-Core 652 | - React-cxxreact 653 | - React-debug 654 | - React-graphics 655 | - React-jsi 656 | - React-jsiexecutor 657 | - React-logger 658 | - React-rendererdebug 659 | - React-runtimescheduler 660 | - React-utils 661 | - ReactCommon/turbomodule/core 662 | - React-Fabric/components/view (0.74.4): 663 | - DoubleConversion 664 | - fmt (= 9.1.0) 665 | - glog 666 | - hermes-engine 667 | - RCT-Folly/Fabric (= 2024.01.01.00) 668 | - RCTRequired 669 | - RCTTypeSafety 670 | - React-Core 671 | - React-cxxreact 672 | - React-debug 673 | - React-graphics 674 | - React-jsi 675 | - React-jsiexecutor 676 | - React-logger 677 | - React-rendererdebug 678 | - React-runtimescheduler 679 | - React-utils 680 | - ReactCommon/turbomodule/core 681 | - Yoga 682 | - React-Fabric/core (0.74.4): 683 | - DoubleConversion 684 | - fmt (= 9.1.0) 685 | - glog 686 | - hermes-engine 687 | - RCT-Folly/Fabric (= 2024.01.01.00) 688 | - RCTRequired 689 | - RCTTypeSafety 690 | - React-Core 691 | - React-cxxreact 692 | - React-debug 693 | - React-graphics 694 | - React-jsi 695 | - React-jsiexecutor 696 | - React-logger 697 | - React-rendererdebug 698 | - React-runtimescheduler 699 | - React-utils 700 | - ReactCommon/turbomodule/core 701 | - React-Fabric/imagemanager (0.74.4): 702 | - DoubleConversion 703 | - fmt (= 9.1.0) 704 | - glog 705 | - hermes-engine 706 | - RCT-Folly/Fabric (= 2024.01.01.00) 707 | - RCTRequired 708 | - RCTTypeSafety 709 | - React-Core 710 | - React-cxxreact 711 | - React-debug 712 | - React-graphics 713 | - React-jsi 714 | - React-jsiexecutor 715 | - React-logger 716 | - React-rendererdebug 717 | - React-runtimescheduler 718 | - React-utils 719 | - ReactCommon/turbomodule/core 720 | - React-Fabric/leakchecker (0.74.4): 721 | - DoubleConversion 722 | - fmt (= 9.1.0) 723 | - glog 724 | - hermes-engine 725 | - RCT-Folly/Fabric (= 2024.01.01.00) 726 | - RCTRequired 727 | - RCTTypeSafety 728 | - React-Core 729 | - React-cxxreact 730 | - React-debug 731 | - React-graphics 732 | - React-jsi 733 | - React-jsiexecutor 734 | - React-logger 735 | - React-rendererdebug 736 | - React-runtimescheduler 737 | - React-utils 738 | - ReactCommon/turbomodule/core 739 | - React-Fabric/mounting (0.74.4): 740 | - DoubleConversion 741 | - fmt (= 9.1.0) 742 | - glog 743 | - hermes-engine 744 | - RCT-Folly/Fabric (= 2024.01.01.00) 745 | - RCTRequired 746 | - RCTTypeSafety 747 | - React-Core 748 | - React-cxxreact 749 | - React-debug 750 | - React-graphics 751 | - React-jsi 752 | - React-jsiexecutor 753 | - React-logger 754 | - React-rendererdebug 755 | - React-runtimescheduler 756 | - React-utils 757 | - ReactCommon/turbomodule/core 758 | - React-Fabric/scheduler (0.74.4): 759 | - DoubleConversion 760 | - fmt (= 9.1.0) 761 | - glog 762 | - hermes-engine 763 | - RCT-Folly/Fabric (= 2024.01.01.00) 764 | - RCTRequired 765 | - RCTTypeSafety 766 | - React-Core 767 | - React-cxxreact 768 | - React-debug 769 | - React-graphics 770 | - React-jsi 771 | - React-jsiexecutor 772 | - React-logger 773 | - React-rendererdebug 774 | - React-runtimescheduler 775 | - React-utils 776 | - ReactCommon/turbomodule/core 777 | - React-Fabric/telemetry (0.74.4): 778 | - DoubleConversion 779 | - fmt (= 9.1.0) 780 | - glog 781 | - hermes-engine 782 | - RCT-Folly/Fabric (= 2024.01.01.00) 783 | - RCTRequired 784 | - RCTTypeSafety 785 | - React-Core 786 | - React-cxxreact 787 | - React-debug 788 | - React-graphics 789 | - React-jsi 790 | - React-jsiexecutor 791 | - React-logger 792 | - React-rendererdebug 793 | - React-runtimescheduler 794 | - React-utils 795 | - ReactCommon/turbomodule/core 796 | - React-Fabric/templateprocessor (0.74.4): 797 | - DoubleConversion 798 | - fmt (= 9.1.0) 799 | - glog 800 | - hermes-engine 801 | - RCT-Folly/Fabric (= 2024.01.01.00) 802 | - RCTRequired 803 | - RCTTypeSafety 804 | - React-Core 805 | - React-cxxreact 806 | - React-debug 807 | - React-graphics 808 | - React-jsi 809 | - React-jsiexecutor 810 | - React-logger 811 | - React-rendererdebug 812 | - React-runtimescheduler 813 | - React-utils 814 | - ReactCommon/turbomodule/core 815 | - React-Fabric/textlayoutmanager (0.74.4): 816 | - DoubleConversion 817 | - fmt (= 9.1.0) 818 | - glog 819 | - hermes-engine 820 | - RCT-Folly/Fabric (= 2024.01.01.00) 821 | - RCTRequired 822 | - RCTTypeSafety 823 | - React-Core 824 | - React-cxxreact 825 | - React-debug 826 | - React-Fabric/uimanager 827 | - React-graphics 828 | - React-jsi 829 | - React-jsiexecutor 830 | - React-logger 831 | - React-rendererdebug 832 | - React-runtimescheduler 833 | - React-utils 834 | - ReactCommon/turbomodule/core 835 | - React-Fabric/uimanager (0.74.4): 836 | - DoubleConversion 837 | - fmt (= 9.1.0) 838 | - glog 839 | - hermes-engine 840 | - RCT-Folly/Fabric (= 2024.01.01.00) 841 | - RCTRequired 842 | - RCTTypeSafety 843 | - React-Core 844 | - React-cxxreact 845 | - React-debug 846 | - React-graphics 847 | - React-jsi 848 | - React-jsiexecutor 849 | - React-logger 850 | - React-rendererdebug 851 | - React-runtimescheduler 852 | - React-utils 853 | - ReactCommon/turbomodule/core 854 | - React-FabricImage (0.74.4): 855 | - DoubleConversion 856 | - fmt (= 9.1.0) 857 | - glog 858 | - hermes-engine 859 | - RCT-Folly/Fabric (= 2024.01.01.00) 860 | - RCTRequired (= 0.74.4) 861 | - RCTTypeSafety (= 0.74.4) 862 | - React-Fabric 863 | - React-graphics 864 | - React-ImageManager 865 | - React-jsi 866 | - React-jsiexecutor (= 0.74.4) 867 | - React-logger 868 | - React-rendererdebug 869 | - React-utils 870 | - ReactCommon 871 | - Yoga 872 | - React-featureflags (0.74.4) 873 | - React-graphics (0.74.4): 874 | - DoubleConversion 875 | - fmt (= 9.1.0) 876 | - glog 877 | - RCT-Folly/Fabric (= 2024.01.01.00) 878 | - React-Core/Default (= 0.74.4) 879 | - React-utils 880 | - React-hermes (0.74.4): 881 | - DoubleConversion 882 | - fmt (= 9.1.0) 883 | - glog 884 | - hermes-engine 885 | - RCT-Folly (= 2024.01.01.00) 886 | - React-cxxreact (= 0.74.4) 887 | - React-jsi 888 | - React-jsiexecutor (= 0.74.4) 889 | - React-jsinspector 890 | - React-perflogger (= 0.74.4) 891 | - React-runtimeexecutor 892 | - React-ImageManager (0.74.4): 893 | - glog 894 | - RCT-Folly/Fabric 895 | - React-Core/Default 896 | - React-debug 897 | - React-Fabric 898 | - React-graphics 899 | - React-rendererdebug 900 | - React-utils 901 | - React-jserrorhandler (0.74.4): 902 | - RCT-Folly/Fabric (= 2024.01.01.00) 903 | - React-debug 904 | - React-jsi 905 | - React-Mapbuffer 906 | - React-jsi (0.74.4): 907 | - boost (= 1.83.0) 908 | - DoubleConversion 909 | - fmt (= 9.1.0) 910 | - glog 911 | - hermes-engine 912 | - RCT-Folly (= 2024.01.01.00) 913 | - React-jsiexecutor (0.74.4): 914 | - DoubleConversion 915 | - fmt (= 9.1.0) 916 | - glog 917 | - hermes-engine 918 | - RCT-Folly (= 2024.01.01.00) 919 | - React-cxxreact (= 0.74.4) 920 | - React-jsi (= 0.74.4) 921 | - React-jsinspector 922 | - React-perflogger (= 0.74.4) 923 | - React-jsinspector (0.74.4): 924 | - DoubleConversion 925 | - glog 926 | - hermes-engine 927 | - RCT-Folly (= 2024.01.01.00) 928 | - React-featureflags 929 | - React-jsi 930 | - React-runtimeexecutor (= 0.74.4) 931 | - React-jsitracing (0.74.4): 932 | - React-jsi 933 | - React-logger (0.74.4): 934 | - glog 935 | - React-Mapbuffer (0.74.4): 936 | - glog 937 | - React-debug 938 | - react-native-config (1.5.3): 939 | - react-native-config/App (= 1.5.3) 940 | - react-native-config/App (1.5.3): 941 | - React-Core 942 | - React-nativeconfig (0.74.4) 943 | - React-NativeModulesApple (0.74.4): 944 | - glog 945 | - hermes-engine 946 | - React-callinvoker 947 | - React-Core 948 | - React-cxxreact 949 | - React-jsi 950 | - React-jsinspector 951 | - React-runtimeexecutor 952 | - ReactCommon/turbomodule/bridging 953 | - ReactCommon/turbomodule/core 954 | - React-perflogger (0.74.4) 955 | - React-RCTActionSheet (0.74.4): 956 | - React-Core/RCTActionSheetHeaders (= 0.74.4) 957 | - React-RCTAnimation (0.74.4): 958 | - RCT-Folly (= 2024.01.01.00) 959 | - RCTTypeSafety 960 | - React-Codegen 961 | - React-Core/RCTAnimationHeaders 962 | - React-jsi 963 | - React-NativeModulesApple 964 | - ReactCommon 965 | - React-RCTAppDelegate (0.74.4): 966 | - RCT-Folly (= 2024.01.01.00) 967 | - RCTRequired 968 | - RCTTypeSafety 969 | - React-Codegen 970 | - React-Core 971 | - React-CoreModules 972 | - React-debug 973 | - React-Fabric 974 | - React-featureflags 975 | - React-graphics 976 | - React-hermes 977 | - React-nativeconfig 978 | - React-NativeModulesApple 979 | - React-RCTFabric 980 | - React-RCTImage 981 | - React-RCTNetwork 982 | - React-rendererdebug 983 | - React-RuntimeApple 984 | - React-RuntimeCore 985 | - React-RuntimeHermes 986 | - React-runtimescheduler 987 | - React-utils 988 | - ReactCommon 989 | - React-RCTBlob (0.74.4): 990 | - DoubleConversion 991 | - fmt (= 9.1.0) 992 | - hermes-engine 993 | - RCT-Folly (= 2024.01.01.00) 994 | - React-Codegen 995 | - React-Core/RCTBlobHeaders 996 | - React-Core/RCTWebSocket 997 | - React-jsi 998 | - React-jsinspector 999 | - React-NativeModulesApple 1000 | - React-RCTNetwork 1001 | - ReactCommon 1002 | - React-RCTFabric (0.74.4): 1003 | - glog 1004 | - hermes-engine 1005 | - RCT-Folly/Fabric (= 2024.01.01.00) 1006 | - React-Core 1007 | - React-debug 1008 | - React-Fabric 1009 | - React-FabricImage 1010 | - React-featureflags 1011 | - React-graphics 1012 | - React-ImageManager 1013 | - React-jsi 1014 | - React-jsinspector 1015 | - React-nativeconfig 1016 | - React-RCTImage 1017 | - React-RCTText 1018 | - React-rendererdebug 1019 | - React-runtimescheduler 1020 | - React-utils 1021 | - Yoga 1022 | - React-RCTImage (0.74.4): 1023 | - RCT-Folly (= 2024.01.01.00) 1024 | - RCTTypeSafety 1025 | - React-Codegen 1026 | - React-Core/RCTImageHeaders 1027 | - React-jsi 1028 | - React-NativeModulesApple 1029 | - React-RCTNetwork 1030 | - ReactCommon 1031 | - React-RCTLinking (0.74.4): 1032 | - React-Codegen 1033 | - React-Core/RCTLinkingHeaders (= 0.74.4) 1034 | - React-jsi (= 0.74.4) 1035 | - React-NativeModulesApple 1036 | - ReactCommon 1037 | - ReactCommon/turbomodule/core (= 0.74.4) 1038 | - React-RCTNetwork (0.74.4): 1039 | - RCT-Folly (= 2024.01.01.00) 1040 | - RCTTypeSafety 1041 | - React-Codegen 1042 | - React-Core/RCTNetworkHeaders 1043 | - React-jsi 1044 | - React-NativeModulesApple 1045 | - ReactCommon 1046 | - React-RCTSettings (0.74.4): 1047 | - RCT-Folly (= 2024.01.01.00) 1048 | - RCTTypeSafety 1049 | - React-Codegen 1050 | - React-Core/RCTSettingsHeaders 1051 | - React-jsi 1052 | - React-NativeModulesApple 1053 | - ReactCommon 1054 | - React-RCTText (0.74.4): 1055 | - React-Core/RCTTextHeaders (= 0.74.4) 1056 | - Yoga 1057 | - React-RCTVibration (0.74.4): 1058 | - RCT-Folly (= 2024.01.01.00) 1059 | - React-Codegen 1060 | - React-Core/RCTVibrationHeaders 1061 | - React-jsi 1062 | - React-NativeModulesApple 1063 | - ReactCommon 1064 | - React-rendererdebug (0.74.4): 1065 | - DoubleConversion 1066 | - fmt (= 9.1.0) 1067 | - RCT-Folly (= 2024.01.01.00) 1068 | - React-debug 1069 | - React-rncore (0.74.4) 1070 | - React-RuntimeApple (0.74.4): 1071 | - hermes-engine 1072 | - RCT-Folly/Fabric (= 2024.01.01.00) 1073 | - React-callinvoker 1074 | - React-Core/Default 1075 | - React-CoreModules 1076 | - React-cxxreact 1077 | - React-jserrorhandler 1078 | - React-jsi 1079 | - React-jsiexecutor 1080 | - React-jsinspector 1081 | - React-Mapbuffer 1082 | - React-NativeModulesApple 1083 | - React-RCTFabric 1084 | - React-RuntimeCore 1085 | - React-runtimeexecutor 1086 | - React-RuntimeHermes 1087 | - React-utils 1088 | - React-RuntimeCore (0.74.4): 1089 | - glog 1090 | - hermes-engine 1091 | - RCT-Folly/Fabric (= 2024.01.01.00) 1092 | - React-cxxreact 1093 | - React-featureflags 1094 | - React-jserrorhandler 1095 | - React-jsi 1096 | - React-jsiexecutor 1097 | - React-jsinspector 1098 | - React-runtimeexecutor 1099 | - React-runtimescheduler 1100 | - React-utils 1101 | - React-runtimeexecutor (0.74.4): 1102 | - React-jsi (= 0.74.4) 1103 | - React-RuntimeHermes (0.74.4): 1104 | - hermes-engine 1105 | - RCT-Folly/Fabric (= 2024.01.01.00) 1106 | - React-featureflags 1107 | - React-hermes 1108 | - React-jsi 1109 | - React-jsinspector 1110 | - React-jsitracing 1111 | - React-nativeconfig 1112 | - React-RuntimeCore 1113 | - React-utils 1114 | - React-runtimescheduler (0.74.4): 1115 | - glog 1116 | - hermes-engine 1117 | - RCT-Folly (= 2024.01.01.00) 1118 | - React-callinvoker 1119 | - React-cxxreact 1120 | - React-debug 1121 | - React-featureflags 1122 | - React-jsi 1123 | - React-rendererdebug 1124 | - React-runtimeexecutor 1125 | - React-utils 1126 | - React-utils (0.74.4): 1127 | - glog 1128 | - hermes-engine 1129 | - RCT-Folly (= 2024.01.01.00) 1130 | - React-debug 1131 | - React-jsi (= 0.74.4) 1132 | - ReactCommon (0.74.4): 1133 | - ReactCommon/turbomodule (= 0.74.4) 1134 | - ReactCommon/turbomodule (0.74.4): 1135 | - DoubleConversion 1136 | - fmt (= 9.1.0) 1137 | - glog 1138 | - hermes-engine 1139 | - RCT-Folly (= 2024.01.01.00) 1140 | - React-callinvoker (= 0.74.4) 1141 | - React-cxxreact (= 0.74.4) 1142 | - React-jsi (= 0.74.4) 1143 | - React-logger (= 0.74.4) 1144 | - React-perflogger (= 0.74.4) 1145 | - ReactCommon/turbomodule/bridging (= 0.74.4) 1146 | - ReactCommon/turbomodule/core (= 0.74.4) 1147 | - ReactCommon/turbomodule/bridging (0.74.4): 1148 | - DoubleConversion 1149 | - fmt (= 9.1.0) 1150 | - glog 1151 | - hermes-engine 1152 | - RCT-Folly (= 2024.01.01.00) 1153 | - React-callinvoker (= 0.74.4) 1154 | - React-cxxreact (= 0.74.4) 1155 | - React-jsi (= 0.74.4) 1156 | - React-logger (= 0.74.4) 1157 | - React-perflogger (= 0.74.4) 1158 | - ReactCommon/turbomodule/core (0.74.4): 1159 | - DoubleConversion 1160 | - fmt (= 9.1.0) 1161 | - glog 1162 | - hermes-engine 1163 | - RCT-Folly (= 2024.01.01.00) 1164 | - React-callinvoker (= 0.74.4) 1165 | - React-cxxreact (= 0.74.4) 1166 | - React-debug (= 0.74.4) 1167 | - React-jsi (= 0.74.4) 1168 | - React-logger (= 0.74.4) 1169 | - React-perflogger (= 0.74.4) 1170 | - React-utils (= 0.74.4) 1171 | - SocketRocket (0.7.0) 1172 | - Yoga (0.0.0) 1173 | 1174 | DEPENDENCIES: 1175 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) 1176 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) 1177 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) 1178 | - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) 1179 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) 1180 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) 1181 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1182 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1183 | - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) 1184 | - RCTRequired (from `../node_modules/react-native/Libraries/Required`) 1185 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) 1186 | - React (from `../node_modules/react-native/`) 1187 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) 1188 | - React-Codegen (from `build/generated/ios`) 1189 | - React-Core (from `../node_modules/react-native/`) 1190 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`) 1191 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) 1192 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) 1193 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) 1194 | - React-Fabric (from `../node_modules/react-native/ReactCommon`) 1195 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`) 1196 | - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) 1197 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) 1198 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) 1199 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) 1200 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) 1201 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) 1202 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) 1203 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) 1204 | - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) 1205 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`) 1206 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) 1207 | - react-native-config (from `../node_modules/react-native-config`) 1208 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) 1209 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) 1210 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) 1211 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) 1212 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) 1213 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) 1214 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) 1215 | - React-RCTFabric (from `../node_modules/react-native/React`) 1216 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) 1217 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) 1218 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) 1219 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) 1220 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`) 1221 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) 1222 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) 1223 | - React-rncore (from `../node_modules/react-native/ReactCommon`) 1224 | - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) 1225 | - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) 1226 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) 1227 | - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) 1228 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) 1229 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) 1230 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) 1231 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) 1232 | 1233 | SPEC REPOS: 1234 | trunk: 1235 | - SocketRocket 1236 | 1237 | EXTERNAL SOURCES: 1238 | boost: 1239 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" 1240 | DoubleConversion: 1241 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" 1242 | FBLazyVector: 1243 | :path: "../node_modules/react-native/Libraries/FBLazyVector" 1244 | fmt: 1245 | :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" 1246 | glog: 1247 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" 1248 | hermes-engine: 1249 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" 1250 | :tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85 1251 | RCT-Folly: 1252 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" 1253 | RCTDeprecation: 1254 | :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" 1255 | RCTRequired: 1256 | :path: "../node_modules/react-native/Libraries/Required" 1257 | RCTTypeSafety: 1258 | :path: "../node_modules/react-native/Libraries/TypeSafety" 1259 | React: 1260 | :path: "../node_modules/react-native/" 1261 | React-callinvoker: 1262 | :path: "../node_modules/react-native/ReactCommon/callinvoker" 1263 | React-Codegen: 1264 | :path: build/generated/ios 1265 | React-Core: 1266 | :path: "../node_modules/react-native/" 1267 | React-CoreModules: 1268 | :path: "../node_modules/react-native/React/CoreModules" 1269 | React-cxxreact: 1270 | :path: "../node_modules/react-native/ReactCommon/cxxreact" 1271 | React-debug: 1272 | :path: "../node_modules/react-native/ReactCommon/react/debug" 1273 | React-Fabric: 1274 | :path: "../node_modules/react-native/ReactCommon" 1275 | React-FabricImage: 1276 | :path: "../node_modules/react-native/ReactCommon" 1277 | React-featureflags: 1278 | :path: "../node_modules/react-native/ReactCommon/react/featureflags" 1279 | React-graphics: 1280 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" 1281 | React-hermes: 1282 | :path: "../node_modules/react-native/ReactCommon/hermes" 1283 | React-ImageManager: 1284 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" 1285 | React-jserrorhandler: 1286 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler" 1287 | React-jsi: 1288 | :path: "../node_modules/react-native/ReactCommon/jsi" 1289 | React-jsiexecutor: 1290 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" 1291 | React-jsinspector: 1292 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" 1293 | React-jsitracing: 1294 | :path: "../node_modules/react-native/ReactCommon/hermes/executor/" 1295 | React-logger: 1296 | :path: "../node_modules/react-native/ReactCommon/logger" 1297 | React-Mapbuffer: 1298 | :path: "../node_modules/react-native/ReactCommon" 1299 | react-native-config: 1300 | :path: "../node_modules/react-native-config" 1301 | React-nativeconfig: 1302 | :path: "../node_modules/react-native/ReactCommon" 1303 | React-NativeModulesApple: 1304 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" 1305 | React-perflogger: 1306 | :path: "../node_modules/react-native/ReactCommon/reactperflogger" 1307 | React-RCTActionSheet: 1308 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS" 1309 | React-RCTAnimation: 1310 | :path: "../node_modules/react-native/Libraries/NativeAnimation" 1311 | React-RCTAppDelegate: 1312 | :path: "../node_modules/react-native/Libraries/AppDelegate" 1313 | React-RCTBlob: 1314 | :path: "../node_modules/react-native/Libraries/Blob" 1315 | React-RCTFabric: 1316 | :path: "../node_modules/react-native/React" 1317 | React-RCTImage: 1318 | :path: "../node_modules/react-native/Libraries/Image" 1319 | React-RCTLinking: 1320 | :path: "../node_modules/react-native/Libraries/LinkingIOS" 1321 | React-RCTNetwork: 1322 | :path: "../node_modules/react-native/Libraries/Network" 1323 | React-RCTSettings: 1324 | :path: "../node_modules/react-native/Libraries/Settings" 1325 | React-RCTText: 1326 | :path: "../node_modules/react-native/Libraries/Text" 1327 | React-RCTVibration: 1328 | :path: "../node_modules/react-native/Libraries/Vibration" 1329 | React-rendererdebug: 1330 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" 1331 | React-rncore: 1332 | :path: "../node_modules/react-native/ReactCommon" 1333 | React-RuntimeApple: 1334 | :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" 1335 | React-RuntimeCore: 1336 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1337 | React-runtimeexecutor: 1338 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" 1339 | React-RuntimeHermes: 1340 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1341 | React-runtimescheduler: 1342 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" 1343 | React-utils: 1344 | :path: "../node_modules/react-native/ReactCommon/react/utils" 1345 | ReactCommon: 1346 | :path: "../node_modules/react-native/ReactCommon" 1347 | Yoga: 1348 | :path: "../node_modules/react-native/ReactCommon/yoga" 1349 | 1350 | SPEC CHECKSUMS: 1351 | boost: d3f49c53809116a5d38da093a8aa78bf551aed09 1352 | DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 1353 | FBLazyVector: 4c674c2d53de79c145d6a723910543d7b57ed74c 1354 | fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 1355 | glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f 1356 | hermes-engine: 1f547997900dd0752dc0cc0ae6dd16173c49e09b 1357 | RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 1358 | RCTDeprecation: d83da85890d5bb18efd2809a733865c1c5c11487 1359 | RCTRequired: e109419eacfb10fbb79a3ecb57ebcad198593d8a 1360 | RCTTypeSafety: 9d0307c2738867b9850f096914a15294124b2439 1361 | React: 40ad59420ae403a6d2d49f2787f0bfaabaed4fdf 1362 | React-callinvoker: a5fb605689272d6f5640738311aa510d3f59869f 1363 | React-Codegen: 3267a426718c8a0a979d0cd0495ba793cfdba7ca 1364 | React-Core: b1eeb2b94117f6ef5b4b0ed38f2f8d482ce915ce 1365 | React-CoreModules: e60a158a4e1b109ccdd781fb649f36691eb954d7 1366 | React-cxxreact: 3749b5548f8b66a304729e159dfaf3cfd7196c3a 1367 | React-debug: 8e15e6d6456f9b8521958deb40157eeeaac2914d 1368 | React-Fabric: 52cf1f94d5c6b05fe6057ba07796a633daf93735 1369 | React-FabricImage: 6e0f28a6ec040be4b5bd1a6e5eeda7263639a24c 1370 | React-featureflags: 81279a0d43736e9867cf0b736c868257af04c827 1371 | React-graphics: 37c161d8e634526897f12837f3e62a2895dede95 1372 | React-hermes: 3cfa4668970c810db0f6b43bd5c32f5927fd0500 1373 | React-ImageManager: 276987aeb4008fe8abe10bfc53d7160c96c31052 1374 | React-jserrorhandler: 0cdb976ee0e2ed4b93f501491e84954f80bf5f34 1375 | React-jsi: 18011ef308cc43e2fb21a1de0b61eabd9f899887 1376 | React-jsiexecutor: 156298b2ddebed0f6bcc526edd3deb4d240437bc 1377 | React-jsinspector: ed6c5a768dea8e344f07242bd9946b666b78228e 1378 | React-jsitracing: 4e9c99e73a6269b27b0d4cbab277dd90df3e5ac0 1379 | React-logger: fbfb50e2a2b1b46ee087f0a52739fadecc5e81a4 1380 | React-Mapbuffer: d39610dff659d8cf1fea485abae08bbf6f9c8279 1381 | react-native-config: 8f7283449bbb048902f4e764affbbf24504454af 1382 | React-nativeconfig: 2be4363c2c4ac2b42419577774e83e4e4fd2af9f 1383 | React-NativeModulesApple: 453ada38f826a508e48872c7a7877c431af48bba 1384 | React-perflogger: 9745f800ab4d12ec4325bde7bd090eafb87c5570 1385 | React-RCTActionSheet: 4225e883c5feaffc072c86128cc42cb070097010 1386 | React-RCTAnimation: 6b318e7e475ea574abf6a65e58e4989dd19d9ec4 1387 | React-RCTAppDelegate: 00d29b205df54386bc4e9c8929c500ed00ee1d57 1388 | React-RCTBlob: cf152386cc829be9323b2845fd9ec25122a986c3 1389 | React-RCTFabric: 071b326a331bd1ccb59e5886c0cd38e414ec9c9f 1390 | React-RCTImage: d3d5e0f0740fbd53705f7e9acc067bafe395026c 1391 | React-RCTLinking: 3ed7d222d3534287b408855b9d378d6576b7661b 1392 | React-RCTNetwork: 33a6bb615c1f7678538298aed9f27ecd69d512f3 1393 | React-RCTSettings: bbadd0bedde8fc5f4ef337534b1368d61e104e76 1394 | React-RCTText: 1a41cd4ce814366745b6107e6f15eb0ada7ff240 1395 | React-RCTVibration: 8275c91f707e03ead0a010e9fbeda53a645335ca 1396 | React-rendererdebug: 6ba24e1d975c89a6e92440be4f246ba8bed432c6 1397 | React-rncore: 65fe0264f5c93ccb65bd6cae6201c80d34e625c0 1398 | React-RuntimeApple: 93e7c4c6a0be2eb3ce8dc31fdddea5708cd2ad2b 1399 | React-RuntimeCore: 1a2f2dfcba853d01c083db2b7d96f32f9768a677 1400 | React-runtimeexecutor: 6abf418f2d0038fb3fef15444d9c691db198771c 1401 | React-RuntimeHermes: fb6f76a5cd4212a0af4789794d4a9f5147e2f1aa 1402 | React-runtimescheduler: 3f312d33f475467a59864e0c5ab8708461387d1c 1403 | React-utils: e8b0eac797c81c574b24f6515fec4015599b643c 1404 | ReactCommon: eebffb37a90138c6db6eb8b2d952e7e5c6bc083c 1405 | SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d 1406 | Yoga: 0efb3e1bd40ba59b009f01badea863281101de78 1407 | 1408 | PODFILE CHECKSUM: 9fe6a76965586f8d4fa168c802a07117b321e052 1409 | 1410 | COCOAPODS: 1.14.3 1411 | -------------------------------------------------------------------------------- /ios/beplus.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 00E356F31AD99517003FC87E /* beplusTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* beplusTests.m */; }; 11 | 0C80B921A6F3F58F76C31292 /* libPods-beplus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-beplus.a */; }; 12 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 14 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 15 | 7699B88040F8A987B510C191 /* libPods-beplus-beplusTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-beplus-beplusTests.a */; }; 16 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; 17 | B36DFDA02BF5EB6E00168E7F /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = B36DFD9F2BF5EB6E00168E7F /* PrivacyInfo.xcprivacy */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A; 26 | remoteInfo = beplus; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 00E356EE1AD99517003FC87E /* beplusTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = beplusTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 32 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 33 | 00E356F21AD99517003FC87E /* beplusTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = beplusTests.m; sourceTree = ""; }; 34 | 117C9F05B24DF3C0AC0658B9 /* Pods-beplus.releasedev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus.releasedev.xcconfig"; path = "Target Support Files/Pods-beplus/Pods-beplus.releasedev.xcconfig"; sourceTree = ""; }; 35 | 13B07F961A680F5B00A75B9A /* beplus.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = beplus.app; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = beplus/AppDelegate.h; sourceTree = ""; }; 37 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = beplus/AppDelegate.mm; sourceTree = ""; }; 38 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = beplus/Images.xcassets; sourceTree = ""; }; 39 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = beplus/Info.plist; sourceTree = ""; }; 40 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = beplus/main.m; sourceTree = ""; }; 41 | 17D86F6E4CF012A4B508CBA6 /* Pods-beplus-beplusTests.releasedev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus-beplusTests.releasedev.xcconfig"; path = "Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests.releasedev.xcconfig"; sourceTree = ""; }; 42 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-beplus-beplusTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-beplus-beplusTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 3B4392A12AC88292D35C810B /* Pods-beplus.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus.debug.xcconfig"; path = "Target Support Files/Pods-beplus/Pods-beplus.debug.xcconfig"; sourceTree = ""; }; 44 | 5709B34CF0A7D63546082F79 /* Pods-beplus.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus.release.xcconfig"; path = "Target Support Files/Pods-beplus/Pods-beplus.release.xcconfig"; sourceTree = ""; }; 45 | 5B7EB9410499542E8C5724F5 /* Pods-beplus-beplusTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus-beplusTests.debug.xcconfig"; path = "Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests.debug.xcconfig"; sourceTree = ""; }; 46 | 5DCACB8F33CDC322A6C60F78 /* libPods-beplus.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-beplus.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = beplus/LaunchScreen.storyboard; sourceTree = ""; }; 48 | 89C6BE57DB24E9ADA2F236DE /* Pods-beplus-beplusTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus-beplusTests.release.xcconfig"; path = "Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests.release.xcconfig"; sourceTree = ""; }; 49 | A91975CC2B35F6F700736A51 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; 50 | A9B25B472B336D94009EF9F4 /* beplus.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = beplus.entitlements; path = beplus/beplus.entitlements; sourceTree = ""; }; 51 | B1AF6F7326E3257C29CCDEE7 /* Pods-beplus.releasestage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus.releasestage.xcconfig"; path = "Target Support Files/Pods-beplus/Pods-beplus.releasestage.xcconfig"; sourceTree = ""; }; 52 | B36DFD9F2BF5EB6E00168E7F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = beplus/PrivacyInfo.xcprivacy; sourceTree = ""; }; 53 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 54 | F33DB53C4A6E10CFD558B783 /* Pods-beplus-beplusTests.releasestage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-beplus-beplusTests.releasestage.xcconfig"; path = "Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests.releasestage.xcconfig"; sourceTree = ""; }; 55 | /* End PBXFileReference section */ 56 | 57 | /* Begin PBXFrameworksBuildPhase section */ 58 | 00E356EB1AD99517003FC87E /* Frameworks */ = { 59 | isa = PBXFrameworksBuildPhase; 60 | buildActionMask = 2147483647; 61 | files = ( 62 | 7699B88040F8A987B510C191 /* libPods-beplus-beplusTests.a in Frameworks */, 63 | ); 64 | runOnlyForDeploymentPostprocessing = 0; 65 | }; 66 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 67 | isa = PBXFrameworksBuildPhase; 68 | buildActionMask = 2147483647; 69 | files = ( 70 | 0C80B921A6F3F58F76C31292 /* libPods-beplus.a in Frameworks */, 71 | ); 72 | runOnlyForDeploymentPostprocessing = 0; 73 | }; 74 | /* End PBXFrameworksBuildPhase section */ 75 | 76 | /* Begin PBXGroup section */ 77 | 00E356EF1AD99517003FC87E /* beplusTests */ = { 78 | isa = PBXGroup; 79 | children = ( 80 | 00E356F21AD99517003FC87E /* beplusTests.m */, 81 | 00E356F01AD99517003FC87E /* Supporting Files */, 82 | ); 83 | path = beplusTests; 84 | sourceTree = ""; 85 | }; 86 | 00E356F01AD99517003FC87E /* Supporting Files */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 00E356F11AD99517003FC87E /* Info.plist */, 90 | ); 91 | name = "Supporting Files"; 92 | sourceTree = ""; 93 | }; 94 | 13B07FAE1A68108700A75B9A /* beplus */ = { 95 | isa = PBXGroup; 96 | children = ( 97 | 13B07FB71A68108700A75B9A /* main.m */, 98 | A9B25B472B336D94009EF9F4 /* beplus.entitlements */, 99 | 13B07FB61A68108700A75B9A /* Info.plist */, 100 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 101 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 102 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 103 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 104 | B36DFD9F2BF5EB6E00168E7F /* PrivacyInfo.xcprivacy */, 105 | ); 106 | name = beplus; 107 | sourceTree = ""; 108 | }; 109 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 113 | 5DCACB8F33CDC322A6C60F78 /* libPods-beplus.a */, 114 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-beplus-beplusTests.a */, 115 | ); 116 | name = Frameworks; 117 | sourceTree = ""; 118 | }; 119 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 120 | isa = PBXGroup; 121 | children = ( 122 | ); 123 | name = Libraries; 124 | sourceTree = ""; 125 | }; 126 | 83CBB9F61A601CBA00E9B192 = { 127 | isa = PBXGroup; 128 | children = ( 129 | A91975CC2B35F6F700736A51 /* Config.xcconfig */, 130 | 13B07FAE1A68108700A75B9A /* beplus */, 131 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 132 | 00E356EF1AD99517003FC87E /* beplusTests */, 133 | 83CBBA001A601CBA00E9B192 /* Products */, 134 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 135 | BBD78D7AC51CEA395F1C20DB /* Pods */, 136 | ); 137 | indentWidth = 2; 138 | sourceTree = ""; 139 | tabWidth = 2; 140 | usesTabs = 0; 141 | }; 142 | 83CBBA001A601CBA00E9B192 /* Products */ = { 143 | isa = PBXGroup; 144 | children = ( 145 | 13B07F961A680F5B00A75B9A /* beplus.app */, 146 | 00E356EE1AD99517003FC87E /* beplusTests.xctest */, 147 | ); 148 | name = Products; 149 | sourceTree = ""; 150 | }; 151 | BBD78D7AC51CEA395F1C20DB /* Pods */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | 3B4392A12AC88292D35C810B /* Pods-beplus.debug.xcconfig */, 155 | 5709B34CF0A7D63546082F79 /* Pods-beplus.release.xcconfig */, 156 | 5B7EB9410499542E8C5724F5 /* Pods-beplus-beplusTests.debug.xcconfig */, 157 | 89C6BE57DB24E9ADA2F236DE /* Pods-beplus-beplusTests.release.xcconfig */, 158 | 117C9F05B24DF3C0AC0658B9 /* Pods-beplus.releasedev.xcconfig */, 159 | B1AF6F7326E3257C29CCDEE7 /* Pods-beplus.releasestage.xcconfig */, 160 | 17D86F6E4CF012A4B508CBA6 /* Pods-beplus-beplusTests.releasedev.xcconfig */, 161 | F33DB53C4A6E10CFD558B783 /* Pods-beplus-beplusTests.releasestage.xcconfig */, 162 | ); 163 | path = Pods; 164 | sourceTree = ""; 165 | }; 166 | /* End PBXGroup section */ 167 | 168 | /* Begin PBXNativeTarget section */ 169 | 00E356ED1AD99517003FC87E /* beplusTests */ = { 170 | isa = PBXNativeTarget; 171 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "beplusTests" */; 172 | buildPhases = ( 173 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, 174 | 00E356EA1AD99517003FC87E /* Sources */, 175 | 00E356EB1AD99517003FC87E /* Frameworks */, 176 | 00E356EC1AD99517003FC87E /* Resources */, 177 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, 178 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, 179 | ); 180 | buildRules = ( 181 | ); 182 | dependencies = ( 183 | 00E356F51AD99517003FC87E /* PBXTargetDependency */, 184 | ); 185 | name = beplusTests; 186 | productName = beplusTests; 187 | productReference = 00E356EE1AD99517003FC87E /* beplusTests.xctest */; 188 | productType = "com.apple.product-type.bundle.unit-test"; 189 | }; 190 | 13B07F861A680F5B00A75B9A /* beplus */ = { 191 | isa = PBXNativeTarget; 192 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "beplus" */; 193 | buildPhases = ( 194 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, 195 | 13B07F871A680F5B00A75B9A /* Sources */, 196 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 197 | 13B07F8E1A680F5B00A75B9A /* Resources */, 198 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 199 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, 200 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, 201 | ); 202 | buildRules = ( 203 | ); 204 | dependencies = ( 205 | ); 206 | name = beplus; 207 | productName = beplus; 208 | productReference = 13B07F961A680F5B00A75B9A /* beplus.app */; 209 | productType = "com.apple.product-type.application"; 210 | }; 211 | /* End PBXNativeTarget section */ 212 | 213 | /* Begin PBXProject section */ 214 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 215 | isa = PBXProject; 216 | attributes = { 217 | LastUpgradeCheck = 1210; 218 | TargetAttributes = { 219 | 00E356ED1AD99517003FC87E = { 220 | CreatedOnToolsVersion = 6.2; 221 | TestTargetID = 13B07F861A680F5B00A75B9A; 222 | }; 223 | 13B07F861A680F5B00A75B9A = { 224 | LastSwiftMigration = 1120; 225 | }; 226 | }; 227 | }; 228 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "beplus" */; 229 | compatibilityVersion = "Xcode 12.0"; 230 | developmentRegion = en; 231 | hasScannedForEncodings = 0; 232 | knownRegions = ( 233 | en, 234 | Base, 235 | ); 236 | mainGroup = 83CBB9F61A601CBA00E9B192; 237 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 238 | projectDirPath = ""; 239 | projectRoot = ""; 240 | targets = ( 241 | 13B07F861A680F5B00A75B9A /* beplus */, 242 | 00E356ED1AD99517003FC87E /* beplusTests */, 243 | ); 244 | }; 245 | /* End PBXProject section */ 246 | 247 | /* Begin PBXResourcesBuildPhase section */ 248 | 00E356EC1AD99517003FC87E /* Resources */ = { 249 | isa = PBXResourcesBuildPhase; 250 | buildActionMask = 2147483647; 251 | files = ( 252 | ); 253 | runOnlyForDeploymentPostprocessing = 0; 254 | }; 255 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 256 | isa = PBXResourcesBuildPhase; 257 | buildActionMask = 2147483647; 258 | files = ( 259 | B36DFDA02BF5EB6E00168E7F /* PrivacyInfo.xcprivacy in Resources */, 260 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 261 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 262 | ); 263 | runOnlyForDeploymentPostprocessing = 0; 264 | }; 265 | /* End PBXResourcesBuildPhase section */ 266 | 267 | /* Begin PBXShellScriptBuildPhase section */ 268 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 269 | isa = PBXShellScriptBuildPhase; 270 | buildActionMask = 2147483647; 271 | files = ( 272 | ); 273 | inputPaths = ( 274 | "$(SRCROOT)/.xcode.env.local", 275 | "$(SRCROOT)/.xcode.env", 276 | ); 277 | name = "Bundle React Native code and images"; 278 | outputPaths = ( 279 | ); 280 | runOnlyForDeploymentPostprocessing = 0; 281 | shellPath = /bin/sh; 282 | shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; 283 | }; 284 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { 285 | isa = PBXShellScriptBuildPhase; 286 | buildActionMask = 2147483647; 287 | files = ( 288 | ); 289 | inputFileListPaths = ( 290 | "${PODS_ROOT}/Target Support Files/Pods-beplus/Pods-beplus-frameworks-${CONFIGURATION}-input-files.xcfilelist", 291 | ); 292 | name = "[CP] Embed Pods Frameworks"; 293 | outputFileListPaths = ( 294 | "${PODS_ROOT}/Target Support Files/Pods-beplus/Pods-beplus-frameworks-${CONFIGURATION}-output-files.xcfilelist", 295 | ); 296 | runOnlyForDeploymentPostprocessing = 0; 297 | shellPath = /bin/sh; 298 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-beplus/Pods-beplus-frameworks.sh\"\n"; 299 | showEnvVarsInLog = 0; 300 | }; 301 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { 302 | isa = PBXShellScriptBuildPhase; 303 | buildActionMask = 2147483647; 304 | files = ( 305 | ); 306 | inputFileListPaths = ( 307 | ); 308 | inputPaths = ( 309 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 310 | "${PODS_ROOT}/Manifest.lock", 311 | ); 312 | name = "[CP] Check Pods Manifest.lock"; 313 | outputFileListPaths = ( 314 | ); 315 | outputPaths = ( 316 | "$(DERIVED_FILE_DIR)/Pods-beplus-beplusTests-checkManifestLockResult.txt", 317 | ); 318 | runOnlyForDeploymentPostprocessing = 0; 319 | shellPath = /bin/sh; 320 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 321 | showEnvVarsInLog = 0; 322 | }; 323 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { 324 | isa = PBXShellScriptBuildPhase; 325 | buildActionMask = 2147483647; 326 | files = ( 327 | ); 328 | inputFileListPaths = ( 329 | ); 330 | inputPaths = ( 331 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 332 | "${PODS_ROOT}/Manifest.lock", 333 | ); 334 | name = "[CP] Check Pods Manifest.lock"; 335 | outputFileListPaths = ( 336 | ); 337 | outputPaths = ( 338 | "$(DERIVED_FILE_DIR)/Pods-beplus-checkManifestLockResult.txt", 339 | ); 340 | runOnlyForDeploymentPostprocessing = 0; 341 | shellPath = /bin/sh; 342 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 343 | showEnvVarsInLog = 0; 344 | }; 345 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { 346 | isa = PBXShellScriptBuildPhase; 347 | buildActionMask = 2147483647; 348 | files = ( 349 | ); 350 | inputFileListPaths = ( 351 | "${PODS_ROOT}/Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", 352 | ); 353 | name = "[CP] Embed Pods Frameworks"; 354 | outputFileListPaths = ( 355 | "${PODS_ROOT}/Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", 356 | ); 357 | runOnlyForDeploymentPostprocessing = 0; 358 | shellPath = /bin/sh; 359 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests-frameworks.sh\"\n"; 360 | showEnvVarsInLog = 0; 361 | }; 362 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { 363 | isa = PBXShellScriptBuildPhase; 364 | buildActionMask = 2147483647; 365 | files = ( 366 | ); 367 | inputFileListPaths = ( 368 | "${PODS_ROOT}/Target Support Files/Pods-beplus/Pods-beplus-resources-${CONFIGURATION}-input-files.xcfilelist", 369 | ); 370 | name = "[CP] Copy Pods Resources"; 371 | outputFileListPaths = ( 372 | "${PODS_ROOT}/Target Support Files/Pods-beplus/Pods-beplus-resources-${CONFIGURATION}-output-files.xcfilelist", 373 | ); 374 | runOnlyForDeploymentPostprocessing = 0; 375 | shellPath = /bin/sh; 376 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-beplus/Pods-beplus-resources.sh\"\n"; 377 | showEnvVarsInLog = 0; 378 | }; 379 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { 380 | isa = PBXShellScriptBuildPhase; 381 | buildActionMask = 2147483647; 382 | files = ( 383 | ); 384 | inputFileListPaths = ( 385 | "${PODS_ROOT}/Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests-resources-${CONFIGURATION}-input-files.xcfilelist", 386 | ); 387 | name = "[CP] Copy Pods Resources"; 388 | outputFileListPaths = ( 389 | "${PODS_ROOT}/Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests-resources-${CONFIGURATION}-output-files.xcfilelist", 390 | ); 391 | runOnlyForDeploymentPostprocessing = 0; 392 | shellPath = /bin/sh; 393 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-beplus-beplusTests/Pods-beplus-beplusTests-resources.sh\"\n"; 394 | showEnvVarsInLog = 0; 395 | }; 396 | /* End PBXShellScriptBuildPhase section */ 397 | 398 | /* Begin PBXSourcesBuildPhase section */ 399 | 00E356EA1AD99517003FC87E /* Sources */ = { 400 | isa = PBXSourcesBuildPhase; 401 | buildActionMask = 2147483647; 402 | files = ( 403 | 00E356F31AD99517003FC87E /* beplusTests.m in Sources */, 404 | ); 405 | runOnlyForDeploymentPostprocessing = 0; 406 | }; 407 | 13B07F871A680F5B00A75B9A /* Sources */ = { 408 | isa = PBXSourcesBuildPhase; 409 | buildActionMask = 2147483647; 410 | files = ( 411 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 412 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 413 | ); 414 | runOnlyForDeploymentPostprocessing = 0; 415 | }; 416 | /* End PBXSourcesBuildPhase section */ 417 | 418 | /* Begin PBXTargetDependency section */ 419 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { 420 | isa = PBXTargetDependency; 421 | target = 13B07F861A680F5B00A75B9A /* beplus */; 422 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; 423 | }; 424 | /* End PBXTargetDependency section */ 425 | 426 | /* Begin XCBuildConfiguration section */ 427 | 00E356F61AD99517003FC87E /* Debug */ = { 428 | isa = XCBuildConfiguration; 429 | baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-beplus-beplusTests.debug.xcconfig */; 430 | buildSettings = { 431 | BUNDLE_LOADER = "$(TEST_HOST)"; 432 | GCC_PREPROCESSOR_DEFINITIONS = ( 433 | "DEBUG=1", 434 | "$(inherited)", 435 | ); 436 | INFOPLIST_FILE = beplusTests/Info.plist; 437 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 438 | LD_RUNPATH_SEARCH_PATHS = ( 439 | "$(inherited)", 440 | "@executable_path/Frameworks", 441 | "@loader_path/Frameworks", 442 | ); 443 | OTHER_LDFLAGS = ( 444 | "-ObjC", 445 | "-lc++", 446 | "$(inherited)", 447 | ); 448 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 449 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = .debug; 450 | PRODUCT_NAME = "$(TARGET_NAME)"; 451 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/beplus.app/beplus"; 452 | }; 453 | name = Debug; 454 | }; 455 | 00E356F71AD99517003FC87E /* ReleaseDev */ = { 456 | isa = XCBuildConfiguration; 457 | baseConfigurationReference = 17D86F6E4CF012A4B508CBA6 /* Pods-beplus-beplusTests.releasedev.xcconfig */; 458 | buildSettings = { 459 | BUNDLE_LOADER = "$(TEST_HOST)"; 460 | COPY_PHASE_STRIP = NO; 461 | INFOPLIST_FILE = beplusTests/Info.plist; 462 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 463 | LD_RUNPATH_SEARCH_PATHS = ( 464 | "$(inherited)", 465 | "@executable_path/Frameworks", 466 | "@loader_path/Frameworks", 467 | ); 468 | OTHER_LDFLAGS = ( 469 | "-ObjC", 470 | "-lc++", 471 | "$(inherited)", 472 | ); 473 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 474 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = .dev; 475 | PRODUCT_NAME = "$(TARGET_NAME)"; 476 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/beplus.app/beplus"; 477 | }; 478 | name = ReleaseDev; 479 | }; 480 | 13B07F941A680F5B00A75B9A /* Debug */ = { 481 | isa = XCBuildConfiguration; 482 | baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-beplus.debug.xcconfig */; 483 | buildSettings = { 484 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 485 | CLANG_ENABLE_MODULES = YES; 486 | CODE_SIGN_ENTITLEMENTS = beplus/beplus.entitlements; 487 | CODE_SIGN_STYLE = Manual; 488 | CURRENT_PROJECT_VERSION = "$(BE_APP_BUILD_NUMBER)"; 489 | DEVELOPMENT_TEAM = "$(BE_APPLE_DEVELOPER_TEAM_ID)"; 490 | ENABLE_BITCODE = NO; 491 | INFOPLIST_FILE = beplus/Info.plist; 492 | INFOPLIST_KEY_CFBundleDisplayName = "$(BE_APP_NAME)"; 493 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; 494 | LD_RUNPATH_SEARCH_PATHS = ( 495 | "$(inherited)", 496 | "@executable_path/Frameworks", 497 | ); 498 | MARKETING_VERSION = "$(BE_APP_VERSION)"; 499 | OTHER_LDFLAGS = ( 500 | "$(inherited)", 501 | "-ObjC", 502 | "-lc++", 503 | ); 504 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 505 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = .debug; 506 | PRODUCT_NAME = beplus; 507 | PROVISIONING_PROFILE_SPECIFIER = "match Development $(PRODUCT_BUNDLE_IDENTIFIER)"; 508 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 509 | SWIFT_VERSION = 5.0; 510 | VERSIONING_SYSTEM = "apple-generic"; 511 | }; 512 | name = Debug; 513 | }; 514 | 13B07F951A680F5B00A75B9A /* ReleaseDev */ = { 515 | isa = XCBuildConfiguration; 516 | baseConfigurationReference = 117C9F05B24DF3C0AC0658B9 /* Pods-beplus.releasedev.xcconfig */; 517 | buildSettings = { 518 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 519 | CLANG_ENABLE_MODULES = YES; 520 | CODE_SIGN_ENTITLEMENTS = beplus/beplus.entitlements; 521 | CODE_SIGN_IDENTITY = "Apple Distribution"; 522 | CODE_SIGN_STYLE = Manual; 523 | CURRENT_PROJECT_VERSION = "$(BE_APP_BUILD_NUMBER)"; 524 | DEVELOPMENT_TEAM = "$(BE_APPLE_DEVELOPER_TEAM_ID)"; 525 | INFOPLIST_FILE = beplus/Info.plist; 526 | INFOPLIST_KEY_CFBundleDisplayName = "$(BE_APP_NAME)"; 527 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; 528 | LD_RUNPATH_SEARCH_PATHS = ( 529 | "$(inherited)", 530 | "@executable_path/Frameworks", 531 | ); 532 | MARKETING_VERSION = "$(BE_APP_VERSION)"; 533 | OTHER_LDFLAGS = ( 534 | "$(inherited)", 535 | "-ObjC", 536 | "-lc++", 537 | ); 538 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 539 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = .dev; 540 | PRODUCT_NAME = beplus; 541 | PROVISIONING_PROFILE_SPECIFIER = "match AppStore $(PRODUCT_BUNDLE_IDENTIFIER)"; 542 | SWIFT_VERSION = 5.0; 543 | VERSIONING_SYSTEM = "apple-generic"; 544 | }; 545 | name = ReleaseDev; 546 | }; 547 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 548 | isa = XCBuildConfiguration; 549 | baseConfigurationReference = A91975CC2B35F6F700736A51 /* Config.xcconfig */; 550 | buildSettings = { 551 | ALWAYS_SEARCH_USER_PATHS = NO; 552 | CC = ""; 553 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 554 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 555 | CLANG_CXX_LIBRARY = "libc++"; 556 | CLANG_ENABLE_MODULES = YES; 557 | CLANG_ENABLE_OBJC_ARC = YES; 558 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 559 | CLANG_WARN_BOOL_CONVERSION = YES; 560 | CLANG_WARN_COMMA = YES; 561 | CLANG_WARN_CONSTANT_CONVERSION = YES; 562 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 563 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 564 | CLANG_WARN_EMPTY_BODY = YES; 565 | CLANG_WARN_ENUM_CONVERSION = YES; 566 | CLANG_WARN_INFINITE_RECURSION = YES; 567 | CLANG_WARN_INT_CONVERSION = YES; 568 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 569 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 570 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 571 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 572 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 573 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 574 | CLANG_WARN_STRICT_PROTOTYPES = YES; 575 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 576 | CLANG_WARN_UNREACHABLE_CODE = YES; 577 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 578 | CODE_SIGN_IDENTITY = "Apple Developer"; 579 | COPY_PHASE_STRIP = NO; 580 | CXX = ""; 581 | ENABLE_STRICT_OBJC_MSGSEND = YES; 582 | ENABLE_TESTABILITY = YES; 583 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; 584 | GCC_C_LANGUAGE_STANDARD = gnu99; 585 | GCC_DYNAMIC_NO_PIC = NO; 586 | GCC_NO_COMMON_BLOCKS = YES; 587 | GCC_OPTIMIZATION_LEVEL = 0; 588 | GCC_PREPROCESSOR_DEFINITIONS = ( 589 | "DEBUG=1", 590 | "$(inherited)", 591 | ); 592 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 593 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 594 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 595 | GCC_WARN_UNDECLARED_SELECTOR = YES; 596 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 597 | GCC_WARN_UNUSED_FUNCTION = YES; 598 | GCC_WARN_UNUSED_VARIABLE = YES; 599 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 600 | LD = ""; 601 | LDPLUSPLUS = ""; 602 | LD_RUNPATH_SEARCH_PATHS = ( 603 | /usr/lib/swift, 604 | "$(inherited)", 605 | ); 606 | LIBRARY_SEARCH_PATHS = ( 607 | "\"$(SDKROOT)/usr/lib/swift\"", 608 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 609 | "\"$(inherited)\"", 610 | ); 611 | MTL_ENABLE_DEBUG_INFO = YES; 612 | ONLY_ACTIVE_ARCH = YES; 613 | OTHER_CFLAGS = "$(inherited)"; 614 | OTHER_CPLUSPLUSFLAGS = ( 615 | "$(OTHER_CFLAGS)", 616 | "-DFOLLY_NO_CONFIG", 617 | "-DFOLLY_MOBILE=1", 618 | "-DFOLLY_USE_LIBCPP=1", 619 | "-DFOLLY_CFG_NO_COROUTINES=1", 620 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 621 | ); 622 | OTHER_LDFLAGS = "$(inherited)"; 623 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 624 | SDKROOT = iphoneos; 625 | USE_HERMES = true; 626 | }; 627 | name = Debug; 628 | }; 629 | 83CBBA211A601CBA00E9B192 /* ReleaseDev */ = { 630 | isa = XCBuildConfiguration; 631 | baseConfigurationReference = A91975CC2B35F6F700736A51 /* Config.xcconfig */; 632 | buildSettings = { 633 | ALWAYS_SEARCH_USER_PATHS = NO; 634 | CC = ""; 635 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 636 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 637 | CLANG_CXX_LIBRARY = "libc++"; 638 | CLANG_ENABLE_MODULES = YES; 639 | CLANG_ENABLE_OBJC_ARC = YES; 640 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 641 | CLANG_WARN_BOOL_CONVERSION = YES; 642 | CLANG_WARN_COMMA = YES; 643 | CLANG_WARN_CONSTANT_CONVERSION = YES; 644 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 645 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 646 | CLANG_WARN_EMPTY_BODY = YES; 647 | CLANG_WARN_ENUM_CONVERSION = YES; 648 | CLANG_WARN_INFINITE_RECURSION = YES; 649 | CLANG_WARN_INT_CONVERSION = YES; 650 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 651 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 652 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 653 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 654 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 655 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 656 | CLANG_WARN_STRICT_PROTOTYPES = YES; 657 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 658 | CLANG_WARN_UNREACHABLE_CODE = YES; 659 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 660 | CODE_SIGN_IDENTITY = "Apple Developer"; 661 | COPY_PHASE_STRIP = YES; 662 | CXX = ""; 663 | ENABLE_NS_ASSERTIONS = NO; 664 | ENABLE_STRICT_OBJC_MSGSEND = YES; 665 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; 666 | GCC_C_LANGUAGE_STANDARD = gnu99; 667 | GCC_NO_COMMON_BLOCKS = YES; 668 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 669 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 670 | GCC_WARN_UNDECLARED_SELECTOR = YES; 671 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 672 | GCC_WARN_UNUSED_FUNCTION = YES; 673 | GCC_WARN_UNUSED_VARIABLE = YES; 674 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 675 | LD = ""; 676 | LDPLUSPLUS = ""; 677 | LD_RUNPATH_SEARCH_PATHS = ( 678 | /usr/lib/swift, 679 | "$(inherited)", 680 | ); 681 | LIBRARY_SEARCH_PATHS = ( 682 | "\"$(SDKROOT)/usr/lib/swift\"", 683 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 684 | "\"$(inherited)\"", 685 | ); 686 | MTL_ENABLE_DEBUG_INFO = NO; 687 | OTHER_CFLAGS = "$(inherited)"; 688 | OTHER_CPLUSPLUSFLAGS = ( 689 | "$(OTHER_CFLAGS)", 690 | "-DFOLLY_NO_CONFIG", 691 | "-DFOLLY_MOBILE=1", 692 | "-DFOLLY_USE_LIBCPP=1", 693 | "-DFOLLY_CFG_NO_COROUTINES=1", 694 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 695 | ); 696 | OTHER_LDFLAGS = "$(inherited)"; 697 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 698 | SDKROOT = iphoneos; 699 | USE_HERMES = true; 700 | VALIDATE_PRODUCT = YES; 701 | }; 702 | name = ReleaseDev; 703 | }; 704 | A904A5812B336B3000CC1788 /* Release */ = { 705 | isa = XCBuildConfiguration; 706 | baseConfigurationReference = A91975CC2B35F6F700736A51 /* Config.xcconfig */; 707 | buildSettings = { 708 | ALWAYS_SEARCH_USER_PATHS = NO; 709 | CC = ""; 710 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 711 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 712 | CLANG_CXX_LIBRARY = "libc++"; 713 | CLANG_ENABLE_MODULES = YES; 714 | CLANG_ENABLE_OBJC_ARC = YES; 715 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 716 | CLANG_WARN_BOOL_CONVERSION = YES; 717 | CLANG_WARN_COMMA = YES; 718 | CLANG_WARN_CONSTANT_CONVERSION = YES; 719 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 720 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 721 | CLANG_WARN_EMPTY_BODY = YES; 722 | CLANG_WARN_ENUM_CONVERSION = YES; 723 | CLANG_WARN_INFINITE_RECURSION = YES; 724 | CLANG_WARN_INT_CONVERSION = YES; 725 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 726 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 727 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 728 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 729 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 730 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 731 | CLANG_WARN_STRICT_PROTOTYPES = YES; 732 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 733 | CLANG_WARN_UNREACHABLE_CODE = YES; 734 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 735 | CODE_SIGN_IDENTITY = "Apple Developer"; 736 | COPY_PHASE_STRIP = YES; 737 | CXX = ""; 738 | ENABLE_NS_ASSERTIONS = NO; 739 | ENABLE_STRICT_OBJC_MSGSEND = YES; 740 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; 741 | GCC_C_LANGUAGE_STANDARD = gnu99; 742 | GCC_NO_COMMON_BLOCKS = YES; 743 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 744 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 745 | GCC_WARN_UNDECLARED_SELECTOR = YES; 746 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 747 | GCC_WARN_UNUSED_FUNCTION = YES; 748 | GCC_WARN_UNUSED_VARIABLE = YES; 749 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 750 | LD = ""; 751 | LDPLUSPLUS = ""; 752 | LD_RUNPATH_SEARCH_PATHS = ( 753 | /usr/lib/swift, 754 | "$(inherited)", 755 | ); 756 | LIBRARY_SEARCH_PATHS = ( 757 | "\"$(SDKROOT)/usr/lib/swift\"", 758 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 759 | "\"$(inherited)\"", 760 | ); 761 | MTL_ENABLE_DEBUG_INFO = NO; 762 | OTHER_CFLAGS = "$(inherited)"; 763 | OTHER_CPLUSPLUSFLAGS = ( 764 | "$(OTHER_CFLAGS)", 765 | "-DFOLLY_NO_CONFIG", 766 | "-DFOLLY_MOBILE=1", 767 | "-DFOLLY_USE_LIBCPP=1", 768 | "-DFOLLY_CFG_NO_COROUTINES=1", 769 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 770 | ); 771 | OTHER_LDFLAGS = "$(inherited)"; 772 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 773 | SDKROOT = iphoneos; 774 | USE_HERMES = true; 775 | VALIDATE_PRODUCT = YES; 776 | }; 777 | name = Release; 778 | }; 779 | A904A5822B336B3000CC1788 /* Release */ = { 780 | isa = XCBuildConfiguration; 781 | baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-beplus.release.xcconfig */; 782 | buildSettings = { 783 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 784 | CLANG_ENABLE_MODULES = YES; 785 | CODE_SIGN_ENTITLEMENTS = beplus/beplus.entitlements; 786 | CODE_SIGN_IDENTITY = "Apple Distribution"; 787 | CODE_SIGN_STYLE = Manual; 788 | CURRENT_PROJECT_VERSION = "$(BE_APP_BUILD_NUMBER)"; 789 | DEVELOPMENT_TEAM = "$(BE_APPLE_DEVELOPER_TEAM_ID)"; 790 | INFOPLIST_FILE = beplus/Info.plist; 791 | INFOPLIST_KEY_CFBundleDisplayName = "$(BE_APP_NAME)"; 792 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; 793 | LD_RUNPATH_SEARCH_PATHS = ( 794 | "$(inherited)", 795 | "@executable_path/Frameworks", 796 | ); 797 | MARKETING_VERSION = "$(BE_APP_VERSION)"; 798 | OTHER_LDFLAGS = ( 799 | "$(inherited)", 800 | "-ObjC", 801 | "-lc++", 802 | ); 803 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 804 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = ""; 805 | PRODUCT_NAME = beplus; 806 | PROVISIONING_PROFILE_SPECIFIER = "match AppStore $(PRODUCT_BUNDLE_IDENTIFIER)"; 807 | SWIFT_VERSION = 5.0; 808 | VERSIONING_SYSTEM = "apple-generic"; 809 | }; 810 | name = Release; 811 | }; 812 | A904A5832B336B3000CC1788 /* Release */ = { 813 | isa = XCBuildConfiguration; 814 | baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-beplus-beplusTests.release.xcconfig */; 815 | buildSettings = { 816 | BUNDLE_LOADER = "$(TEST_HOST)"; 817 | COPY_PHASE_STRIP = NO; 818 | INFOPLIST_FILE = beplusTests/Info.plist; 819 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 820 | LD_RUNPATH_SEARCH_PATHS = ( 821 | "$(inherited)", 822 | "@executable_path/Frameworks", 823 | "@loader_path/Frameworks", 824 | ); 825 | OTHER_LDFLAGS = ( 826 | "-ObjC", 827 | "-lc++", 828 | "$(inherited)", 829 | ); 830 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 831 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = ""; 832 | PRODUCT_NAME = "$(TARGET_NAME)"; 833 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/beplus.app/beplus"; 834 | }; 835 | name = Release; 836 | }; 837 | A904A5842B336B4500CC1788 /* ReleaseStage */ = { 838 | isa = XCBuildConfiguration; 839 | baseConfigurationReference = A91975CC2B35F6F700736A51 /* Config.xcconfig */; 840 | buildSettings = { 841 | ALWAYS_SEARCH_USER_PATHS = NO; 842 | CC = ""; 843 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 844 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 845 | CLANG_CXX_LIBRARY = "libc++"; 846 | CLANG_ENABLE_MODULES = YES; 847 | CLANG_ENABLE_OBJC_ARC = YES; 848 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 849 | CLANG_WARN_BOOL_CONVERSION = YES; 850 | CLANG_WARN_COMMA = YES; 851 | CLANG_WARN_CONSTANT_CONVERSION = YES; 852 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 853 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 854 | CLANG_WARN_EMPTY_BODY = YES; 855 | CLANG_WARN_ENUM_CONVERSION = YES; 856 | CLANG_WARN_INFINITE_RECURSION = YES; 857 | CLANG_WARN_INT_CONVERSION = YES; 858 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 859 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 860 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 861 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 862 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 863 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 864 | CLANG_WARN_STRICT_PROTOTYPES = YES; 865 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 866 | CLANG_WARN_UNREACHABLE_CODE = YES; 867 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 868 | CODE_SIGN_IDENTITY = "Apple Developer"; 869 | COPY_PHASE_STRIP = YES; 870 | CXX = ""; 871 | ENABLE_NS_ASSERTIONS = NO; 872 | ENABLE_STRICT_OBJC_MSGSEND = YES; 873 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; 874 | GCC_C_LANGUAGE_STANDARD = gnu99; 875 | GCC_NO_COMMON_BLOCKS = YES; 876 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 877 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 878 | GCC_WARN_UNDECLARED_SELECTOR = YES; 879 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 880 | GCC_WARN_UNUSED_FUNCTION = YES; 881 | GCC_WARN_UNUSED_VARIABLE = YES; 882 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 883 | LD = ""; 884 | LDPLUSPLUS = ""; 885 | LD_RUNPATH_SEARCH_PATHS = ( 886 | /usr/lib/swift, 887 | "$(inherited)", 888 | ); 889 | LIBRARY_SEARCH_PATHS = ( 890 | "\"$(SDKROOT)/usr/lib/swift\"", 891 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 892 | "\"$(inherited)\"", 893 | ); 894 | MTL_ENABLE_DEBUG_INFO = NO; 895 | OTHER_CFLAGS = "$(inherited)"; 896 | OTHER_CPLUSPLUSFLAGS = ( 897 | "$(OTHER_CFLAGS)", 898 | "-DFOLLY_NO_CONFIG", 899 | "-DFOLLY_MOBILE=1", 900 | "-DFOLLY_USE_LIBCPP=1", 901 | "-DFOLLY_CFG_NO_COROUTINES=1", 902 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 903 | ); 904 | OTHER_LDFLAGS = "$(inherited)"; 905 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 906 | SDKROOT = iphoneos; 907 | USE_HERMES = true; 908 | VALIDATE_PRODUCT = YES; 909 | }; 910 | name = ReleaseStage; 911 | }; 912 | A904A5852B336B4500CC1788 /* ReleaseStage */ = { 913 | isa = XCBuildConfiguration; 914 | baseConfigurationReference = B1AF6F7326E3257C29CCDEE7 /* Pods-beplus.releasestage.xcconfig */; 915 | buildSettings = { 916 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 917 | CLANG_ENABLE_MODULES = YES; 918 | CODE_SIGN_ENTITLEMENTS = beplus/beplus.entitlements; 919 | CODE_SIGN_IDENTITY = "Apple Distribution"; 920 | CODE_SIGN_STYLE = Manual; 921 | CURRENT_PROJECT_VERSION = "$(BE_APP_BUILD_NUMBER)"; 922 | DEVELOPMENT_TEAM = "$(BE_APPLE_DEVELOPER_TEAM_ID)"; 923 | INFOPLIST_FILE = beplus/Info.plist; 924 | INFOPLIST_KEY_CFBundleDisplayName = "$(BE_APP_NAME)"; 925 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; 926 | LD_RUNPATH_SEARCH_PATHS = ( 927 | "$(inherited)", 928 | "@executable_path/Frameworks", 929 | ); 930 | MARKETING_VERSION = "$(BE_APP_VERSION)"; 931 | OTHER_LDFLAGS = ( 932 | "$(inherited)", 933 | "-ObjC", 934 | "-lc++", 935 | ); 936 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 937 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = .stage; 938 | PRODUCT_NAME = beplus; 939 | PROVISIONING_PROFILE_SPECIFIER = "match AppStore $(PRODUCT_BUNDLE_IDENTIFIER)"; 940 | SWIFT_VERSION = 5.0; 941 | VERSIONING_SYSTEM = "apple-generic"; 942 | }; 943 | name = ReleaseStage; 944 | }; 945 | A904A5862B336B4500CC1788 /* ReleaseStage */ = { 946 | isa = XCBuildConfiguration; 947 | baseConfigurationReference = F33DB53C4A6E10CFD558B783 /* Pods-beplus-beplusTests.releasestage.xcconfig */; 948 | buildSettings = { 949 | BUNDLE_LOADER = "$(TEST_HOST)"; 950 | COPY_PHASE_STRIP = NO; 951 | INFOPLIST_FILE = beplusTests/Info.plist; 952 | IPHONEOS_DEPLOYMENT_TARGET = 15.0; 953 | LD_RUNPATH_SEARCH_PATHS = ( 954 | "$(inherited)", 955 | "@executable_path/Frameworks", 956 | "@loader_path/Frameworks", 957 | ); 958 | OTHER_LDFLAGS = ( 959 | "-ObjC", 960 | "-lc++", 961 | "$(inherited)", 962 | ); 963 | PRODUCT_BUNDLE_IDENTIFIER = "$(BE_APP_BUNDLE_ID)$(PRODUCT_BUNDLE_IDENTIFIER_SUFFIX)"; 964 | PRODUCT_BUNDLE_IDENTIFIER_SUFFIX = .stage; 965 | PRODUCT_NAME = "$(TARGET_NAME)"; 966 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/beplus.app/beplus"; 967 | }; 968 | name = ReleaseStage; 969 | }; 970 | /* End XCBuildConfiguration section */ 971 | 972 | /* Begin XCConfigurationList section */ 973 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "beplusTests" */ = { 974 | isa = XCConfigurationList; 975 | buildConfigurations = ( 976 | 00E356F61AD99517003FC87E /* Debug */, 977 | 00E356F71AD99517003FC87E /* ReleaseDev */, 978 | A904A5862B336B4500CC1788 /* ReleaseStage */, 979 | A904A5832B336B3000CC1788 /* Release */, 980 | ); 981 | defaultConfigurationIsVisible = 0; 982 | defaultConfigurationName = Release; 983 | }; 984 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "beplus" */ = { 985 | isa = XCConfigurationList; 986 | buildConfigurations = ( 987 | 13B07F941A680F5B00A75B9A /* Debug */, 988 | 13B07F951A680F5B00A75B9A /* ReleaseDev */, 989 | A904A5852B336B4500CC1788 /* ReleaseStage */, 990 | A904A5822B336B3000CC1788 /* Release */, 991 | ); 992 | defaultConfigurationIsVisible = 0; 993 | defaultConfigurationName = Release; 994 | }; 995 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "beplus" */ = { 996 | isa = XCConfigurationList; 997 | buildConfigurations = ( 998 | 83CBBA201A601CBA00E9B192 /* Debug */, 999 | 83CBBA211A601CBA00E9B192 /* ReleaseDev */, 1000 | A904A5842B336B4500CC1788 /* ReleaseStage */, 1001 | A904A5812B336B3000CC1788 /* Release */, 1002 | ); 1003 | defaultConfigurationIsVisible = 0; 1004 | defaultConfigurationName = Release; 1005 | }; 1006 | /* End XCConfigurationList section */ 1007 | }; 1008 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 1009 | } 1010 | -------------------------------------------------------------------------------- /ios/beplus.xcodeproj/xcshareddata/xcschemes/beplus.debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 11 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 | 39 | 40 | 41 | 42 | 43 | 48 | 49 | 51 | 57 | 58 | 59 | 60 | 61 | 71 | 73 | 79 | 80 | 81 | 82 | 88 | 90 | 96 | 97 | 98 | 99 | 101 | 102 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /ios/beplus.xcodeproj/xcshareddata/xcschemes/beplus.dev.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 11 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 | 39 | 40 | 41 | 42 | 43 | 48 | 49 | 51 | 57 | 58 | 59 | 60 | 61 | 71 | 73 | 79 | 80 | 81 | 82 | 88 | 90 | 96 | 97 | 98 | 99 | 101 | 102 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /ios/beplus.xcodeproj/xcshareddata/xcschemes/beplus.stage.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 11 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 | 39 | 40 | 41 | 42 | 43 | 48 | 49 | 51 | 57 | 58 | 59 | 60 | 61 | 71 | 73 | 79 | 80 | 81 | 82 | 88 | 90 | 96 | 97 | 98 | 99 | 101 | 102 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /ios/beplus.xcodeproj/xcshareddata/xcschemes/beplus.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 11 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 33 | 39 | 40 | 41 | 42 | 43 | 48 | 49 | 51 | 57 | 58 | 59 | 60 | 61 | 71 | 73 | 79 | 80 | 81 | 82 | 88 | 90 | 96 | 97 | 98 | 99 | 101 | 102 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /ios/beplus.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/beplus.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/beplus/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : RCTAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /ios/beplus/AppDelegate.mm: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | #import 4 | 5 | #import "RNCConfig.h" 6 | 7 | @implementation AppDelegate 8 | 9 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 10 | { 11 | self.moduleName = @"beplus"; 12 | // You can add your custom initial props in the dictionary below. 13 | // They will be passed down to the ViewController used by React Native. 14 | self.initialProps = @{}; 15 | 16 | // NSString *varInObjC = [RNCConfig envFor:@"BE_VAR_IN_OBJC"]; 17 | // NSLog(@"RNConfig_ObjC: %@", varInObjC); 18 | 19 | // NSString *varInPlist = [mainBundle objectForInfoDictionaryKey:@"VarInPlist"]; 20 | // NSLog(@"RNConfig_Plist: %@", varInPlist); 21 | 22 | NSBundle* mainBundle = [NSBundle mainBundle]; 23 | 24 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 25 | } 26 | 27 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 28 | { 29 | return [self bundleURL]; 30 | } 31 | 32 | - (NSURL *)bundleURL 33 | { 34 | #if DEBUG 35 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; 36 | #else 37 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 38 | #endif 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /ios/beplus/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "app-icon_1024x1024.png", 5 | "idiom" : "universal", 6 | "platform" : "ios", 7 | "size" : "1024x1024" 8 | } 9 | ], 10 | "info" : { 11 | "author" : "xcode", 12 | "version" : 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ios/beplus/Images.xcassets/AppIcon.appiconset/app-icon_1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/ios/beplus/Images.xcassets/AppIcon.appiconset/app-icon_1024x1024.png -------------------------------------------------------------------------------- /ios/beplus/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/beplus/Images.xcassets/LaunchScreen.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "logo_1000x1000.png", 5 | "idiom" : "iphone", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "logo_1000x1000.png", 10 | "idiom" : "iphone", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "logo_1000x1000.png", 15 | "idiom" : "iphone", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/beplus/Images.xcassets/LaunchScreen.imageset/logo_1000x1000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/ios/beplus/Images.xcassets/LaunchScreen.imageset/logo_1000x1000.png -------------------------------------------------------------------------------- /ios/beplus/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BGTaskSchedulerPermittedIdentifiers 6 | 7 | $(PRODUCT_BUNDLE_IDENTIFIER) 8 | 9 | CFBundleDevelopmentRegion 10 | en 11 | CFBundleDisplayName 12 | $(BE_APP_NAME) 13 | CFBundleExecutable 14 | $(EXECUTABLE_NAME) 15 | CFBundleIdentifier 16 | $(PRODUCT_BUNDLE_IDENTIFIER) 17 | CFBundleInfoDictionaryVersion 18 | 6.0 19 | CFBundleName 20 | $(PRODUCT_NAME) 21 | CFBundlePackageType 22 | APPL 23 | CFBundleShortVersionString 24 | $(BE_APP_VERSION) 25 | CFBundleSignature 26 | ???? 27 | CFBundleVersion 28 | $(BE_APP_BUILD_NUMBER) 29 | ITSAppUsesNonExemptEncryption 30 | 31 | LSRequiresIPhoneOS 32 | 33 | NSAppTransportSecurity 34 | 35 | NSAllowsArbitraryLoads 36 | 37 | NSAllowsLocalNetworking 38 | 39 | 40 | NSLocationAlwaysAndWhenInUseUsageDescription 41 | Allow $(PRODUCT_NAME) to use your location 42 | NSLocationAlwaysUsageDescription 43 | Allow $(PRODUCT_NAME) to use your location 44 | NSLocationWhenInUseUsageDescription 45 | Allow $(PRODUCT_NAME) to use your location 46 | UIBackgroundModes 47 | 48 | fetch 49 | location 50 | processing 51 | remote-notification 52 | 53 | UILaunchStoryboardName 54 | LaunchScreen.storyboard 55 | UIRequiredDeviceCapabilities 56 | 57 | arm64 58 | 59 | UISupportedInterfaceOrientations 60 | 61 | UIInterfaceOrientationPortrait 62 | UIInterfaceOrientationLandscapeLeft 63 | UIInterfaceOrientationLandscapeRight 64 | 65 | UIViewControllerBasedStatusBarAppearance 66 | 67 | VarInPlist 68 | $(BE_VAR_IN_PLIST) 69 | 70 | 71 | -------------------------------------------------------------------------------- /ios/beplus/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /ios/beplus/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryUserDefaults 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | CA92.1 21 | 22 | 23 | 24 | NSPrivacyAccessedAPIType 25 | NSPrivacyAccessedAPICategorySystemBootTime 26 | NSPrivacyAccessedAPITypeReasons 27 | 28 | 35F9.1 29 | 30 | 31 | 32 | NSPrivacyCollectedDataTypes 33 | 34 | NSPrivacyTracking 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/beplus/beplus.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ios/beplus/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ios/beplusTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | $(BE_APP_VERSION) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(BE_APP_BUILD_NUMBER) 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/beplusTests/beplusTests.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | #import 5 | #import 6 | 7 | #define TIMEOUT_SECONDS 600 8 | #define TEXT_TO_LOOK_FOR @"Welcome to React" 9 | 10 | @interface beplusTests : XCTestCase 11 | 12 | @end 13 | 14 | @implementation beplusTests 15 | 16 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test 17 | { 18 | if (test(view)) { 19 | return YES; 20 | } 21 | for (UIView *subview in [view subviews]) { 22 | if ([self findSubviewInView:subview matching:test]) { 23 | return YES; 24 | } 25 | } 26 | return NO; 27 | } 28 | 29 | - (void)testRendersWelcomeScreen 30 | { 31 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; 32 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; 33 | BOOL foundElement = NO; 34 | 35 | __block NSString *redboxError = nil; 36 | #ifdef DEBUG 37 | RCTSetLogFunction( 38 | ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { 39 | if (level >= RCTLogLevelError) { 40 | redboxError = message; 41 | } 42 | }); 43 | #endif 44 | 45 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { 46 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 47 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; 48 | 49 | foundElement = [self findSubviewInView:vc.view 50 | matching:^BOOL(UIView *view) { 51 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { 52 | return YES; 53 | } 54 | return NO; 55 | }]; 56 | } 57 | 58 | #ifdef DEBUG 59 | RCTSetLogFunction(RCTDefaultLogFunction); 60 | #endif 61 | 62 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); 63 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /ios/fastlane/.gitignore: -------------------------------------------------------------------------------- 1 | devices.txt 2 | devices.deviceids 3 | -------------------------------------------------------------------------------- /ios/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # https://docs.fastlane.tools/ 2 | 3 | skip_docs 4 | 5 | envs = [ 6 | { name: "dev", id_suffix: ".dev", configuration: "ReleaseDev" }, 7 | { name: "stage", id_suffix: ".stage", configuration: "ReleaseStage" }, 8 | { name: "prod", id_suffix: "", configuration: "Release" } 9 | ] 10 | 11 | lane :apps do |options| 12 | enable_services = { 13 | # associated_domains: "on", 14 | # push_notification: "on", 15 | # ... 16 | } 17 | 18 | # debug 19 | produce( 20 | username: ENV["BE_FASTLANE_USERNAME"], 21 | app_identifier: "#{ENV["BE_APP_BUNDLE_ID"]}.debug", 22 | app_name: "#{ENV["BE_APP_NAME"]}-debug", 23 | language: "en-US", 24 | # Necessary when in multiple teams. 25 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 26 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 27 | skip_itc: true, 28 | # Services 29 | enable_services: enable_services 30 | ) 31 | 32 | if options[:env].to_s.strip.empty? 33 | envs.each { |env| 34 | produce( 35 | username: ENV["BE_FASTLANE_USERNAME"], 36 | app_identifier: "#{ENV["BE_APP_BUNDLE_ID"]}#{env[:id_suffix]}", 37 | app_name: "#{ENV["BE_APP_NAME"]}-#{env[:name]}", 38 | language: "en-US", 39 | # Necessary when in multiple teams. 40 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 41 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 42 | # https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/user/detail 43 | itc_team_id: ENV["BE_APPSTORE_CONNECT_TEAM_ID"], 44 | itc_team_name: ENV["BE_APPSTORE_CONNECT_TEAM_NAME"], 45 | # Services 46 | enable_services: enable_services 47 | ) 48 | } 49 | elsif 50 | specific_env = envs.select { |env| env[:name] == options[:env] }.first 51 | produce( 52 | username: ENV["BE_FASTLANE_USERNAME"], 53 | app_identifier: "#{ENV["BE_APP_BUNDLE_ID"]}#{specific_env[:id_suffix]}", 54 | app_name: "#{ENV["BE_APP_NAME"]}-#{specific_env[:name]}", 55 | language: "en-US", 56 | # Necessary when in multiple teams. 57 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 58 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 59 | # https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/user/detail 60 | itc_team_id: ENV["BE_APPSTORE_CONNECT_TEAM_ID"], 61 | itc_team_name: ENV["BE_APPSTORE_CONNECT_TEAM_NAME"], 62 | # Services 63 | enable_services: enable_services 64 | ) 65 | end 66 | end 67 | 68 | # This `signing_sync` lane runs before the `deploy` to READ & install certificates & provisioning profiles 69 | lane :signing_sync do |options| 70 | api_key = app_store_connect_api_key( 71 | key_id: ENV["BE_APPSTORE_CONNECT_KEY_ID"], 72 | issuer_id: ENV["BE_APPSTORE_CONNECT_KEY_ISSUER_ID"], 73 | # key_filepath: ENV["BE_APPSTORE_CONNECT_KEY_FILE_PATH"], 74 | key_content: ENV["BE_APPSTORE_CONNECT_KEY_CONTENT"], 75 | duration: 1200, # max 76 | in_house: false 77 | ) 78 | 79 | readonly = options[:readonly] != false 80 | force = options[:force] == true 81 | 82 | # register_devices( 83 | # api_key: api_key, 84 | # devices_file: ENV["BE_APPLE_DEVELOPER_DEVICES_FILE_PATH"], 85 | # team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 86 | # team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 87 | # ) 88 | 89 | # debug 90 | match( 91 | api_key: api_key, 92 | type: "development", 93 | readonly: readonly, 94 | force: force, 95 | app_identifier: [ 96 | "#{ENV["BE_APP_BUNDLE_ID"]}.debug" 97 | ], 98 | # Necessary when in multiple teams. 99 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 100 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 101 | ) 102 | 103 | if options[:env].to_s.strip.empty? 104 | # dev, stage, prod 105 | match( 106 | api_key: api_key, 107 | type: "appstore", 108 | readonly: readonly, 109 | force: force, 110 | app_identifier: envs.map { |env| "#{ENV["BE_APP_BUNDLE_ID"]}#{env[:id_suffix]}" }, 111 | # Necessary when in multiple teams. 112 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 113 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 114 | ) 115 | elsif 116 | specific_env = envs.select { |env| env[:name] == options[:env] }.first 117 | match( 118 | api_key: api_key, 119 | type: "appstore", 120 | readonly: readonly, 121 | force: force, 122 | app_identifier: "#{ENV["BE_APP_BUNDLE_ID"]}#{specific_env[:id_suffix]}", 123 | # Necessary when in multiple teams. 124 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 125 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 126 | ) 127 | end 128 | end 129 | 130 | lane :nuke do 131 | api_key = app_store_connect_api_key( 132 | key_id: ENV["BE_APPSTORE_CONNECT_KEY_ID"], 133 | issuer_id: ENV["BE_APPSTORE_CONNECT_KEY_ISSUER_ID"], 134 | # key_filepath: ENV["BE_APPSTORE_CONNECT_KEY_FILE_PATH"], 135 | key_content: ENV["BE_APPSTORE_CONNECT_KEY_CONTENT"], 136 | duration: 1200, # max 137 | in_house: false 138 | ) 139 | 140 | match_nuke( 141 | type: "development", 142 | api_key: api_key, 143 | # Necessary when in multiple teams. 144 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 145 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 146 | ) 147 | 148 | match_nuke( 149 | type: "appstore", 150 | api_key: api_key, 151 | # Necessary when in multiple teams. 152 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 153 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 154 | ) 155 | end 156 | 157 | # deploy 158 | lane :deploy do |options| 159 | api_key = app_store_connect_api_key( 160 | key_id: ENV["BE_APPSTORE_CONNECT_KEY_ID"], 161 | issuer_id: ENV["BE_APPSTORE_CONNECT_KEY_ISSUER_ID"], 162 | # key_filepath: ENV["BE_APPSTORE_CONNECT_KEY_FILE_PATH"], 163 | key_content: ENV["BE_APPSTORE_CONNECT_KEY_CONTENT"], 164 | duration: 1200, # max 165 | in_house: false 166 | ) 167 | 168 | setup_ci 169 | 170 | selected_env = envs.select { |env| env[:name] == options[:env] }.first 171 | 172 | sync_code_signing( 173 | api_key: api_key, 174 | type: "appstore", 175 | readonly: true, 176 | app_identifier: [ 177 | "#{ENV["BE_APP_BUNDLE_ID"]}#{selected_env[:id_suffix]}" 178 | ], 179 | # Necessary when in multiple teams. 180 | team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], 181 | team_name: ENV["BE_APPLE_DEVELOPER_TEAM_NAME"], 182 | ) 183 | 184 | build_app( 185 | workspace: "beplus.xcworkspace", 186 | scheme: "beplus#{selected_env[:id_suffix]}", 187 | configuration: selected_env[:configuration], 188 | output_name: "beplus-#{selected_env[:name]}.ipa" 189 | ) 190 | 191 | upload_to_testflight( 192 | api_key: api_key, 193 | app_identifier: "#{ENV["BE_APP_BUNDLE_ID"]}#{selected_env[:id_suffix]}", 194 | apple_id: ENV["BE_APP_APPLE_ID"], 195 | team_id: ENV["BE_APPSTORE_CONNECT_TEAM_ID"], # itc_team_id 196 | team_name: ENV["BE_APPSTORE_CONNECT_TEAM_NAME"], # itc_team_name 197 | dev_portal_team_id: ENV["BE_APPLE_DEVELOPER_TEAM_ID"], # team_id 198 | skip_waiting_for_build_processing: true, 199 | submit_beta_review: false 200 | ) 201 | end 202 | -------------------------------------------------------------------------------- /ios/fastlane/Matchfile: -------------------------------------------------------------------------------- 1 | # https://docs.fastlane.tools/actions/match 2 | 3 | storage_mode(ENV["BE_FASTLANE_MATCH_STORAGE"]) # "s3" or "git" 4 | 5 | if ENV["BE_FASTLANE_MATCH_STORAGE"] == "s3" 6 | s3_bucket(ENV["BE_FASTLANE_MATCH_STORAGE_S3_BUCKET_NAME"]) 7 | s3_object_prefix("#{ENV["BE_APPLE_DEVELOPER_TEAM_ID"]}/".downcase) 8 | 9 | if ENV["BE_FASTLANE_MATCH_STORAGE_S3_AWS_REGION"] 10 | s3_region(ENV["BE_FASTLANE_MATCH_STORAGE_S3_AWS_REGION"]) 11 | end 12 | if ENV["BE_FASTLANE_MATCH_STORAGE_S3_AWS_ACCESS_KEY_ID"] 13 | s3_access_key(ENV["BE_FASTLANE_MATCH_STORAGE_S3_AWS_ACCESS_KEY_ID"]) 14 | end 15 | if ENV["BE_FASTLANE_MATCH_STORAGE_S3_AWS_SECRET_ACCESS_KEY"] 16 | s3_secret_access_key(ENV["BE_FASTLANE_MATCH_STORAGE_S3_AWS_SECRET_ACCESS_KEY"]) 17 | end 18 | elsif ENV["BE_FASTLANE_MATCH_STORAGE"] == "git" 19 | git_url(ENV["BE_FASTLANE_MATCH_STORAGE_GIT_URL"]) 20 | git_branch("#{ENV["BE_APPLE_DEVELOPER_TEAM_ID"]}".downcase) 21 | if (ENV["BE_FASTLANE_MATCH_STORAGE_GIT_SSH_KEY_PRIVATE_CONTENT"]) 22 | git_private_key(ENV["BE_FASTLANE_MATCH_STORAGE_GIT_SSH_KEY_PRIVATE_CONTENT"]) 23 | end 24 | else 25 | raise "BE_FASTLANE_MATCH_STORAGE is not set or not supported. Allowed values are: 's3' or 'git'" 26 | end 27 | -------------------------------------------------------------------------------- /ios/fastlane/devices.samples.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beplus-bootstrap/mobile/ecfa9218a0a88ef06803cc15212a7b6a386d1e8f/ios/fastlane/devices.samples.zip -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); 4 | 5 | const pnpmNodeModules = path.resolve(__dirname, "node_modules"); 6 | 7 | /** 8 | * Metro configuration 9 | * https://reactnative.dev/docs/metro 10 | * 11 | * @type {import('metro-config').MetroConfig} 12 | */ 13 | const config = { 14 | watchFolders: [ 15 | pnpmNodeModules, 16 | ], 17 | }; 18 | 19 | module.exports = mergeConfig(getDefaultConfig(__dirname), config); 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@beplus-bootstrap/mobile", 3 | "version": "1.0.0", 4 | "buildNumber": "1", 5 | "private": true, 6 | "scripts": { 7 | "android": "react-native run-android", 8 | "ios": "react-native run-ios", 9 | "lint": "eslint .", 10 | "start": "react-native start", 11 | "test": "jest" 12 | }, 13 | "dependencies": { 14 | "react": "18.3.1", 15 | "react-native": "0.74.4", 16 | "react-native-config": "1.5.3" 17 | }, 18 | "devDependencies": { 19 | "@babel/core": "7.25.2", 20 | "@babel/preset-env": "7.25.3", 21 | "@babel/runtime": "7.25.0", 22 | "@react-native-community/cli": "14.0.0", 23 | "@react-native-community/cli-platform-android": "14.0.0", 24 | "@react-native-community/cli-platform-ios": "14.0.0", 25 | "@react-native/babel-preset": "0.74.86", 26 | "@react-native/eslint-config": "0.74.86", 27 | "@react-native/gradle-plugin": "0.74.86", 28 | "@react-native/metro-config": "0.74.86", 29 | "@react-native/typescript-config": "0.74.86", 30 | "@types/react": "18.3.3", 31 | "@types/react-test-renderer": "18.3.0", 32 | "babel-jest": "29.7.0", 33 | "eslint": "8.57.0", 34 | "jest": "29.7.0", 35 | "prettier": "3.3.3", 36 | "react-test-renderer": "18.3.1", 37 | "typescript": "5.5.4" 38 | }, 39 | "engines": { 40 | "node": ">=18" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@react-native/typescript-config/tsconfig.json" 3 | } 4 | --------------------------------------------------------------------------------