8

我已经为我的 XCode 8 Swift 2.0 项目更新到 cocoapods 1.1.1,现在我ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES在控制台中收到警告“...target overrides the ...”。我怎样才能解决这个问题?

这是我的 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
4

3 回答 3

11

我能够通过执行以下操作来解决此问题:

  1. 进入构建设置
  2. 在顶部选择全部组合
  3. 在 Build Options 下你应该看到Always Embed Swift Standard Libraries,它是粗体的。
  4. 单击它,然后单击删除。它现在应该是非粗体的。
  5. Pod 安装和错误/错误应该消失!

它不会让我发布图像,因为我没有足够的声誉,所以这里有一个详细的屏幕截图链接!

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

于 2016-12-28T22:11:00.497 回答
0

此问题已在以下拉取请求https://github.com/CocoaPods/CocoaPods/pull/6068中得到修复,它应该在 cocoapods 版本 1.1.2 中出现。我从以下 github 问题https://github.com/CocoaPods/CocoaPods/issues/6067获得了信息

于 2016-10-25T06:27:56.940 回答
0

公认的解决方案有效,但现在您必须确保所有队友都在执行它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/

于 2018-10-05T10:36:31.883 回答