Сбой установки CocoaPods в Microsoft AppCenter для проектов React Native - PullRequest
0 голосов
/ 27 апреля 2018

Я новичок в CocoaPods и пытаюсь построить проект RN в MS AppCenter. Мой Podfile выглядит довольно просто:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'recommendapp' do
  rn_path = '../node_modules/react-native'
  rn_maps_path = '../node_modules/react-native-maps'

  # See http://facebook.github.io/react-native/docs/integration-with-existing-apps.html#configuring-cocoapods-dependencies
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga/yoga.podspec'
  pod 'React', :path => '../node_modules/react-native', subspecs: [
    'Core',
    'CxxBridge',
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
  ]

  # React Native third party dependencies podspecs
  pod 'DoubleConversion', :podspec => "#{rn_path}/third-party-podspecs/DoubleConversion.podspec"
  pod 'glog', :podspec => "#{rn_path}/third-party-podspecs/glog.podspec"
  pod 'Folly', :podspec => "#{rn_path}/third-party-podspecs/Folly.podspec"

  # react-native-maps dependencies
  pod 'react-native-maps', path: rn_maps_path
  pod 'react-native-google-maps', path: rn_maps_path  # Remove this line if you don't want to support GoogleMaps on iOS
  pod 'GoogleMaps'  # Remove this line if you don't want to support GoogleMaps on iOS
  pod 'Google-Maps-iOS-Utils' # Remove this line if you don't want to support GoogleMaps on iOS

  # Pods for AppCenter
  pod 'AppCenter/Crashes', '~> 1.6.0'
  pod 'AppCenter/Analytics', '~> 1.6.0'
  pod 'AppCenterReactNativeShared', '~> 1.5.0'
  platform :ios, '9.0'
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'react-native-google-maps'
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
      end
    end
    if target.name == "React"
      target.remove_from_project
    end
  end
end

Однако, когда я запускаю сборку, она завершается с

[!] CocoaPods не может найти совместимые версии для модуля "йога": В снимке (Podfile.lock): йога (с ../node_modules/react-native/ReactCommon/yoga/yoga.podspec)

в подфиле: йога (с ../node_modules/react-native/ReactCommon/yoga/yoga.podspec)

Из-за предыдущего наивного распознавателя CocoaPods вы использовали предварительную версию yoga без явного запроса предварительной версии, что теперь приводит к конфликту. Пожалуйста, решите либо использовать эту предварительную версию, добавив требование к версии в ваш Podfile (например, pod 'yoga', '= 0.54.2.React'), либо вернуться к стабильной версии, запустив pod update yoga.

Из того, что я вижу, оба определения подспецификации йоги указывают на один и тот же файл, но он все равно не работает. Я провел обширные поиски в google и stackoverflow, но не смог найти ничего полезного.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Откройте Подфайл в ваших платформах / IOS / Подфайле .

Убедитесь, что версия ios 9.0 (или последняя).

Сохраните файл и затем запустите pod install в том же каталоге с помощью терминала.

А затем вернитесь к вашему проекту Cordova и запустите:

cordova rm platform ios
cordova add platform ios
cordova build ios
cordova run ios

Вот так.

0 голосов
/ 14 мая 2018

Рад, что вы нашли свое решение, я оставлю свое для тех, у кого такая же проблема.

У меня возникла эта проблема при установке response-native-maps. Это вызвано конфликтом версий зависимостей. Мне удалось решить эту проблему с помощью быстрого исправления => Я удалил Podfile.lock в /example/ios, затем npm run build:ios, что сгенерирует новый файл с правильной версией.

...