From 9a1f53f0f6ac3e10aca0a483728b8f326604084a Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Mon, 6 May 2024 14:57:33 -0700 Subject: [PATCH] [build-properties] Add field to enable/disable privacy manifest aggregation (#28646) # Why There are a few issues right now with privacy manifest aggregation (https://github.com/facebook/react-native/pull/44410, https://github.com/facebook/react-native/pull/44402, https://github.com/facebook/react-native/pull/44402) that I expect will be fixed in React Native 0.74.2, but in order to ensure that this doesn't break builds I've disabled it by default and added this build property to allow folks to toggle it on. We can switch on by default when 0.74.2 is released and proven to handle some edge cases better. # How Same old process for adding a new property # Test Plan Run tests # Checklist - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). --- .../unversioned/expo-build-properties.json | 2 +- .../data/v51.0.0/expo-build-properties.json | 2 +- .../__tests__/__snapshots__/Maps-test.ts.snap | 6 +- packages/expo-build-properties/CHANGELOG.md | 1 + .../build/pluginConfig.d.ts | 9 +++ .../build/pluginConfig.js | 1 + .../src/__tests__/withBuildProperties-test.ts | 19 +++++- packages/expo-build-properties/src/ios.ts | 5 ++ .../expo-build-properties/src/pluginConfig.ts | 11 ++++ .../plugin/build/withExpoLocalization.d.ts | 8 --- .../plugin/build/withExpoLocalization.js | 63 ------------------- .../expo-template-bare-minimum/ios/Podfile | 3 + 12 files changed, 54 insertions(+), 76 deletions(-) delete mode 100644 packages/expo-localization/plugin/build/withExpoLocalization.d.ts delete mode 100644 packages/expo-localization/plugin/build/withExpoLocalization.js diff --git a/docs/public/static/data/unversioned/expo-build-properties.json b/docs/public/static/data/unversioned/expo-build-properties.json index 736607db14006..7b907f3654b2d 100644 --- a/docs/public/static/data/unversioned/expo-build-properties.json +++ b/docs/public/static/data/unversioned/expo-build-properties.json @@ -1 +1 @@ -{"name":"expo-build-properties","variant":"project","kind":1,"children":[{"name":"AndroidMavenRepository","variant":"declaration","kind":256,"children":[{"name":"authentication","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The authentication scheme to use when accessing the Maven repository."}]},"type":{"type":"union","types":[{"type":"literal","value":"basic"},{"type":"literal","value":"digest"},{"type":"literal","value":"header"}]}},{"name":"credentials","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The credentials to use when accessing the Maven repository.\nMay be of type PasswordCredentials, HttpHeaderCredentials, or AWSCredentials."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"the authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information."}]}]},"type":{"type":"reference","name":"AndroidMavenRepositoryCredentials","package":"expo-build-properties"}},{"name":"url","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The URL of the Maven repository."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"default","variant":"reference","kind":4194304},{"name":"ExtraIosPodDependency","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing extra CocoaPods dependency."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Podfile syntax reference](https://guides.cocoapods.org/syntax/podfile.html#pod)"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"branch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git branch to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"commit","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git commit to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"configurations","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Build configurations for which the pod should be installed."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['Debug', 'Release']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"git","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Use the bleeding edge version of a Pod."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n{ \"name\": \"AFNetworking\", \"git\": \"https://github.com/gowalla/AFNetworking.git\", \"tag\": \"0.7.0\" }\n```"},{"kind":"text","text":"\n\nThis acts like to add this pod dependency statement:\n"},{"kind":"code","text":"```\npod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modular_headers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether this pod should use modular headers."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"name","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Name of the pod."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"path","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom local filesystem path to add the dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~/Documents/AFNetworking\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"podspec","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom podspec path."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```https://example.com/JSONKit.podspec```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"source","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom source to search for this dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\nhttps://github.com/CocoaPods/Specs.git\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"tag","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git tag to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"testspecs","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Test specs can be optionally included via the :testspecs option. By default, none of a Pod's test specs are included."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['UnitTests', 'SomeOtherTests']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"version","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Version of the pod.\nCocoaPods supports various [versioning options](https://guides.cocoapods.org/using/the-podfile.html#pod)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~> 0.1.2\n```"}]}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing base build properties configuration."}]},"children":[{"name":"android","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroid","package":"expo-build-properties"}},{"name":"ios","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","name":"PluginConfigTypeIos","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeAndroid","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"buildToolsVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`buildToolsVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"compileSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`compileSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"enableProguardInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable [Proguard or R8](https://developer.android.com/studio/build/shrink-code) in release builds to obfuscate Java code and reduce app size."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"enableShrinkResourcesInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`shrinkResources`"},{"kind":"text","text":"](https://developer.android.com/studio/build/shrink-code#shrink-resources) in release builds to remove unused resources from the app.\nThis property should be used in combination with "},{"kind":"code","text":"`enableProguardInReleaseBuilds`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"extraMavenRepos","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra maven repositories to all gradle projects.\n\n\nTakes an array of objects or strings.\nStrings are passed as the "},{"kind":"code","text":"`url`"},{"kind":"text","text":" property of the object with no credentials or authentication scheme.\n\nThis adds the following code to **android/build.gradle**:\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n }\n}\n```"},{"kind":"text","text":"\n\nBy using an "},{"kind":"code","text":"`AndroidMavenRepository`"},{"kind":"text","text":" object, you can specify credentials and an authentication scheme.\n\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n credentials {\n username = \"bar\"\n password = \"baz\"\n }\n authentication {\n basic(BasicAuthentication)\n }\n }\n }\n}\n```"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven)"}]},{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" not the config-plugins inside "},{"kind":"code","text":"`expo-build-properties`"}]}]},"type":{"type":"array","elementType":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"AndroidMavenRepository","package":"expo-build-properties"}]}}},{"name":"extraProguardRules","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Append custom [Proguard rules](https://www.guardsquare.com/manual/configuration/usage) to **android/app/proguard-rules.pro**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"kotlinVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the Kotlin version used when building the app."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"manifestQueries","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies the set of other apps that an app intends to interact with. These other apps are specified by package name,\nby intent signature, or by provider authority."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/queries-element)"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueries","package":"expo-build-properties"}},{"name":"minSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`minSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for Android platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"packagingOptions","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidPackagingOptions","package":"expo-build-properties"}},{"name":"targetSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`targetSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"useLegacyPackaging","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Instructs the Android Gradle plugin to compress native libraries in the APK using the legacy packaging system."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/build/releases/past-releases/agp-4-2-0-release-notes#compress-native-libs-dsl)"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"usesCleartextTraffic","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Indicates whether the app intends to use cleartext network traffic."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic)"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"PluginConfigTypeAndroidPackagingOptions","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"doNotStrip","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should not be stripped of debug symbols."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"exclude","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should be excluded from being packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"merge","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where all occurrences are concatenated and packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"pickFirst","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where only the first occurrence is packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueries","variant":"declaration","kind":256,"children":[{"name":"intent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies an intent filter signature. Your app can discover other apps that have matching elements.\nThese intents have restrictions compared to typical intent filter signatures."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/training/package-visibility/declaring#intent-filter-signature) for details"}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"PluginConfigTypeAndroidQueriesIntent","package":"expo-build-properties"}}},{"name":"package","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Specifies a single app that your app intends to access. This other app might integrate with your app, or your app might use services that the other app provides."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"provider","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies one or more content provider authorities. Your app can discover other apps whose content providers use the specified authorities.\nThere are some restrictions on the options that you can include in this element, compared to a typical manifest element. You may only specify the android:authorities attribute."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueriesData","variant":"declaration","kind":256,"children":[{"name":"host","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI authority host that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"mimeType","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a MIME type that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"scheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI scheme that is handled"}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigTypeAndroidQueriesIntent","variant":"declaration","kind":256,"children":[{"name":"action","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string naming the action to perform. Usually one of the platform-defined values, such as ACTION_SEND or ACTION_VIEW"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"category","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Provides an additional way to characterize the activity handling the intent,\nusually related to the user gesture or location from which it's started."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}},{"name":"data","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A description of the data associated with the intent."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueriesData","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeIos","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"ccacheEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable C++ compiler cache for iOS builds.\n\nThis speeds up compiling C++ code by caching the results of previous compilations."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"text","text":"https://reactnative.dev/docs/build-speed#local-caches"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"text","text":"https://ccache.dev/"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"deploymentTarget","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default iOS \"Deployment Target\" version in the following projects:\n - in CocoaPods projects,\n - "},{"kind":"code","text":"`PBXNativeTarget`"},{"kind":"text","text":" with \"com.apple.product-type.application\" "},{"kind":"code","text":"`productType`"},{"kind":"text","text":" in the app project."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"extraPods","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra CocoaPods dependencies for all targets.\n\nThis acts like to add the following code to **ios/Podfile**:\n"},{"kind":"code","text":"```\npod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'\n# e.g.\npod 'Protobuf', '~> 3.14.0'\n```"}],"blockTags":[{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" but not the config-plugins inside expo-build-properties."}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"ExtraIosPodDependency","package":"expo-build-properties"}}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for iOS platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"useFrameworks","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`use_frameworks!`"},{"kind":"text","text":"](https://guides.cocoapods.org/syntax/podfile.html#use_frameworks_bang)\nin "},{"kind":"code","text":"`Podfile`"},{"kind":"text","text":" to use frameworks instead of static libraries for Pods."}]},"type":{"type":"union","types":[{"type":"literal","value":"static"},{"type":"literal","value":"dynamic"}]}}]},{"name":"withBuildProperties","variant":"declaration","kind":64,"signatures":[{"name":"withBuildProperties","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Config plugin allowing customizing native Android and iOS build properties for managed apps."}]},"parameters":[{"name":"config","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Expo config for application."}]},"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}},{"name":"props","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Configuration for the build properties plugin."}]},"type":{"type":"reference","name":"PluginConfigType","package":"expo-build-properties"}}],"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}}]}],"packageName":"expo-build-properties"} \ No newline at end of file +{"name":"expo-build-properties","variant":"project","kind":1,"children":[{"name":"AndroidMavenRepository","variant":"declaration","kind":256,"children":[{"name":"authentication","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The authentication scheme to use when accessing the Maven repository."}]},"type":{"type":"union","types":[{"type":"literal","value":"basic"},{"type":"literal","value":"digest"},{"type":"literal","value":"header"}]}},{"name":"credentials","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The credentials to use when accessing the Maven repository.\nMay be of type PasswordCredentials, HttpHeaderCredentials, or AWSCredentials."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"the authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information."}]}]},"type":{"type":"reference","name":"AndroidMavenRepositoryCredentials","package":"expo-build-properties"}},{"name":"url","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The URL of the Maven repository."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"default","variant":"reference","kind":4194304},{"name":"ExtraIosPodDependency","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing extra CocoaPods dependency."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Podfile syntax reference](https://guides.cocoapods.org/syntax/podfile.html#pod)"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"branch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git branch to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"commit","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git commit to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"configurations","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Build configurations for which the pod should be installed."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['Debug', 'Release']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"git","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Use the bleeding edge version of a Pod."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n{ \"name\": \"AFNetworking\", \"git\": \"https://github.com/gowalla/AFNetworking.git\", \"tag\": \"0.7.0\" }\n```"},{"kind":"text","text":"\n\nThis acts like to add this pod dependency statement:\n"},{"kind":"code","text":"```\npod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modular_headers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether this pod should use modular headers."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"name","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Name of the pod."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"path","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom local filesystem path to add the dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~/Documents/AFNetworking\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"podspec","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom podspec path."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```https://example.com/JSONKit.podspec```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"source","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom source to search for this dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\nhttps://github.com/CocoaPods/Specs.git\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"tag","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git tag to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"testspecs","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Test specs can be optionally included via the :testspecs option. By default, none of a Pod's test specs are included."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['UnitTests', 'SomeOtherTests']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"version","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Version of the pod.\nCocoaPods supports various [versioning options](https://guides.cocoapods.org/using/the-podfile.html#pod)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~> 0.1.2\n```"}]}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing base build properties configuration."}]},"children":[{"name":"android","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroid","package":"expo-build-properties"}},{"name":"ios","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","name":"PluginConfigTypeIos","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeAndroid","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"buildToolsVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`buildToolsVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"compileSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`compileSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"enableProguardInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable [Proguard or R8](https://developer.android.com/studio/build/shrink-code) in release builds to obfuscate Java code and reduce app size."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"enableShrinkResourcesInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`shrinkResources`"},{"kind":"text","text":"](https://developer.android.com/studio/build/shrink-code#shrink-resources) in release builds to remove unused resources from the app.\nThis property should be used in combination with "},{"kind":"code","text":"`enableProguardInReleaseBuilds`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"extraMavenRepos","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra maven repositories to all gradle projects.\n\n\nTakes an array of objects or strings.\nStrings are passed as the "},{"kind":"code","text":"`url`"},{"kind":"text","text":" property of the object with no credentials or authentication scheme.\n\nThis adds the following code to **android/build.gradle**:\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n }\n}\n```"},{"kind":"text","text":"\n\nBy using an "},{"kind":"code","text":"`AndroidMavenRepository`"},{"kind":"text","text":" object, you can specify credentials and an authentication scheme.\n\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n credentials {\n username = \"bar\"\n password = \"baz\"\n }\n authentication {\n basic(BasicAuthentication)\n }\n }\n }\n}\n```"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven)"}]},{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" not the config-plugins inside "},{"kind":"code","text":"`expo-build-properties`"}]}]},"type":{"type":"array","elementType":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"AndroidMavenRepository","package":"expo-build-properties"}]}}},{"name":"extraProguardRules","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Append custom [Proguard rules](https://www.guardsquare.com/manual/configuration/usage) to **android/app/proguard-rules.pro**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"kotlinVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the Kotlin version used when building the app."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"manifestQueries","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies the set of other apps that an app intends to interact with. These other apps are specified by package name,\nby intent signature, or by provider authority."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/queries-element)"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueries","package":"expo-build-properties"}},{"name":"minSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`minSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for Android platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"packagingOptions","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidPackagingOptions","package":"expo-build-properties"}},{"name":"targetSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`targetSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"useLegacyPackaging","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Instructs the Android Gradle plugin to compress native libraries in the APK using the legacy packaging system."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/build/releases/past-releases/agp-4-2-0-release-notes#compress-native-libs-dsl)"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"usesCleartextTraffic","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Indicates whether the app intends to use cleartext network traffic."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic)"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"PluginConfigTypeAndroidPackagingOptions","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"doNotStrip","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should not be stripped of debug symbols."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"exclude","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should be excluded from being packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"merge","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where all occurrences are concatenated and packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"pickFirst","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where only the first occurrence is packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueries","variant":"declaration","kind":256,"children":[{"name":"intent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies an intent filter signature. Your app can discover other apps that have matching elements.\nThese intents have restrictions compared to typical intent filter signatures."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/training/package-visibility/declaring#intent-filter-signature) for details"}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"PluginConfigTypeAndroidQueriesIntent","package":"expo-build-properties"}}},{"name":"package","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Specifies a single app that your app intends to access. This other app might integrate with your app, or your app might use services that the other app provides."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"provider","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies one or more content provider authorities. Your app can discover other apps whose content providers use the specified authorities.\nThere are some restrictions on the options that you can include in this element, compared to a typical manifest element. You may only specify the android:authorities attribute."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueriesData","variant":"declaration","kind":256,"children":[{"name":"host","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI authority host that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"mimeType","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a MIME type that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"scheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI scheme that is handled"}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigTypeAndroidQueriesIntent","variant":"declaration","kind":256,"children":[{"name":"action","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string naming the action to perform. Usually one of the platform-defined values, such as ACTION_SEND or ACTION_VIEW"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"category","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Provides an additional way to characterize the activity handling the intent,\nusually related to the user gesture or location from which it's started."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}},{"name":"data","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A description of the data associated with the intent."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueriesData","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeIos","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"ccacheEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable C++ compiler cache for iOS builds.\n\nThis speeds up compiling C++ code by caching the results of previous compilations."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"text","text":"https://reactnative.dev/docs/build-speed#local-caches"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"text","text":"https://ccache.dev/"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"deploymentTarget","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default iOS \"Deployment Target\" version in the following projects:\n - in CocoaPods projects,\n - "},{"kind":"code","text":"`PBXNativeTarget`"},{"kind":"text","text":" with \"com.apple.product-type.application\" "},{"kind":"code","text":"`productType`"},{"kind":"text","text":" in the app project."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"extraPods","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra CocoaPods dependencies for all targets.\n\nThis acts like to add the following code to **ios/Podfile**:\n"},{"kind":"code","text":"```\npod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'\n# e.g.\npod 'Protobuf', '~> 3.14.0'\n```"}],"blockTags":[{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" but not the config-plugins inside expo-build-properties."}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"ExtraIosPodDependency","package":"expo-build-properties"}}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for iOS platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"privacyManifestAggregationEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable aggregation of Privacy Manifests ("},{"kind":"code","text":"`PrivacyInfo.xcprivacy`"},{"kind":"text","text":") from\nCocoaPods resource bundles. If enabled, the manifests will be merged into a\nsingle file. If not enabled, developers will need to manually aggregate them."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"text","text":"https://docs.expo.dev/guides/apple-privacy/"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"text","text":"https://developer.apple.com/documentation/bundleresources/privacy_manifest_files"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"useFrameworks","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`use_frameworks!`"},{"kind":"text","text":"](https://guides.cocoapods.org/syntax/podfile.html#use_frameworks_bang)\nin "},{"kind":"code","text":"`Podfile`"},{"kind":"text","text":" to use frameworks instead of static libraries for Pods."}]},"type":{"type":"union","types":[{"type":"literal","value":"static"},{"type":"literal","value":"dynamic"}]}}]},{"name":"withBuildProperties","variant":"declaration","kind":64,"signatures":[{"name":"withBuildProperties","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Config plugin allowing customizing native Android and iOS build properties for managed apps."}]},"parameters":[{"name":"config","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Expo config for application."}]},"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}},{"name":"props","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Configuration for the build properties plugin."}]},"type":{"type":"reference","name":"PluginConfigType","package":"expo-build-properties"}}],"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}}]}],"packageName":"expo-build-properties"} \ No newline at end of file diff --git a/docs/public/static/data/v51.0.0/expo-build-properties.json b/docs/public/static/data/v51.0.0/expo-build-properties.json index 1de9e45624379..7b907f3654b2d 100644 --- a/docs/public/static/data/v51.0.0/expo-build-properties.json +++ b/docs/public/static/data/v51.0.0/expo-build-properties.json @@ -1 +1 @@ -{"name":"expo-build-properties","variant":"project","kind":1,"children":[{"name":"AndroidMavenRepository","variant":"declaration","kind":256,"children":[{"name":"authentication","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The authentication scheme to use when accessing the Maven repository."}]},"type":{"type":"union","types":[{"type":"literal","value":"basic"},{"type":"literal","value":"digest"},{"type":"literal","value":"header"}]}},{"name":"credentials","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The credentials to use when accessing the Maven repository.\nMay be of type PasswordCredentials, HttpHeaderCredentials, or AWSCredentials."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"the authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information."}]}]},"type":{"type":"reference","name":"AndroidMavenRepositoryCredentials","package":"expo-build-properties"}},{"name":"url","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The URL of the Maven repository."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"default","variant":"reference","kind":4194304},{"name":"ExtraIosPodDependency","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing extra CocoaPods dependency."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Podfile syntax reference](https://guides.cocoapods.org/syntax/podfile.html#pod)"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"branch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git branch to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"commit","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git commit to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"configurations","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Build configurations for which the pod should be installed."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['Debug', 'Release']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"git","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Use the bleeding edge version of a Pod."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n{ \"name\": \"AFNetworking\", \"git\": \"https://github.com/gowalla/AFNetworking.git\", \"tag\": \"0.7.0\" }\n```"},{"kind":"text","text":"\n\nThis acts like to add this pod dependency statement:\n"},{"kind":"code","text":"```\npod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modular_headers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether this pod should use modular headers."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"name","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Name of the pod."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"path","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom local filesystem path to add the dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~/Documents/AFNetworking\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"podspec","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom podspec path."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```https://example.com/JSONKit.podspec```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"source","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom source to search for this dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\nhttps://github.com/CocoaPods/Specs.git\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"tag","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git tag to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"testspecs","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Test specs can be optionally included via the :testspecs option. By default, none of a Pod's test specs are included."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['UnitTests', 'SomeOtherTests']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"version","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Version of the pod.\nCocoaPods supports various [versioning options](https://guides.cocoapods.org/using/the-podfile.html#pod)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~> 0.1.2\n```"}]}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing base build properties configuration."}]},"children":[{"name":"android","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroid","package":"expo-build-properties"}},{"name":"ios","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","name":"PluginConfigTypeIos","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeAndroid","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"buildToolsVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`buildToolsVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"compileSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`compileSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"enableProguardInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable [Proguard or R8](https://developer.android.com/studio/build/shrink-code) in release builds to obfuscate Java code and reduce app size."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"enableShrinkResourcesInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`shrinkResources`"},{"kind":"text","text":"](https://developer.android.com/studio/build/shrink-code#shrink-resources) in release builds to remove unused resources from the app.\nThis property should be used in combination with "},{"kind":"code","text":"`enableProguardInReleaseBuilds`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"extraMavenRepos","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra maven repositories to all gradle projects.\n\n\nTakes an array of objects or strings.\nStrings are passed as the "},{"kind":"code","text":"`url`"},{"kind":"text","text":" property of the object with no credentials or authentication scheme.\n\nThis adds the following code to **android/build.gradle**:\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n }\n}\n```"},{"kind":"text","text":"\n\nBy using an "},{"kind":"code","text":"`AndroidMavenRepository`"},{"kind":"text","text":" object, you can specify credentials and an authentication scheme.\n\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n credentials {\n username = \"bar\"\n password = \"baz\"\n }\n authentication {\n basic(BasicAuthentication)\n }\n }\n }\n}\n```"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven)"}]},{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" not the config-plugins inside "},{"kind":"code","text":"`expo-build-properties`"}]}]},"type":{"type":"array","elementType":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"AndroidMavenRepository","package":"expo-build-properties"}]}}},{"name":"extraProguardRules","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Append custom [Proguard rules](https://www.guardsquare.com/manual/configuration/usage) to **android/app/proguard-rules.pro**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"kotlinVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the Kotlin version used when building the app."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"manifestQueries","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies the set of other apps that an app intends to interact with. These other apps are specified by package name,\nby intent signature, or by provider authority."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/queries-element)"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueries","package":"expo-build-properties"}},{"name":"minSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`minSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for Android platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"packagingOptions","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidPackagingOptions","package":"expo-build-properties"}},{"name":"targetSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`targetSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"useLegacyPackaging","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Instructs the Android Gradle plugin to compress native libraries in the APK using the legacy packaging system."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/build/releases/past-releases/agp-4-2-0-release-notes#compress-native-libs-dsl)"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"usesCleartextTraffic","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Indicates whether the app intends to use cleartext network traffic."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic)"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"PluginConfigTypeAndroidPackagingOptions","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"doNotStrip","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should not be stripped of debug symbols."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"exclude","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should be excluded from being packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"merge","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where all occurrences are concatenated and packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"pickFirst","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where only the first occurrence is packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueries","variant":"declaration","kind":256,"children":[{"name":"intent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies an intent filter signature. Your app can discover other apps that have matching elements.\nThese intents have restrictions compared to typical intent filter signatures."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/training/package-visibility/declaring#intent-filter-signature) for details"}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"PluginConfigTypeAndroidQueriesIntent","package":"expo-build-properties"}}},{"name":"package","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Specifies a single app that your app intends to access. This other app might integrate with your app, or your app might use services that the other app provides."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"provider","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies one or more content provider authorities. Your app can discover other apps whose content providers use the specified authorities.\nThere are some restrictions on the options that you can include in this element, compared to a typical manifest element. You may only specify the android:authorities attribute."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueriesData","variant":"declaration","kind":256,"children":[{"name":"host","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI authority host that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"mimeType","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a MIME type that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"scheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI scheme that is handled"}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigTypeAndroidQueriesIntent","variant":"declaration","kind":256,"children":[{"name":"action","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string naming the action to perform. Usually one of the platform-defined values, such as ACTION_SEND or ACTION_VIEW"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"category","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Provides an additional way to characterize the activity handling the intent,\nusually related to the user gesture or location from which it's started."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}},{"name":"data","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A description of the data associated with the intent."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueriesData","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeIos","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"deploymentTarget","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default iOS \"Deployment Target\" version in the following projects:\n - in CocoaPods projects,\n - "},{"kind":"code","text":"`PBXNativeTarget`"},{"kind":"text","text":" with \"com.apple.product-type.application\" "},{"kind":"code","text":"`productType`"},{"kind":"text","text":" in the app project."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"extraPods","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra CocoaPods dependencies for all targets.\n\nThis acts like to add the following code to **ios/Podfile**:\n"},{"kind":"code","text":"```\npod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'\n# e.g.\npod 'Protobuf', '~> 3.14.0'\n```"}],"blockTags":[{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" but not the config-plugins inside expo-build-properties."}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"ExtraIosPodDependency","package":"expo-build-properties"}}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for iOS platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"useFrameworks","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`use_frameworks!`"},{"kind":"text","text":"](https://guides.cocoapods.org/syntax/podfile.html#use_frameworks_bang)\nin "},{"kind":"code","text":"`Podfile`"},{"kind":"text","text":" to use frameworks instead of static libraries for Pods."}]},"type":{"type":"union","types":[{"type":"literal","value":"static"},{"type":"literal","value":"dynamic"}]}}]},{"name":"withBuildProperties","variant":"declaration","kind":64,"signatures":[{"name":"withBuildProperties","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Config plugin allowing customizing native Android and iOS build properties for managed apps."}]},"parameters":[{"name":"config","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Expo config for application."}]},"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}},{"name":"props","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Configuration for the build properties plugin."}]},"type":{"type":"reference","name":"PluginConfigType","package":"expo-build-properties"}}],"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}}]}],"packageName":"expo-build-properties"} \ No newline at end of file +{"name":"expo-build-properties","variant":"project","kind":1,"children":[{"name":"AndroidMavenRepository","variant":"declaration","kind":256,"children":[{"name":"authentication","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The authentication scheme to use when accessing the Maven repository."}]},"type":{"type":"union","types":[{"type":"literal","value":"basic"},{"type":"literal","value":"digest"},{"type":"literal","value":"header"}]}},{"name":"credentials","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The credentials to use when accessing the Maven repository.\nMay be of type PasswordCredentials, HttpHeaderCredentials, or AWSCredentials."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"the authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information."}]}]},"type":{"type":"reference","name":"AndroidMavenRepositoryCredentials","package":"expo-build-properties"}},{"name":"url","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The URL of the Maven repository."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"default","variant":"reference","kind":4194304},{"name":"ExtraIosPodDependency","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing extra CocoaPods dependency."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Podfile syntax reference](https://guides.cocoapods.org/syntax/podfile.html#pod)"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"branch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git branch to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"commit","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git commit to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"configurations","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Build configurations for which the pod should be installed."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['Debug', 'Release']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"git","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Use the bleeding edge version of a Pod."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n{ \"name\": \"AFNetworking\", \"git\": \"https://github.com/gowalla/AFNetworking.git\", \"tag\": \"0.7.0\" }\n```"},{"kind":"text","text":"\n\nThis acts like to add this pod dependency statement:\n"},{"kind":"code","text":"```\npod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modular_headers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether this pod should use modular headers."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"name","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Name of the pod."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"path","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom local filesystem path to add the dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~/Documents/AFNetworking\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"podspec","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom podspec path."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```https://example.com/JSONKit.podspec```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"source","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom source to search for this dependency."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\nhttps://github.com/CocoaPods/Specs.git\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"tag","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The git tag to fetch. See the "},{"kind":"inline-tag","tag":"@link","text":"git","tsLinkText":""},{"kind":"text","text":" property for more information."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"testspecs","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Test specs can be optionally included via the :testspecs option. By default, none of a Pod's test specs are included."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n['UnitTests', 'SomeOtherTests']\n```"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"version","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Version of the pod.\nCocoaPods supports various [versioning options](https://guides.cocoapods.org/using/the-podfile.html#pod)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```\n~> 0.1.2\n```"}]}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigType","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing base build properties configuration."}]},"children":[{"name":"android","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroid","package":"expo-build-properties"}},{"name":"ios","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"type":{"type":"reference","name":"PluginConfigTypeIos","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeAndroid","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"buildToolsVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`buildToolsVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"compileSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`compileSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"enableProguardInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable [Proguard or R8](https://developer.android.com/studio/build/shrink-code) in release builds to obfuscate Java code and reduce app size."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"enableShrinkResourcesInReleaseBuilds","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`shrinkResources`"},{"kind":"text","text":"](https://developer.android.com/studio/build/shrink-code#shrink-resources) in release builds to remove unused resources from the app.\nThis property should be used in combination with "},{"kind":"code","text":"`enableProguardInReleaseBuilds`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"extraMavenRepos","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra maven repositories to all gradle projects.\n\n\nTakes an array of objects or strings.\nStrings are passed as the "},{"kind":"code","text":"`url`"},{"kind":"text","text":" property of the object with no credentials or authentication scheme.\n\nThis adds the following code to **android/build.gradle**:\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n }\n}\n```"},{"kind":"text","text":"\n\nBy using an "},{"kind":"code","text":"`AndroidMavenRepository`"},{"kind":"text","text":" object, you can specify credentials and an authentication scheme.\n\n"},{"kind":"code","text":"```groovy\nallprojects {\n repositories {\n maven {\n url \"https://foo.com/maven-releases\"\n credentials {\n username = \"bar\"\n password = \"baz\"\n }\n authentication {\n basic(BasicAuthentication)\n }\n }\n }\n}\n```"}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven)"}]},{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" not the config-plugins inside "},{"kind":"code","text":"`expo-build-properties`"}]}]},"type":{"type":"array","elementType":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"AndroidMavenRepository","package":"expo-build-properties"}]}}},{"name":"extraProguardRules","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Append custom [Proguard rules](https://www.guardsquare.com/manual/configuration/usage) to **android/app/proguard-rules.pro**."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"kotlinVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the Kotlin version used when building the app."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"manifestQueries","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies the set of other apps that an app intends to interact with. These other apps are specified by package name,\nby intent signature, or by provider authority."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/queries-element)"}]}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueries","package":"expo-build-properties"}},{"name":"minSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`minSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for Android platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"packagingOptions","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidPackagingOptions","package":"expo-build-properties"}},{"name":"targetSdkVersion","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default "},{"kind":"code","text":"`targetSdkVersion`"},{"kind":"text","text":" version number in **build.gradle**."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"useLegacyPackaging","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Instructs the Android Gradle plugin to compress native libraries in the APK using the legacy packaging system."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/build/releases/past-releases/agp-4-2-0-release-notes#compress-native-libs-dsl)"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"usesCleartextTraffic","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Indicates whether the app intends to use cleartext network traffic."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]},{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic)"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"PluginConfigTypeAndroidPackagingOptions","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions)."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"doNotStrip","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should not be stripped of debug symbols."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"exclude","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries that should be excluded from being packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"merge","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where all occurrences are concatenated and packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"pickFirst","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Array of patterns for native libraries where only the first occurrence is packaged in the APK."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueries","variant":"declaration","kind":256,"children":[{"name":"intent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies an intent filter signature. Your app can discover other apps that have matching elements.\nThese intents have restrictions compared to typical intent filter signatures."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"[Android documentation](https://developer.android.com/training/package-visibility/declaring#intent-filter-signature) for details"}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"PluginConfigTypeAndroidQueriesIntent","package":"expo-build-properties"}}},{"name":"package","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Specifies a single app that your app intends to access. This other app might integrate with your app, or your app might use services that the other app provides."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"provider","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specifies one or more content provider authorities. Your app can discover other apps whose content providers use the specified authorities.\nThere are some restrictions on the options that you can include in this element, compared to a typical manifest element. You may only specify the android:authorities attribute."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}]},{"name":"PluginConfigTypeAndroidQueriesData","variant":"declaration","kind":256,"children":[{"name":"host","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI authority host that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"mimeType","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a MIME type that is handled"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"scheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Specify a URI scheme that is handled"}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PluginConfigTypeAndroidQueriesIntent","variant":"declaration","kind":256,"children":[{"name":"action","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string naming the action to perform. Usually one of the platform-defined values, such as ACTION_SEND or ACTION_VIEW"}]},"type":{"type":"intrinsic","name":"string"}},{"name":"category","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Provides an additional way to characterize the activity handling the intent,\nusually related to the user gesture or location from which it's started."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}},{"name":"data","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A description of the data associated with the intent."}]},"type":{"type":"reference","name":"PluginConfigTypeAndroidQueriesData","package":"expo-build-properties"}}]},{"name":"PluginConfigTypeIos","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Interface representing available configuration for iOS native build properties."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios"}]}]},"children":[{"name":"ccacheEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable C++ compiler cache for iOS builds.\n\nThis speeds up compiling C++ code by caching the results of previous compilations."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"text","text":"https://reactnative.dev/docs/build-speed#local-caches"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"text","text":"https://ccache.dev/"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"deploymentTarget","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Override the default iOS \"Deployment Target\" version in the following projects:\n - in CocoaPods projects,\n - "},{"kind":"code","text":"`PBXNativeTarget`"},{"kind":"text","text":" with \"com.apple.product-type.application\" "},{"kind":"code","text":"`productType`"},{"kind":"text","text":" in the app project."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"extraPods","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Add extra CocoaPods dependencies for all targets.\n\nThis acts like to add the following code to **ios/Podfile**:\n"},{"kind":"code","text":"```\npod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'\n# e.g.\npod 'Protobuf', '~> 3.14.0'\n```"}],"blockTags":[{"tag":"@hide","content":[{"kind":"text","text":"For the implementation details,\nthis property is actually handled by "},{"kind":"code","text":"`expo-modules-autolinking`"},{"kind":"text","text":" but not the config-plugins inside expo-build-properties."}]}]},"type":{"type":"array","elementType":{"type":"reference","name":"ExtraIosPodDependency","package":"expo-build-properties"}}},{"name":"networkInspector","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable the Network Inspector."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"newArchEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable React Native new architecture for iOS platform."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"privacyManifestAggregationEnabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable aggregation of Privacy Manifests ("},{"kind":"code","text":"`PrivacyInfo.xcprivacy`"},{"kind":"text","text":") from\nCocoaPods resource bundles. If enabled, the manifests will be merged into a\nsingle file. If not enabled, developers will need to manually aggregate them."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":" - "},{"kind":"text","text":"https://docs.expo.dev/guides/apple-privacy/"},{"kind":"text","text":"\n"},{"kind":"text","text":" - "},{"kind":"text","text":"https://developer.apple.com/documentation/bundleresources/privacy_manifest_files"},{"kind":"text","text":"\n"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"useFrameworks","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Enable ["},{"kind":"code","text":"`use_frameworks!`"},{"kind":"text","text":"](https://guides.cocoapods.org/syntax/podfile.html#use_frameworks_bang)\nin "},{"kind":"code","text":"`Podfile`"},{"kind":"text","text":" to use frameworks instead of static libraries for Pods."}]},"type":{"type":"union","types":[{"type":"literal","value":"static"},{"type":"literal","value":"dynamic"}]}}]},{"name":"withBuildProperties","variant":"declaration","kind":64,"signatures":[{"name":"withBuildProperties","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Config plugin allowing customizing native Android and iOS build properties for managed apps."}]},"parameters":[{"name":"config","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Expo config for application."}]},"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}},{"name":"props","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Configuration for the build properties plugin."}]},"type":{"type":"reference","name":"PluginConfigType","package":"expo-build-properties"}}],"type":{"type":"reference","name":"ExpoConfig","package":"@expo/config-types"}}]}],"packageName":"expo-build-properties"} \ No newline at end of file diff --git a/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap b/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap index 280ae0a1e8916..3c606e1380174 100644 --- a/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap +++ b/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap @@ -250,7 +250,11 @@ target 'HelloWorld' do react_native_post_install( installer, config[:reactNativePath], - :mac_catalyst_enabled => false + :mac_catalyst_enabled => false, + :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true' + # Temporarily disable privacy file aggregation by default, until React + # Native 0.74.2 is released with fixes. + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] == 'true', ) # This is necessary for Xcode 14, because it signs resource bundles by default diff --git a/packages/expo-build-properties/CHANGELOG.md b/packages/expo-build-properties/CHANGELOG.md index 78d27456a19fd..b4464828fea01 100644 --- a/packages/expo-build-properties/CHANGELOG.md +++ b/packages/expo-build-properties/CHANGELOG.md @@ -7,6 +7,7 @@ ### 🎉 New features - Add `ios.ccacheEnabled` option to enable the C++ compiler cache for iOS builds. ([#28638](https://github.com/expo/expo/pull/28638) by [@byCedric](https://github.com/byCedric)) +- Add `ios.privacyManifestAggregationEnabled` option to enable/disable privacy manifest aggregation. ([#28646](https://github.com/expo/expo/pull/28646) by [@brentvatne](https://github.com/brentvatne)). ### 🐛 Bug fixes diff --git a/packages/expo-build-properties/build/pluginConfig.d.ts b/packages/expo-build-properties/build/pluginConfig.d.ts index a6dc89e4f52ed..5b831e211f77e 100644 --- a/packages/expo-build-properties/build/pluginConfig.d.ts +++ b/packages/expo-build-properties/build/pluginConfig.d.ts @@ -211,6 +211,15 @@ export interface PluginConfigTypeIos { * @see https://ccache.dev/ */ ccacheEnabled?: boolean; + /** + * Enable aggregation of Privacy Manifests (`PrivacyInfo.xcprivacy`) from + * CocoaPods resource bundles. If enabled, the manifests will be merged into a + * single file. If not enabled, developers will need to manually aggregate them. + * + * @see https://docs.expo.dev/guides/apple-privacy/ + * @see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files + */ + privacyManifestAggregationEnabled?: boolean; } /** * Interface representing extra CocoaPods dependency. diff --git a/packages/expo-build-properties/build/pluginConfig.js b/packages/expo-build-properties/build/pluginConfig.js index ad515f1b2d850..bc71eaf93591f 100644 --- a/packages/expo-build-properties/build/pluginConfig.js +++ b/packages/expo-build-properties/build/pluginConfig.js @@ -146,6 +146,7 @@ const schema = { useFrameworks: { type: 'string', enum: ['static', 'dynamic'], nullable: true }, networkInspector: { type: 'boolean', nullable: true }, ccacheEnabled: { type: 'boolean', nullable: true }, + privacyManifestAggregationEnabled: { type: 'boolean', nullable: true }, extraPods: { type: 'array', items: { diff --git a/packages/expo-build-properties/src/__tests__/withBuildProperties-test.ts b/packages/expo-build-properties/src/__tests__/withBuildProperties-test.ts index b5b39cc5e7a89..dbcf4aee0d576 100644 --- a/packages/expo-build-properties/src/__tests__/withBuildProperties-test.ts +++ b/packages/expo-build-properties/src/__tests__/withBuildProperties-test.ts @@ -157,12 +157,12 @@ describe(withBuildProperties, () => { }).rejects.toThrow(); }); - it('generates the apple.ccache property', async () => { + it('generates the apple.ccacheEnabled property', async () => { const { modResults: iosModResultsEnabled } = await compileMockModWithResultsAsync( {}, { plugin: withBuildProperties, - pluginProps: { ios: { ccache: true } }, + pluginProps: { ios: { ccacheEnabled: true } }, mod: withPodfileProperties, modResults: {}, } @@ -171,4 +171,19 @@ describe(withBuildProperties, () => { 'apple.ccacheEnabled': 'true', }); }); + + it('generates the apple.privacyManifestAggregationEnabled property', async () => { + const { modResults: iosModResultsEnabled } = await compileMockModWithResultsAsync( + {}, + { + plugin: withBuildProperties, + pluginProps: { ios: { privacyManifestAggregationEnabled: true } }, + mod: withPodfileProperties, + modResults: {}, + } + ); + expect(iosModResultsEnabled).toMatchObject({ + 'apple.privacyManifestAggregationEnabled': 'true', + }); + }); }); diff --git a/packages/expo-build-properties/src/ios.ts b/packages/expo-build-properties/src/ios.ts index 79ee98ace94b6..300b76ff2a597 100644 --- a/packages/expo-build-properties/src/ios.ts +++ b/packages/expo-build-properties/src/ios.ts @@ -26,6 +26,11 @@ export const withIosBuildProperties = createBuildPodfilePropsConfigPlugin (config.ios?.ccacheEnabled ?? false).toString(), }, + { + propName: 'apple.privacyManifestAggregationEnabled', + propValueGetter: (config) => + (config.ios?.privacyManifestAggregationEnabled ?? false).toString(), + }, ], 'withIosBuildProperties' ); diff --git a/packages/expo-build-properties/src/pluginConfig.ts b/packages/expo-build-properties/src/pluginConfig.ts index f6b76a057828b..8e12fedbb190f 100644 --- a/packages/expo-build-properties/src/pluginConfig.ts +++ b/packages/expo-build-properties/src/pluginConfig.ts @@ -246,6 +246,16 @@ export interface PluginConfigTypeIos { * @see https://ccache.dev/ */ ccacheEnabled?: boolean; + + /** + * Enable aggregation of Privacy Manifests (`PrivacyInfo.xcprivacy`) from + * CocoaPods resource bundles. If enabled, the manifests will be merged into a + * single file. If not enabled, developers will need to manually aggregate them. + * + * @see https://docs.expo.dev/guides/apple-privacy/ + * @see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files + */ + privacyManifestAggregationEnabled?: boolean; } /** @@ -543,6 +553,7 @@ const schema: JSONSchemaType = { networkInspector: { type: 'boolean', nullable: true }, ccacheEnabled: { type: 'boolean', nullable: true }, + privacyManifestAggregationEnabled: { type: 'boolean', nullable: true }, extraPods: { type: 'array', diff --git a/packages/expo-localization/plugin/build/withExpoLocalization.d.ts b/packages/expo-localization/plugin/build/withExpoLocalization.d.ts deleted file mode 100644 index b9fe212074e7b..0000000000000 --- a/packages/expo-localization/plugin/build/withExpoLocalization.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ExpoConfig } from '@expo/config-types'; -type ConfigPluginProps = { - supportsRTL?: boolean; - forcesRTL?: boolean; - allowDynamicLocaleChangesAndroid?: boolean; -}; -declare function withExpoLocalization(config: ExpoConfig, data?: ConfigPluginProps): ExpoConfig; -export default withExpoLocalization; diff --git a/packages/expo-localization/plugin/build/withExpoLocalization.js b/packages/expo-localization/plugin/build/withExpoLocalization.js deleted file mode 100644 index 2e08d1dbbe888..0000000000000 --- a/packages/expo-localization/plugin/build/withExpoLocalization.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const Manifest_1 = require("@expo/config-plugins/build/android/Manifest"); -const config_plugins_1 = require("expo/config-plugins"); -function withExpoLocalizationIos(config, data) { - const mergedConfig = { ...config.extra, ...data }; - if (mergedConfig?.supportsRTL == null && mergedConfig?.forcesRTL == null) - return config; - if (!config.ios) - config.ios = {}; - if (!config.ios.infoPlist) - config.ios.infoPlist = {}; - if (mergedConfig?.supportsRTL != null) { - config.ios.infoPlist.ExpoLocalization_supportsRTL = mergedConfig?.supportsRTL; - } - if (mergedConfig?.forcesRTL != null) { - config.ios.infoPlist.ExpoLocalization_forcesRTL = mergedConfig?.forcesRTL; - } - return config; -} -function withExpoLocalizationAndroid(config, data) { - if (data.allowDynamicLocaleChangesAndroid) { - config = (0, config_plugins_1.withAndroidManifest)(config, (config) => { - const mainActivity = (0, Manifest_1.getMainActivityOrThrow)(config.modResults); - if (!mainActivity.$['android:configChanges']?.includes('locale')) { - mainActivity.$['android:configChanges'] += '|locale'; - } - if (!mainActivity.$['android:configChanges']?.includes('layoutDirection')) { - mainActivity.$['android:configChanges'] += '|layoutDirection'; - } - return config; - }); - } - return (0, config_plugins_1.withStringsXml)(config, (config) => { - const mergedConfig = { ...config.extra, ...data }; - if (mergedConfig?.supportsRTL != null) { - config.modResults = config_plugins_1.AndroidConfig.Strings.setStringItem([ - { - $: { name: 'ExpoLocalization_supportsRTL', translatable: 'false' }, - _: String(mergedConfig?.supportsRTL ?? 'unset'), - }, - ], config.modResults); - } - if (mergedConfig?.forcesRTL != null) { - config.modResults = config_plugins_1.AndroidConfig.Strings.setStringItem([ - { - $: { name: 'ExpoLocalization_forcesRTL', translatable: 'false' }, - _: String(mergedConfig?.forcesRTL ?? 'unset'), - }, - ], config.modResults); - } - return config; - }); -} -function withExpoLocalization(config, data = { - allowDynamicLocaleChangesAndroid: true, -}) { - return (0, config_plugins_1.withPlugins)(config, [ - [withExpoLocalizationIos, data], - [withExpoLocalizationAndroid, data], - ]); -} -exports.default = withExpoLocalization; diff --git a/templates/expo-template-bare-minimum/ios/Podfile b/templates/expo-template-bare-minimum/ios/Podfile index cb4496c40bff0..beb2c7dcaa952 100644 --- a/templates/expo-template-bare-minimum/ios/Podfile +++ b/templates/expo-template-bare-minimum/ios/Podfile @@ -33,6 +33,9 @@ target 'HelloWorld' do config[:reactNativePath], :mac_catalyst_enabled => false, :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true' + # Temporarily disable privacy file aggregation by default, until React + # Native 0.74.2 is released with fixes. + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] == 'true', ) # This is necessary for Xcode 14, because it signs resource bundles by default