UNPKG

react-native-quick-crypto

Version:

A fast implementation of Node's `crypto` module written in C/C++ JSI

46 lines (42 loc) 1.81 kB
"use strict"; import { withBuildProperties } from 'expo-build-properties'; import { withDangerousMod } from 'expo/config-plugins'; import fs from 'fs'; import path from 'path'; /** * Workaround for some jank XCode releases that break React Native native modules * * see: https://github.com/mrousavy/nitro/issues/422#issuecomment-2545988256 */ export const withXCode = config => { // Use expo-build-properties to bump iOS deployment target config = withBuildProperties(config, { ios: { deploymentTarget: '16.1' } }); // Patch the generated Podfile fallback to ensure platform is always 16.1 config = withDangerousMod(config, ['ios', modConfig => { const podfilePath = path.join(modConfig.modRequest.platformProjectRoot, 'Podfile'); let contents = fs.readFileSync(podfilePath, 'utf-8'); // Check if the IPHONEOS_DEPLOYMENT_TARGET setting is already present // We search for the key being assigned, e.g., config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = const deploymentTargetSettingExists = /\.build_settings\s*\[\s*['"]IPHONEOS_DEPLOYMENT_TARGET['"]\s*\]\s*=/.test(contents); if (!deploymentTargetSettingExists) { // IPHONEOS_DEPLOYMENT_TARGET setting not found, proceed to add it. contents = contents.replace(/(post_install\s+do\s+\|installer\|[\s\S]*?)(\r?\n\s\send\s*)$/m, `$1 # Expo Build Properties: force deployment target # https://github.com/mrousavy/nitro/issues/422#issuecomment-2545988256 installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.1' end end $2`); } fs.writeFileSync(podfilePath, contents); return modConfig; }]); return config; }; //# sourceMappingURL=withXCode.js.map