141 lines
4.8 KiB
Ruby
141 lines
4.8 KiB
Ruby
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
|
|
|
|
|
|
# see https://github.com/zoontek/react-native-permissions?tab=readme-ov-file#ios
|
|
# require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
|
|
def node_require(script)
|
|
# Resolve script with node to allow for hoisting
|
|
require Pod::Executable.execute_command('node', ['-p',
|
|
"require.resolve(
|
|
'#{script}',
|
|
{paths: [process.argv[1]]},
|
|
)", __dir__]).strip
|
|
end
|
|
# Use it to require both react-native's and this package's scripts:
|
|
node_require('react-native/scripts/react_native_pods.rb')
|
|
node_require('react-native-permissions/scripts/setup.rb')
|
|
|
|
require 'json'
|
|
podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
|
|
|
|
ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'
|
|
ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
|
|
|
|
use_autolinking_method_symbol = ('use' + '_native' + '_modules!').to_sym
|
|
origin_autolinking_method = self.method(use_autolinking_method_symbol)
|
|
self.define_singleton_method(use_autolinking_method_symbol) do |*args|
|
|
if ENV['EXPO_UNSTABLE_CORE_AUTOLINKING'] == '1'
|
|
Pod::UI.puts('Using expo-modules-autolinking as core autolinking source'.green)
|
|
config_command = [
|
|
'node',
|
|
'--no-warnings',
|
|
'--eval',
|
|
'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))',
|
|
'react-native-config',
|
|
'--json',
|
|
'--platform',
|
|
'ios'
|
|
]
|
|
origin_autolinking_method.call(config_command)
|
|
else
|
|
origin_autolinking_method.call()
|
|
end
|
|
end
|
|
|
|
platform :ios, '13.4'
|
|
install! 'cocoapods',
|
|
:deterministic_uuids => false
|
|
|
|
prepare_react_native_project!
|
|
|
|
# ⬇️ uncomment the permissions you need
|
|
setup_permissions([
|
|
# 'AppTrackingTransparency',
|
|
# 'Bluetooth',
|
|
# 'Calendars',
|
|
# 'CalendarsWriteOnly',
|
|
'Camera',
|
|
'Contacts',
|
|
# 'FaceID',
|
|
'LocationAccuracy',
|
|
'LocationAlways',
|
|
'LocationWhenInUse',
|
|
# 'MediaLibrary',
|
|
'Microphone',
|
|
# 'Motion',
|
|
'Notifications',
|
|
'PhotoLibrary',
|
|
# 'PhotoLibraryAddOnly',
|
|
# 'Reminders',
|
|
# 'Siri',
|
|
# 'SpeechRecognition',
|
|
# 'StoreKit',
|
|
])
|
|
|
|
target 'AlerteSecours' do
|
|
use_expo_modules!
|
|
config = use_native_modules!
|
|
|
|
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']
|
|
|
|
# see https://rnfirebase.io/#configure-react-native-firebase-modules
|
|
use_frameworks! :linkage => :static
|
|
$RNFirebaseAsStaticFramework = true
|
|
|
|
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|
|
|
# @generated begin @maplibre/maplibre-react-native-post_installer - expo prebuild (DO NOT MODIFY) sync-72b8976cc2231a4441a5b54389fb6e10bd42a1be
|
|
$RCTMLN.post_install(installer)
|
|
# @generated end @maplibre/maplibre-react-native-post_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
|
|
|
|
# Set deployment target for all pods
|
|
installer.pods_project.targets.each do |target|
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.4'
|
|
end
|
|
end
|
|
|
|
installer.pods_project.build_configurations.each do |config|
|
|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
|
|
end
|
|
end
|
|
|
|
post_integrate do |installer|
|
|
begin
|
|
expo_patch_react_imports!(installer)
|
|
rescue => e
|
|
Pod::UI.warn e
|
|
end
|
|
end
|
|
end
|
|
|
|
# pod 'Firebase', :modular_headers => true
|
|
# pod 'FirebaseCoreInternal', :modular_headers => true
|
|
# pod 'GoogleUtilities', :modular_headers => true
|
|
# pod 'FirebaseCore', :modular_headers => true
|
|
# pod 'FirebaseMessaging', :modular_headers => true
|