expo
expo copied to clipboard
in `android.intentFilters`, `pathAdvancedPattern` is rejected by JSON schema
Summary
pathAdvancedPattern
is one of the fields allowed by Android for intent filters - https://developer.android.com/guide/topics/manifest/data-element#path - introduced in API 31
When it is used in the android.intentFilters
config section, it mostly works fine - there's no typing errors, it is generated correctly, etc. But when running expo-cli doctor
, it's rejected
Environment
expo-env-info 1.0.5 environment info:
System:
OS: macOS 13.3.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 19.9.0 - /opt/homebrew/bin/node
Yarn: 3.5.0 - /opt/homebrew/bin/yarn
npm: 9.6.3 - /opt/homebrew/bin/npm
Managers:
CocoaPods: 1.12.0 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
IDEs:
Xcode: 14.3/14E222b - /usr/bin/xcodebuild
npmGlobalPackages:
eas-cli: 3.10.2
expo-cli: 6.3.7
Expo Workflow: managed
Please specify your device/emulator/simulator platform, model and version
Android 13, no specific device
Error output
Error: Problems validating fields in app.json. Learn more: https://docs.expo.dev/workflow/configuration/
• Field: android/intentFilters/0/data - must be object.
• Field: android/intentFilters/0/data/1 - should NOT have additional property 'pathAdvancedPattern'.
• Field: android/intentFilters/0/data - must match a schema in anyOf.
Reproducible demo or steps to reproduce from a blank project
app.config.ts
:
import { ConfigContext, ExpoConfig } from '@expo/config';
export default (context: ConfigContext): ExpoConfig => {
return {
...context.config,
version: '1.0.0',
android: {
package: 'com.jamesbillingham.testapp',
intentFilters: [
{
autoVerify: true,
action: 'VIEW',
category: ['BROWSABLE', 'DEFAULT'],
data: {
scheme: 'https',
host: 'testapp.jamesbillingham.com',
pathAdvancedPattern: '/[^.~_-].*',
},
},
],
},
plugins: [
['expo-build-properties', {
android: {
minSdkVersion: 31,
compileSdkVersion: 33,
targetSdkVersion: 33,
buildToolsVersion: '33.0.1',
},
}],
],
};
};