1install! 'cocoapods', 2 :generate_multiple_pod_projects => true, 3 :incremental_installation => true, 4 :deterministic_uuids => false 5source 'https://cdn.cocoapods.org/' 6platform :ios, '13.0' 7inhibit_all_warnings! 8 9# Import the auto-linking packages 10require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") 11require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules") 12require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") 13 14require 'json' 15podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {} 16 17abstract_target 'BareExpoMain' do 18 pod 'expo-dev-menu', path: '../../../packages/expo-dev-menu', :testspecs => ['Tests', 'UITests'] 19 20 use_expo_modules!( 21 tests: [ 22 'expo-dev-menu-interface', 23 'expo-dev-launcher', 24 ], 25 ) 26 27 # Flags change depending on the env values. 28 flags = get_default_flags() 29 30 config = use_native_modules! 31 32 # Fix Google Sign-in and Flipper 33 post_install do |installer| 34 # `installer.pods_project` might be nil for `incremental_installation: true` and no new project generated 35 if installer.pods_project 36 react_native_post_install( 37 installer, 38 # Set `mac_catalyst_enabled` to `true` in order to apply patches 39 # necessary for Mac Catalyst builds 40 :mac_catalyst_enabled => false 41 ) 42 __apply_Xcode_12_5_M1_post_install_workaround(installer) 43 end 44 45 installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| 46 target_installation_result.native_target.build_configurations.each do |config| 47 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' 48 end 49 end 50 51 # This is necessary for Xcode 14, because it signs resource bundles by default 52 # when building for devices. 53 installer.target_installation_results.pod_target_installation_results 54 .each do |pod_name, target_installation_result| 55 target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 56 resource_bundle_target.build_configurations.each do |config| 57 config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 58 end 59 end 60 end 61 end 62 63 post_integrate do |installer| 64 begin 65 expo_patch_react_imports!(installer) 66 rescue => e 67 Pod::UI.warn e 68 end 69 end 70 71 target 'BareExpo' do 72 use_react_native!( 73 :path => config[:reactNativePath], 74 :hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes', 75 :fabric_enabled => flags[:fabric_enabled], 76 # An absolute path to your application root. 77 :app_path => "#{Pod::Config.instance.installation_root}/..", 78 # 79 # Uncomment to opt-in to using Flipper 80 # Note that if you have use_frameworks! enabled, Flipper will not work 81 # :flipper_configuration => !ENV['CI'] ? FlipperConfiguration.enabled : FlipperConfiguration.disabled, 82 ) 83 end 84 85 target 'BareExpoDetox' do 86 use_react_native!( 87 :path => config[:reactNativePath], 88 :hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes', 89 :fabric_enabled => flags[:fabric_enabled], 90 # An absolute path to your application root. 91 :app_path => "#{Pod::Config.instance.installation_root}/..", 92 :flipper_configuration => FlipperConfiguration.disabled, 93 ) 94 end 95 96 target 'BareExpoTests' do 97 inherit! :search_paths 98 99 pod 'Nimble', :podspec => './../../../ios/Nimble.podspec' 100 end 101end 102