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, '12.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', '~> 3.6' 19 pod 'Google-Maps-iOS-Utils', '~> 2.1.0' 20 pod 'JKBigInteger', :podspec => 'vendored/common/JKBigInteger.podspec.json' 21 pod 'MBProgressHUD', '~> 1.2.0' 22 23 # Expo modules 24 use_expo_modules!({ 25 exclude: [ 26 'expo-module-template', 27 'expo-in-app-purchases', 28 'expo-dev-menu', 29 'expo-dev-menu-interface', 30 'expo-dev-launcher', 31 'expo-dev-client' 32 ], 33 # Modules for which to include Tests subspec 34 tests: [ 35 'expo-modules-core', 36 'expo-updates', 37 'expo-manifests', 38 'expo-json-utils', 39 'expo-structured-headers', 40 ], 41 flags: { 42 :inhibit_warnings => false 43 } 44 }) 45 46 # Install vendored pods. 47 use_pods! 'vendored/unversioned/**/*.podspec.json' 48 49 # Unversioned React Native 50 use_react_native! path: '../react-native-lab/react-native' 51 52 # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and 53 # RCT_ENABLE_PACKAGER_CONNECTION disabled 54 post_install do |installer| 55 # Workaround build error for Folly 56 __apply_Xcode_12_5_M1_post_install_workaround(installer) if installer.pods_project 57 58 # Disabled as of CocoaPods 1.8.0.beta1 since pods_project seems to be nil 59 # installer.pods_project.main_group.tab_width = '2'; 60 # installer.pods_project.main_group.indent_width = '2'; 61 62 installer.target_installation_results.pod_target_installation_results 63 .each do |pod_name, target_installation_result| 64 65 # Run postinstalls actions for versioned dependencies. 66 # These actions are specified in `versioned-react-native/ABI*/postinstalls.rb` files. 67 run_versioned_postinstalls!(pod_name, target_installation_result) 68 69 target_installation_result.native_target.build_configurations.each do |config| 70 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' 71 72 # Fix building failures on M1 73 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' 74 end 75 76 if pod_name == 'Branch' 77 target_installation_result.native_target.build_configurations.each do |config| 78 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)'] 79 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'BRANCH_EXCLUDE_IDFA_CODE=1' 80 end 81 end 82 83 # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and 84 # RCT_ENABLE_PACKAGER_CONNECTION disabled 85 next unless pod_name.start_with?('React') 86 target_installation_result.native_target.build_configurations.each do |config| 87 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)'] 88 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV=1' 89 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_ENABLE_INSPECTOR=0' 90 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'ENABLE_PACKAGER_CONNECTION=0' 91 end 92 end 93 end 94 95 # Target for development, contains only unversioned code 96 target 'Expo Go (unversioned)' do 97 end 98 99 # Release target additionally includes versioned SDKs 100 target 'Expo Go (versioned)' do 101 # Evaluate all files matching `versioned-react-native/ABI*/dependencies.rb` glob pattern 102 # and install ReactABIXX_0_0 pods with all versioned unimodules. 103 use_versioned_abis! 104 end 105 106 # Test targets 107 target 'ExponentIntegrationTests' do 108 inherit! :search_paths 109 end 110 111 target 'Tests' do 112 inherit! :search_paths 113 114 pod 'Quick', :podspec => './Quick.podspec' 115 pod 'Nimble', :podspec => './Nimble.podspec' 116 end 117end 118