aa7ca5396c | ||
---|---|---|
.github | ||
.vscode | ||
.yarn/releases | ||
android | ||
common | ||
example | ||
ios | ||
macos | ||
scripts | ||
test | ||
windows | ||
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.rubocop.yml | ||
.swiftlint.yml | ||
.yarnrc.yml | ||
Brewfile | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
README.md | ||
ReactTestApp-DevSupport.podspec | ||
SECURITY.md | ||
package.json | ||
react-native.config.js | ||
schema.json | ||
test-app.gradle | ||
test_app.rb | ||
tsconfig.json | ||
yarn.lock |
README.md
React Native Test App
React Native Test App provides test apps for all platforms as a package. It handles the native bits for you so you can focus on what's important: your product.
If you want to learn how RNTA is used at Microsoft, and see a demo of how to add it to an existing library - you can watch the "Improve all the repos – exploring Microsoft’s DevExp" talk by @kelset and @tido64 from React Native Europe 2021.
For more about the motivation and the design of this tool, you can refer to the wiki.
Quick Start
Install react-native-test-app
as a dev dependency. We will use the wizard to
generate your test app:
yarn add react-native-test-app --dev
yarn init-test-app
In this example, we will create a project named "sample" in sample
with test
apps for all platforms:
✔ What is the name of your test app? … sample
? Which platforms do you need test apps for? ›
Instructions:
↑/↓: Highlight option
←/→/[space]: Toggle selection
a: Toggle all
enter/return: Complete answer
◉ Android
◉ iOS
◉ macOS
◉ Windows
✔ Where should we create the new project?? … sample
Run yarn
inside the new project folder:
cd sample
yarn
Once the dependencies are installed, follow the platform specific instructions below.
Android
Bundle the JS code and assets by running:
yarn build:android
If you're going to use the development server, you can skip this step.
To start the Android app, run:
yarn android
Alternatively, you can also run the app within Android Studio by pointing it to
the android
folder.
iOS
Bundle the JS code and assets by running:
yarn build:ios
If you're going to use the development server, you can skip this step.
Before you can run the iOS app, you must first install its native dependencies:
pod install --project-directory=ios
This command is also responsible for generating the Xcode project. To start the iOS app, run:
yarn ios
Alternatively, you can also run the app within Xcode by opening the Xcode workspace:
open ios/Sample.xcworkspace
Note: If you made changes to
app.json
or any other assets, you should re-runpod install
to make sure that the changes are included in the Xcode project.
macOS
Bundle the JS code and assets by running:
yarn build:ios
If you're going to use the development server, you can skip this step.
Before you can run the macOS app, you must first install its native dependencies:
pod install --project-directory=macos
This command is also responsible for generating the Xcode project. To start the macOS app, run:
yarn macos
Alternatively, you can also run the app within Xcode by opening the Xcode workspace:
open macos/Sample.xcworkspace
Note: If you made changes to
app.json
or any other assets, you should re-runpod install
to make sure that the changes are included in the Xcode project.
Windows
Bundle the JS code and assets by running:
yarn build:ios
Before you can run the Windows app, you must first generate it:
yarn install-windows-test-app --use-nuget
To start the Windows app, run:
yarn windows
Alternatively, you can also run the app within Visual Studio by opening the solution file:
start windows/Sample.sln
If you choose to use Visual Studio, remember to first set the target platform to
x64
. It is set to ARM
by default.
Note: If you made changes to
app.json
or any other assets, you should re-runinstall-windows-test-app
to make sure that the changes are included in the Visual Studio project.
Configuring the Test App
All configuration of the test app is done via app.json
(otherwise known as the
manifest). You can learn more about that in
the wiki.
Additionally, you can find platform specific documentation below:
Known Issues
For a list of known issues and workarounds, please go to the Troubleshooting page in the wiki.