Цель Cocoapods 1.1.1 переопределяет `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES`

#cocoapods #cocoapods-1.1.1

#cocoapods #cocoapods-1.1.1

Вопрос:

Я обновился до cocoapods 1.1.1 для моего проекта XCode 8 Swift 2.0, и теперь я получаю предупреждение «… цель переопределяет ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES …» в консоли. Как я могу это исправить?

Вот мой podfile

 platform :ios, '9.0'
use_frameworks!

def app_pods
 pod 'Alamofire', '~> 4.0.0'
 pod 'AlamofireObjectMapper','~> 4.0.0'
 pod 'RealmSwift', '~> 2.0.2'
 pod 'KeychainAccess', '~> 3.0.0'
 pod 'ReachabilitySwift', '~> 3'
 pod 'SwiftyBeaver', '~> 1.0.1'
 pod 'GoogleAnalytics', '~> 3.17.0'
end

def unit_tests
 app_pods
 pod 'OHHTTPStubs', '~> 5.2.1'
 pod 'OHHTTPStubs/Swift', '~> 5.2.1'
end 


target 'Demo' do
 app_pods
end

target 'App1' do
 app_pods
end

target 'App2' do
 app_pods
end

target 'DemoTests' do
 unit_tests
end

target 'App1Tests' do
 unit_tests
end

target 'App2Tests' do
 unit_tests
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end
  

Ответ №1:

Я смог устранить эту проблему, выполнив следующее:

  1. Перейдите в настройки сборки
  2. Вверху выберите все и объединенные
  3. В разделе Параметры сборки вы должны увидеть Всегда внедрять стандартные библиотеки Swift, и это выделено жирным шрифтом.
  4. Щелкните по ней и нажмите удалить. Теперь ее следует отменить.
  5. Модуль устанавливается, и ошибка / errors должны исчезнуть!

Это не позволит мне опубликовать изображение, потому что у меня недостаточно репутации, поэтому вот ссылка на подробный снимок экрана!

https://cloud.githubusercontent.com/assets/17066507/21532583/93df897e-cd1f-11e6-9f17-d25cb81a2a53.png

Ответ №2:

Принятое решение работает, но теперь вы должны убедиться, что все ваши товарищи по команде выполняют его каждый pod install .

И мы все знаем, что этого не произойдет.

Вы могли бы заставить CococaPods делать это автоматически, добавив это в нижнюю часть вашего Podfile :

 post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if config.name == 'MyPOD' 
                config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'Yes'
            end
        end
    end
end
  

Дополнительная информация здесь:https://www.devsbedevin.net/cocoapods-always-embed-swift-standard-libraries /

Ответ №3:

Эта проблема была исправлена в следующем запросе на извлечениеhttps://github.com/CocoaPods/CocoaPods/pull/6068 и она должна отсутствовать в cocoapods версии 1.1.2 . Я получил информацию из следующей проблемы на githubhttps://github.com/CocoaPods/CocoaPods/issues/6067