1require_relative './podfile_helpers.rb' 2require_relative '../react-native-lab/react-native/scripts/react_native_pods' 3require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") 4 5install! 'cocoapods', 6 :generate_multiple_pod_projects => true, 7 :incremental_installation => true 8platform :ios, '13.0' 9inhibit_all_warnings! 10 11# Disable expo-updates auto create manifest in podspec script_phase 12$expo_updates_create_manifest = false 13 14abstract_target 'Expo Go' do 15 # Expo Client dependencies 16 pod 'Amplitude' 17 pod 'CocoaLumberjack', '~> 3.5.3' 18 pod 'GoogleMaps', '~> 7.1' 19 pod 'Google-Maps-iOS-Utils', '~> 4.1.0' 20 pod 'JKBigInteger', :podspec => 'vendored/common/JKBigInteger.podspec.json' 21 pod 'MBProgressHUD', '~> 1.2.0' 22 23 # Required by latest firebase versions 24 # See https://github.com/invertase/react-native-firebase/issues/6332#issuecomment-1189734581 25 pod 'FirebaseCore', :modular_headers => true 26 pod 'GoogleUtilities', :modular_headers => true 27 28 # Expo modules 29 use_expo_modules!({ 30 exclude: [ 31 'expo-module-template', 32 'expo-in-app-purchases', 33 'expo-dev-menu', 34 'expo-dev-menu-interface', 35 'expo-dev-launcher', 36 'expo-dev-client', 37 'expo-maps' 38 ], 39 includeTests: true, 40 flags: { 41 :inhibit_warnings => false 42 } 43 }) 44 45 # Install vendored pods. 46 use_pods! 'vendored/unversioned/**/*.podspec.json' 47 48 # Unversioned React Native 49 use_react_native!( 50 :path => '../react-native-lab/react-native', 51 :hermes_enabled => true, 52 :fabric_enabled => false, 53 ) 54 setup_jsc!( 55 :react_native_path => '../react-native-lab/react-native', 56 :fabric_enabled => false, 57 ) 58 59 # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and 60 # RCT_ENABLE_PACKAGER_CONNECTION disabled 61 post_install do |installer| 62 # Workaround build error for Folly 63 __apply_Xcode_12_5_M1_post_install_workaround(installer) if installer.pods_project 64 65 # Disabled as of CocoaPods 1.8.0.beta1 since pods_project seems to be nil 66 # installer.pods_project.main_group.tab_width = '2'; 67 # installer.pods_project.main_group.indent_width = '2'; 68 69 installer.target_installation_results.pod_target_installation_results 70 .each do |pod_name, target_installation_result| 71 72 # Run postinstalls actions for versioned dependencies. 73 # These actions are specified in `versioned-react-native/ABI*/postinstalls.rb` files. 74 run_versioned_postinstalls!(pod_name, target_installation_result) 75 76 # This is necessary for Xcode 14 that by default signs resource bundles when building for the device. 77 target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 78 resource_bundle_target.build_configurations.each do |config| 79 config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 80 end 81 end 82 83 target_installation_result.native_target.build_configurations.each do |config| 84 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' 85 86 # Fix building failures on M1 87 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' 88 end 89 90 if pod_name == 'Branch' 91 target_installation_result.native_target.build_configurations.each do |config| 92 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)'] 93 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'BRANCH_EXCLUDE_IDFA_CODE=1' 94 end 95 end 96 97 if pod_name.end_with?('EXUpdates') 98 target_installation_result.native_target.build_configurations.each do |config| 99 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)'] 100 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'SUPPRESS_EXPO_UPDATES_SERVICE=1' 101 end 102 end 103 104 # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and 105 # RCT_ENABLE_PACKAGER_CONNECTION disabled 106 next unless pod_name.start_with?('React') 107 target_installation_result.native_target.build_configurations.each do |config| 108 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)'] 109 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV=1' 110 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_ENABLE_INSPECTOR=0' 111 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION=0' 112 end 113 end 114 end 115 116 # Target for development, contains only unversioned code 117 target 'Expo Go (unversioned)' do 118 end 119 120 # Release target additionally includes versioned SDKs 121 target 'Expo Go (versioned)' do 122 # Evaluate all files matching `versioned-react-native/ABI*/dependencies.rb` glob pattern 123 # and install ReactABIXX_0_0 pods with all versioned unimodules. 124 use_versioned_abis! 125 end 126 127 # Test targets 128 target 'ExponentIntegrationTests' do 129 inherit! :search_paths 130 end 131 132 target 'Tests' do 133 # `ExpoModulesTestCore` has implicit dependency to `React-Core` which has a resource bundle. 134 # To prevent CocoaPods generating new `React-Core` resource bundle and the strange `React-Core-60309c9c` target, 135 # this test target should inherit all properties from parents. 136 inherit! :complete 137 138 pod 'ExpoModulesTestCore', :path => "../packages/expo-modules-test-core/ios" 139 pod 'Nimble', :podspec => './Nimble.podspec' 140 end 141end 142