xref: /expo/ios/Podfile (revision dd3fc24c)
1require_relative './podfile_helpers.rb'
2require_relative '../packages/@unimodules/react-native-adapter/scripts/autolinking'
3require_relative '../react-native-lab/react-native/scripts/react_native_pods'
4
5install! 'cocoapods',
6         :generate_multiple_pod_projects => true,
7         :incremental_installation => true
8platform :ios, '11.0'
9inhibit_all_warnings!
10
11abstract_target 'Expo Go' do
12  # Expo Client dependencies
13  pod 'Amplitude'
14  pod 'CocoaLumberjack', '~> 3.5.3'
15  pod 'GoogleMaps', '~> 3.6'
16  pod 'Google-Maps-iOS-Utils', '~> 2.1.0'
17  pod 'JKBigInteger2', '0.0.5'
18
19  # Expo modules
20  use_expo_modules!({
21    exclude: [
22      'expo-module-template',
23      'expo-in-app-purchases',
24      'expo-payments-stripe'
25    ],
26    # Modules for which to include Tests subspec
27    tests: [
28      'expo-updates',
29      'expo-structured-headers',
30    ],
31    flags: {
32      :inhibit_warnings => false
33    }
34  })
35
36  # Expo modules that are not unimodules
37  pod 'EXRandom', path: '../packages/expo-random/ios'
38
39  # Install vendored pods.
40  use_pods! 'vendored/unversioned/**/*.podspec.json'
41
42  # Unversioned React Native
43  use_react_native! path: '../react-native-lab/react-native'
44
45  # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and
46  # RCT_ENABLE_PACKAGER_CONNECTION disabled
47  post_install do |installer|
48    # Disabled as of CocoaPods 1.8.0.beta1 since pods_project seems to be nil
49    # installer.pods_project.main_group.tab_width = '2';
50    # installer.pods_project.main_group.indent_width = '2';
51
52    installer.target_installation_results.pod_target_installation_results
53      .each do |pod_name, target_installation_result|
54
55      # Run postinstalls actions for versioned dependencies.
56      # These actions are specified in `versioned-react-native/ABI*/postinstalls.rb` files.
57      run_versioned_postinstalls!(pod_name, target_installation_result)
58
59      target_installation_result.native_target.build_configurations.each do |config|
60        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
61      end
62
63      if pod_name == 'Branch'
64        target_installation_result.native_target.build_configurations.each do |config|
65          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
66          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'BRANCH_EXCLUDE_IDFA_CODE=1'
67        end
68      end
69
70      # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and
71      # RCT_ENABLE_PACKAGER_CONNECTION disabled
72      next unless pod_name.start_with?('React')
73      target_installation_result.native_target.build_configurations.each do |config|
74        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
75        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV=1'
76        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_ENABLE_INSPECTOR=0'
77        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'ENABLE_PACKAGER_CONNECTION=0'
78      end
79    end
80  end
81
82  # Target for development, contains only unversioned code
83  target 'Expo Go (unversioned)' do
84  end
85
86  # Release target additionally includes versioned SDKs
87  target 'Expo Go (versioned)' do
88    # Evaluate all files matching `versioned-react-native/ABI*/dependencies.rb` glob pattern
89    # and install ReactABIXX_0_0 pods with all versioned unimodules.
90    use_versioned_abis!
91  end
92
93  # Test targets
94  target 'ExponentIntegrationTests' do
95    inherit! :search_paths
96  end
97
98  target 'Tests' do
99    inherit! :search_paths
100  end
101end
102