Open
Description
Issue
Describe your issue here
- Apple's App Check on enabled in a release app in Testflight (appAttestWithDeviceCheckFallback)
- The app is built for iOS / iPad
- The app os opened on MacOS through TestFlight in iPad-MacOS Compatibility Mode.
- App Check verification fails, and fails for a while
Javascript
if (['android', 'ios'].includes(Platform.OS)) {
const provider = instanceForAppCheck.newReactNativeFirebaseAppCheckProvider();
const isDebug =
BUILD_TYPE_NOW === PROJECT_BUILD_TYPE.DEBUG ||
BUILD_TYPE_NOW === PROJECT_BUILD_TYPE.E2E ||
__DEV__;
provider.configure({
android: isDebug
? {
provider: 'debug',
debugToken: ***,
}
: {
provider: 'playIntegrity',
},
apple: isDebug
? {
provider: 'debug',
debugToken: ***,
}
: {
provider: 'appAttestWithDeviceCheckFallback',
},
web: {
provider: 'reCaptchaV3',
siteKey: 'unknown',
},
});
(async () => {
try {
await initializeAppCheck(getApp(), { provider });
} catch (e) {
console.error(e);
}
})();
}
package.json
:
"@react-native-firebase/analytics": "22.2.0",
"@react-native-firebase/app": "22.2.0",
"@react-native-firebase/app-check": "22.2.0",
"@react-native-firebase/auth": "22.2.0",
"@react-native-firebase/crashlytics": "22.2.0",
"@react-native-firebase/firestore": "22.2.0",
"@react-native-firebase/functions": "22.2.0",
"@react-native-firebase/messaging": "22.2.0",
"@react-native-firebase/perf": "22.2.0",
"@react-native-firebase/remote-config": "22.2.0",
"@react-native-firebase/storage": "22.2.0",
"@react-native-firebase/vertexai": "22.2.0",
firebase.json
for react-native-firebase v6:
{
"react-native": {
"analytics_auto_collection_enabled": true,
"analytics_idfv_collection_enabled": true,
"messaging_android_notification_channel_id": "default-channel",
"app_check_token_auto_refresh": true,
"app_data_collection_default_enabled": true,
"crashlytics_auto_collection_enabled": true,
"crashlytics_debug_enabled": false,
"crashlytics_ndk_enabled": true,
"google_analytics_adid_collection_enabled": true,
"google_analytics_automatic_screen_reporting_enabled": true,
"google_analytics_registration_with_ad_network_enabled": true,
"perf_auto_collection_enabled": true,
"android_task_executor_maximum_pool_size": 16
}
}
iOS
ios/Podfile
:
- I'm not using Pods
- I'm using Pods and my Podfile looks like:
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
require 'json'
podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
ENV['RCT_NEW_ARCH_ENABLED'] = '0' if podfile_properties['newArchEnabled'] == 'false'
ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
# @generated begin with-on-device-measure - expo prebuild (DO NOT MODIFY) sync-6d1952a1f7b9ccb2d313cbd66659db4cdeae591f
$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true
# @generated end with-on-device-measure
platform :ios, podfile_properties['ios.deploymentTarget'] || '15.1'
install! 'cocoapods',
:deterministic_uuids => false
prepare_react_native_project!
target 'SnapDone' do
use_expo_modules!
if ENV['EXPO_USE_COMMUNITY_AUTOLINKING'] == '1'
config_command = ['node', '-e', "process.argv=['', '', 'config'];require('@react-native-community/cli').run()"];
else
config_command = [
'npx',
'expo-modules-autolinking',
'react-native-config',
'--json',
'--platform',
'ios'
]
end
config = use_native_modules!(config_command)
use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/..",
:privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false',
)
post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false,
:ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true',
)
# This is necessary for Xcode 14, because it signs resource bundles by default
# when building for devices.
installer.target_installation_results.pod_target_installation_results
.each do |pod_name, target_installation_result|
target_installation_result.resource_bundle_targets.each do |resource_bundle_target|
resource_bundle_target.build_configurations.each do |config|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
end
end
end
end
end
AppDelegate.m
:
// N/A
Android
Click To Expand
Have you converted to AndroidX?
- my application is an AndroidX application?
- I am using
android/gradle.settings
jetifier=true
for Android compatibility? - I am using the NPM package
jetifier
for react-native compatibility?
android/build.gradle
:
// N/A
android/app/build.gradle
:
// N/A
android/settings.gradle
:
// N/A
MainApplication.java
:
// N/A
AndroidManifest.xml
:
<!-- N/A -->
Environment
Click To Expand
react-native info
output:
OUTPUT GOES HERE
- Platform that you're experiencing the issue on:
- iOS
- Android
- iOS but have not tested behavior on Android
- Android but have not tested behavior on iOS
- Both
react-native-firebase
version you're using that has this issue:e.g. 5.4.3
Firebase
module(s) you're using that has the issue:e.g. Instance ID
- Are you using
TypeScript
?Y/N
&VERSION
- 👉 Check out
React Native Firebase
andInvertase
on Twitter for updates on the library.