rnv.project Schema Definition
The schema defines the following properties:
workspaceID
(string)
Workspace ID your project belongs to. This will mach same folder name in the root of your user directory. ie ~/
on macOS
projectVersion
(string)
Version of project
projectName
(string)
Name of the project which will be used in workspace as folder name. this will also be used as part of the KEY in crypto env var generator
isTemplate
(boolean)
Marks project as template. This disables certain user checks like version mismatch etc
defaults
(object)
Default system config for this project
Properties of the defaults
object:
ports
(object)
Allows you to assign custom port per each supported platform specific to this project. this is useful if you foten switch between multiple projects and do not want to experience constant port conflicts
supportedPlatforms
(array)
Array list of all supported platforms in current project
The object is an array with all elements of the type string
.
portOffset
(number)
Offset each port default value by increment
defaultCommandSchemes
(object)
List of default schemes for each rnv command. This is useful if you want to avoid specifying -s ...
every time your run rnv command. bu default rnv uses -s debug
. NOTE: you can only use schemes you defined in buildSchemes
targets
(object)
Override of default targets specific to this project
pipes
(array)
To avoid rnv building buildHooks/src
every time you can specify which specific pipes should trigger recompile of buildHooks
The object is an array with all elements of the type string
.
crypto
(object)
This prop enables automatic encrypt and decrypt of sensitive information in your project. RNV will generate new env variable with can be used to encrypt and decrypt. this env var is generated by combining (and sanitizing) 2 properties from your renative.json: workspaceID + projectName. These 2 properties are also used to generate path on your local machine where encrypted files will be decrypted into.
Properties of the crypto
object:
path
(string, required)
Relative path to encrypted file in your renative project. Example: "./secrets/mySecrets.enc"
isOptional
(boolean)
Mark if crypto object should not checked every run
paths
(object)
Define custom paths for RNV to look into
Properties of the paths
object:
appConfigsDir
(string)
Custom path to appConfigs. defaults to ./appConfigs
platformTemplatesDirs
(object)
Custom location of ejected platform templates. this is populated after you run rnv platform eject
appConfigsDirs
(array)
Array of custom location app configs directories`
The object is an array with all elements of the type string
.
platformAssetsDir
(string)
Custom path to platformAssets folder. defaults to ./platformAssets
platformBuildsDir
(string)
Custom path to platformBuilds folder. defaults to ./platformBuilds
pluginTemplates
(object)
Allows you to define custom plugin template scopes. default scope for all plugins is rnv
.
permissions
(object)
Permission definititions which can be used by app configs via includedPermissions
and excludedPermissions
to customize permissions for each app
Properties of the permissions
object:
android
(object)
Android SDK specific permissions
ios
(object)
iOS SDK specific permissions
engines
(object)
List of engines available in this project
enableHookRebuild
(boolean)
If set to true in ./renative.json
build hooks will be compiled at each rnv command run. If set to false
(default) rebuild will be triggered only if dist
folder is missing, -r
has been passed or you run rnv hooks run
directly making your rnv commands faster
extendsTemplate
(string)
You can extend another renative.json file of currently applied template by providing relative or full package name path. Exampe: @rnv/template-starter/renative.json
tasks
(object)
Allows to override specific task within renative toolchain. (currently only install
supported). this is useful if you want to change specific behaviour of built-in task. ie install task triggers yarn/npm install by default. but that might not be desirable installation trigger
Properties of the tasks
object:
install
(object, required)
Properties of the install
object:
script
(string, required)
platform
(object, required)
integrations
(object)
Object containing integration configurations where key represents package name
env
(object)
Object containing injected env variables
runtime
This object will be automatically injected into ./platfromAssets/renative.runtime.json
making it possible to inject the values directly to JS source code
isMonorepo
(boolean)
Mark if your project is part of monorepo
monoRoot
(string)
Define custom path to monorepo root where starting point is project directory
custom
Object used to extend your renative with custom props. This allows renative json schema to be validated
skipAutoUpdate
(boolean)
Enables the equivalent to passing --skipDependencyCheck parameter on every rnv run so you don't have to use it
common
(object)
Common config props used as default props for all available buildSchemes
Properties of the common
object:
includedPermissions
(array)
Allows you to include specific permissions by their KEY defined in permissions
object. Use: ['*']
to include all
The object is an array with all elements of the type string
.
excludedPermissions
(array)
Allows you to exclude specific permissions by their KEY defined in permissions
object. Use: ['*']
to exclude all
The object is an array with all elements of the type string
.
id
(string)
Bundle ID of application. ie: com.example.myapp
idSuffix
(string)
version
(string)
Semver style version of your app
versionCode
(string)
Manual verride of generated version code
versionFormat
(string)
Allows you to fine-tune app version defined in package.json or renative.json. If you do not define versionFormat, no formatting will apply to version.
versionCodeFormat
(string)
Allows you to fine-tune auto generated version codes. Version code is autogenerated from app version defined in package.json or renative.json.
versionCodeOffset
(number)
title
(string)
Title of your app will be used to create title of the binary. ie App title of installed app iOS/Android app or Tab title of the website
description
(string)
General description of your app. This prop will be injected to actual projects where description field is applicable
author
(string)
Author name
license
(string)
Injects license information into app
includedFonts
(array)
Array of fonts you want to include in specific app or scheme. Should use exact font file (without the extension) located in ./appConfigs/base/fonts
or *
to mark all
The object is an array with all elements of the type string
.
backgroundColor
(string)
Defines root view backgroundColor for all platforms in HEX format
Constraints:
- Regex pattern:
^#
splashScreen
(boolean)
Enable or disable splash screen
fontSources
(array)
Array of paths to location of external Fonts. you can use resolve function here example: {{resolvePackage(react-native-vector-icons)}}/Fonts
The object is an array with all elements of the type string
.
assetSources
(array)
Array of paths to alternative external assets. this will take priority over ./appConfigs/base/assets folder on your local project. You can use resolve function here example: {{resolvePackage(@flexn/template-starter)}}/appConfigs/base/assets
The object is an array with all elements of the type string
.
includedPlugins
(array)
Defines an array of all included plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: includedPlugins is evaluated before excludedPlugins. Use: ['*']
to include all
The object is an array with all elements of the type string
.
excludedPlugins
(array)
Defines an array of all excluded plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: excludedPlugins is evaluated after includedPlugins. Use: ['*']
to exclude all
The object is an array with all elements of the type string
.
runtime
custom
buildSchemes
(object)
platforms
(object)
Object containing platform configurations
Properties of the platforms
object:
android
(object)
Properties of the android
object:
buildSchemes
(object)
includedPermissions
Allows you to include specific permissions by their KEY defined in permissions
object. Use: ['*']
to include all
excludedPermissions
Allows you to exclude specific permissions by their KEY defined in permissions
object. Use: ['*']
to exclude all
id
Bundle ID of application. ie: com.example.myapp
idSuffix
version
Semver style version of your app
versionCode
Manual verride of generated version code
versionFormat
Allows you to fine-tune app version defined in package.json or renative.json. If you do not define versionFormat, no formatting will apply to version.
versionCodeFormat
Allows you to fine-tune auto generated version codes. Version code is autogenerated from app version defined in package.json or renative.json.
versionCodeOffset
title
Title of your app will be used to create title of the binary. ie App title of installed app iOS/Android app or Tab title of the website
description
General description of your app. This prop will be injected to actual projects where description field is applicable
author
Author name
license
Injects license information into app
includedFonts
Array of fonts you want to include in specific app or scheme. Should use exact font file (without the extension) located in ./appConfigs/base/fonts
or *
to mark all
backgroundColor
Defines root view backgroundColor for all platforms in HEX format
splashScreen
Enable or disable splash screen
fontSources
Array of paths to location of external Fonts. you can use resolve function here example: {{resolvePackage(react-native-vector-icons)}}/Fonts
assetSources
Array of paths to alternative external assets. this will take priority over ./appConfigs/base/assets folder on your local project. You can use resolve function here example: {{resolvePackage(@flexn/template-starter)}}/appConfigs/base/assets
includedPlugins
Defines an array of all included plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: includedPlugins is evaluated before excludedPlugins. Use: ['*']
to include all
excludedPlugins
Defines an array of all excluded plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: excludedPlugins is evaluated after includedPlugins. Use: ['*']
to exclude all
runtime
custom
extendPlatform
assetFolderPlatform
Alternative platform assets. This is useful for example when you want to use same android assets in androidtv and want to avoid duplicating assets
engine
ID of engine to be used for this platform. Note: engine must be registered in engines
field
entryFile
Alternative name of the entry file without .js
extension
bundleAssets
If set to true
compiled js bundle file will generated. this is needed if you want to make production like builds
enableSourceMaps
If set to true
dedicated source map file will be generated alongside of compiled js bundle
bundleIsDev
If set to true
debug build will be generated
getJsBundleFile
enableAndroidX
Enables new android X architecture
enableJetifier
Enables Jetifier
signingConfig
Equivalent to running ./gradlew/assembleDebug
or ./gradlew/assembleRelease
minSdkVersion
Minimum Android SDK version device has to have in order for app to run
multipleAPKs
If set to true
, apk will be split into multiple ones for each architecture: "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
aab
If set to true, android project will generate app.aab instead of apk
extraGradleParams
Allows passing extra params to gradle command
minifyEnabled
Sets minifyEnabled buildType property in app/build.gradle
targetSdkVersion
Allows you define custom targetSdkVersion equivalent to: targetSdkVersion = [VERSION]
in build.gradle
compileSdkVersion
Allows you define custom compileSdkVersion equivalent to: compileSdkVersion = [VERSION]
in build.gradle
kotlinVersion
Allows you define custom kotlin version
ndkVersion
Allows you define custom ndkVersion equivalent to: ndkVersion = [VERSION]
in build.gradle
supportLibVersion
Allows you define custom supportLibVersion equivalent to: supportLibVersion = [VERSION]
in build.gradle
googleServicesVersion
Allows you define custom googleServicesVersion equivalent to: googleServicesVersion = [VERSION]
in build.gradle
gradleBuildToolsVersion
Allows you define custom gradle build tools version equivalent to: classpath 'com.android.tools.build:gradle:[VERSION]'
gradleWrapperVersion
Allows you define custom gradle wrapper version equivalent to: distributionUrl=https\://services.gradle.org/distributions/gradle-[VERSION]-all.zip
excludedFeatures
Override features definitions in AndroidManifest.xml by exclusion
includedFeatures
Override features definitions in AndroidManifest.xml by inclusion
buildToolsVersion
Override android build tools version
disableSigning
storeFile
Name of the store file in android project
keyAlias
Key alias of the store file in android project
newArchEnabled
Enables new arch for android. Default: false
flipperEnabled
Enables flipper for ios. Default: true
reactNativeEngine
Allows you to define specific native render engine to be used
templateAndroid
androidtv
androidwear
firetv
ios
(object)
Properties of the ios
object:
buildSchemes
(object)
includedPermissions
Allows you to include specific permissions by their KEY defined in permissions
object. Use: ['*']
to include all
excludedPermissions
Allows you to exclude specific permissions by their KEY defined in permissions
object. Use: ['*']
to exclude all
id
Bundle ID of application. ie: com.example.myapp
idSuffix
version
Semver style version of your app
versionCode
Manual verride of generated version code
versionFormat
Allows you to fine-tune app version defined in package.json or renative.json. If you do not define versionFormat, no formatting will apply to version.
versionCodeFormat
Allows you to fine-tune auto generated version codes. Version code is autogenerated from app version defined in package.json or renative.json.
versionCodeOffset
title
Title of your app will be used to create title of the binary. ie App title of installed app iOS/Android app or Tab title of the website
description
General description of your app. This prop will be injected to actual projects where description field is applicable
author
Author name
license
Injects license information into app
includedFonts
Array of fonts you want to include in specific app or scheme. Should use exact font file (without the extension) located in ./appConfigs/base/fonts
or *
to mark all
backgroundColor
Defines root view backgroundColor for all platforms in HEX format
splashScreen
Enable or disable splash screen
fontSources
Array of paths to location of external Fonts. you can use resolve function here example: {{resolvePackage(react-native-vector-icons)}}/Fonts
assetSources
Array of paths to alternative external assets. this will take priority over ./appConfigs/base/assets folder on your local project. You can use resolve function here example: {{resolvePackage(@flexn/template-starter)}}/appConfigs/base/assets
includedPlugins
Defines an array of all included plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: includedPlugins is evaluated before excludedPlugins. Use: ['*']
to include all
excludedPlugins
Defines an array of all excluded plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: excludedPlugins is evaluated after includedPlugins. Use: ['*']
to exclude all
runtime
custom
extendPlatform
assetFolderPlatform
Alternative platform assets. This is useful for example when you want to use same android assets in androidtv and want to avoid duplicating assets
engine
ID of engine to be used for this platform. Note: engine must be registered in engines
field
entryFile
Alternative name of the entry file without .js
extension
bundleAssets
If set to true
compiled js bundle file will generated. this is needed if you want to make production like builds
enableSourceMaps
If set to true
dedicated source map file will be generated alongside of compiled js bundle
bundleIsDev
If set to true
debug build will be generated
getJsBundleFile
ignoreWarnings
Injects inhibit_all_warnings
into Podfile
ignoreLogs
Passes -quiet
to xcodebuild command
deploymentTarget
Deployment target for xcodepoj
orientationSupport
teamID
Apple teamID
excludedArchs
Defines excluded architectures. This transforms to xcodeproj: EXCLUDED_ARCHS="<VAL VAL ...>"
urlScheme
URL Scheme for the app used for deeplinking
teamIdentifier
Apple developer team ID
scheme
schemeTarget
appleId
provisioningStyle
newArchEnabled
Enables new archs for iOS. Default: false
codeSignIdentity
Special property which tells Xcode how to build your project
commandLineArguments
Allows you to pass launch arguments to active scheme
provisionProfileSpecifier
provisionProfileSpecifiers
allowProvisioningUpdates
provisioningProfiles
codeSignIdentities
systemCapabilities
entitlements
runScheme
sdk
testFlightId
firebaseId
privacyManifests
exportOptions
reactNativeEngine
Allows you to define specific native render engine to be used
templateXcode
tvos
tizen
(object)
Properties of the tizen
object:
buildSchemes
(object)
includedPermissions
Allows you to include specific permissions by their KEY defined in permissions
object. Use: ['*']
to include all
excludedPermissions
Allows you to exclude specific permissions by their KEY defined in permissions
object. Use: ['*']
to exclude all
id
Bundle ID of application. ie: com.example.myapp
idSuffix
version
Semver style version of your app
versionCode
Manual verride of generated version code
versionFormat
Allows you to fine-tune app version defined in package.json or renative.json. If you do not define versionFormat, no formatting will apply to version.
versionCodeFormat
Allows you to fine-tune auto generated version codes. Version code is autogenerated from app version defined in package.json or renative.json.
versionCodeOffset
title
Title of your app will be used to create title of the binary. ie App title of installed app iOS/Android app or Tab title of the website
description
General description of your app. This prop will be injected to actual projects where description field is applicable
author
Author name
license
Injects license information into app
includedFonts
Array of fonts you want to include in specific app or scheme. Should use exact font file (without the extension) located in ./appConfigs/base/fonts
or *
to mark all
backgroundColor
Defines root view backgroundColor for all platforms in HEX format
splashScreen
Enable or disable splash screen
fontSources
Array of paths to location of external Fonts. you can use resolve function here example: {{resolvePackage(react-native-vector-icons)}}/Fonts
assetSources
Array of paths to alternative external assets. this will take priority over ./appConfigs/base/assets folder on your local project. You can use resolve function here example: {{resolvePackage(@flexn/template-starter)}}/appConfigs/base/assets
includedPlugins
Defines an array of all included plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: includedPlugins is evaluated before excludedPlugins. Use: ['*']
to include all
excludedPlugins
Defines an array of all excluded plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: excludedPlugins is evaluated after includedPlugins. Use: ['*']
to exclude all
runtime
custom
extendPlatform
assetFolderPlatform
Alternative platform assets. This is useful for example when you want to use same android assets in androidtv and want to avoid duplicating assets
engine
ID of engine to be used for this platform. Note: engine must be registered in engines
field
entryFile
Alternative name of the entry file without .js
extension
bundleAssets
If set to true
compiled js bundle file will generated. this is needed if you want to make production like builds
enableSourceMaps
If set to true
dedicated source map file will be generated alongside of compiled js bundle
bundleIsDev
If set to true
debug build will be generated
getJsBundleFile
package
certificateProfile
appName
timestampBuildFiles
devServerHost
environment
webpackConfig
tizenmobile
tizenwatch
webos
(object)
Properties of the webos
object:
buildSchemes
(object)
includedPermissions
Allows you to include specific permissions by their KEY defined in permissions
object. Use: ['*']
to include all
excludedPermissions
Allows you to exclude specific permissions by their KEY defined in permissions
object. Use: ['*']
to exclude all
id
Bundle ID of application. ie: com.example.myapp
idSuffix
version
Semver style version of your app
versionCode
Manual verride of generated version code
versionFormat
Allows you to fine-tune app version defined in package.json or renative.json. If you do not define versionFormat, no formatting will apply to version.
versionCodeFormat
Allows you to fine-tune auto generated version codes. Version code is autogenerated from app version defined in package.json or renative.json.
versionCodeOffset
title
Title of your app will be used to create title of the binary. ie App title of installed app iOS/Android app or Tab title of the website
description
General description of your app. This prop will be injected to actual projects where description field is applicable
author
Author name
license
Injects license information into app
includedFonts
Array of fonts you want to include in specific app or scheme. Should use exact font file (without the extension) located in ./appConfigs/base/fonts
or *
to mark all
backgroundColor
Defines root view backgroundColor for all platforms in HEX format
splashScreen
Enable or disable splash screen
fontSources
Array of paths to location of external Fonts. you can use resolve function here example: {{resolvePackage(react-native-vector-icons)}}/Fonts
assetSources
Array of paths to alternative external assets. this will take priority over ./appConfigs/base/assets folder on your local project. You can use resolve function here example: {{resolvePackage(@flexn/template-starter)}}/appConfigs/base/assets
includedPlugins
Defines an array of all included plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: includedPlugins is evaluated before excludedPlugins. Use: ['*']
to include all
excludedPlugins
Defines an array of all excluded plugins for specific config or buildScheme. only full keys as defined in plugin
should be used.
NOTE: excludedPlugins is evaluated after includedPlugins. Use: ['*']
to exclude all
runtime
custom
extendPlatform
assetFolderPlatform
Alternative platform assets. This is useful for example when you want to use same android assets in androidtv and want to avoid duplicating assets
engine
ID of engine to be used for this platform. Note: engine must be registered in engines
field
entryFile
Alternative name of the entry file without .js
extension
bundleAssets
If set to true
compiled js bundle file will generated. this is needed if you want to make production like builds
enableSourceMaps
If set to true
dedicated source map file will be generated alongside of compiled js bundle
bundleIsDev
If set to true
debug build will be generated
getJsBundleFile
iconColor
timestampBuildFiles
devServerHost
environment
webpackConfig
web
(object)
Properties of the web
object:
buildSchemes
(object)
includedPermissions
Allows you to include specific permissions by their KEY defined in permissions
object. Use: ['*']
to include all
excludedPermissions
Allows you to exclude specific permissions by their KEY defined in permissions
object. Use: ['*']
to exclude all
id
Bundle ID of application. ie: com.example.myapp
idSuffix
version
Semver style version of your app
versionCode
Manual verride of generated version code