Почему Xcode устанавливает все библиотеки Swift (несколько раз) на мое устройство при использовании Podfile? - PullRequest
0 голосов
/ 12 февраля 2019

Я только что добавил Podfile в свой проект iOS, и независимо от того, что я установил для ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES (даже $ (унаследовано)), он все равно добавляет все эти быстрые библиотеки в мои сборки.Мое приложение было около 20 МБ до того, как я добавил Podfile, и теперь оно составляет 1,35 ГБ ... Я выполнил довольно много поисков в Google, и не могу понять, что является причиной этого.Я использую Xcode 10.1 и вот мой Podfile:

platform :ios, '10.0'

target 'MyApp' do
  use_frameworks!

  # Core Dependencies
  pod 'SwiftLint', '~> 0.29.1'
  pod 'R.swift', '~> 5.0.0.rc.1'
  pod 'RxSwift', '~> 4.4.0'
  pod 'RxCocoa',    '~> 4.4.0'
  pod 'Alamofire', '~> 4.8.0'
  pod 'Moya/RxSwift', '~> 12.0.1'

  # Database management
  pod 'RxRealm', :git => 'https://github.com/RxSwiftCommunity/RxRealm', :tag => '0.7.7'
  pod 'RealmSwift', '~> 3.12.0'

  # Remote Image management
  # pod 'Kingfisher', '~> 4.6.3'

  target 'MyAppTests' do
    inherit! :search_paths
    pod 'Nimble', '~> 7.3.1'
    pod 'SnapshotTesting', '~> 1.0'
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    pod 'Nimble', '~> 7.3.1'
    pod 'SnapshotTesting', '~> 1.0'
  end

end
post_install do |installer_representation|
  installer_representation.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'YES'
    end
  end
end

1 Ответ

0 голосов
/ 28 мая 2019

Ну, после многих часов разочарования я наконец обнаружил, что является причиной проблемы.Оказывается, я пропустил важный шаг: Очистить папку сборки .

Каждый раз, когда вы вносите изменения в подфайл, вам нужно перезапустить pod install и затем нажать «Очистить папку сборки».в меню «Проект».

Вот правильный код для нижней части подфайла, который останавливает установку нескольких копий стандартных библиотек Swift:

post_install do |installer_representation|
  installer_representation.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = '$(inherited)'
    end
  end
end

После того, как у меня былоПосле этого мое приложение вернулось к своему первоначальному небольшому размеру.Удачного кодирования!

...