2016-11-26 2 views
0

В настоящее время я использую Charts стручок в моем Objective-C проекте, поэтому я должен был открыть сегодня в Xcode 8.1 и, конечно же, я получил это сообщение:Обновления стручки (Диаграммы) до последней Swift синтаксиса

warning

Это не было бы проблемой, если бы это был мой код, но мы говорим здесь о стручках. Итак, каков был бы правильный способ справиться с этим предупреждением и переключиться на синтаксис Swift 3 для этого модуля?

То, что я пробовал:

Я запустил команду обновления стручка, и обновлять его, надеюсь, до последней версии ... Тем не менее, я получаю такое же сообщение, когда я открываю Xcode. Это мой Podfile:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '9.2' 
pod 'Charts', '~> 3.0' 

use_frameworks! 

target 'drivingCOACH' do 
    pod 'Charts', '~> 3.0' 
end 
+0

Внесение этого в конец вашего подфайла должно решить проблему post_install do | installer | installer.pods_project.targets.each do | target | target.build_configurations.each do | config | config.build_settings ['SWIFT_VERSION'] = '3.0' конец конец конец –

+0

@ThomasG. Ну что это на самом деле? Потому что у меня есть еще один стручок, который отлично работает ... – Whirlwind

+0

Ну, я закончил с изменениями настроек сборки -> Использовать устаревшую версию Swift = НЕТ. Также попробовал ваш код, и он сработал. Тем не менее, я не совсем понимаю, что он делает (похоже, что он перебирает все цели и устанавливает свои конфиги для использования SWIFT_VERSION = 3, верно?) – Whirlwind

ответ

1

СХЕМЫ стручок задокументирован на https://cocoapods.org/pods/Charts. Текущая версия (на момент постановки вопроса) использует Swift 3.0. Поэтому при использовании всех ваших зависимостей необходимо также использовать Swift 3.0 (вы не можете смешивать зависимости разных версий Swift при использовании Framework, что в настоящее время является обязательным требованием).

Вы можете вручную изменить настройки сборки, чтобы указать, что каждая целевая платформа для Swift 3.0 (установив для параметра «Использовать устаревшее значение Swift» значение NO). Но поскольку ваш проект находится в Objective-C, вы можете завершить эту операцию каждый раз при запуске pod install.

Чтобы избежать этой проблемы, вы можете расширить скрипт установки вашего Podfile включить эти строки, и он будет выполнять точно так же, как описано выше, на ваш следующий pod deintegrate && pod install:

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 

Эти строки не будут необходимо больше в тот день, когда вы решите интегрировать некоторый код Swift в ваше приложение, потому что CocoaPods затем сопоставляют версии Swift зависимостей с тем, что вы используете.

Кроме того, вам может потребоваться удалить папку Derived Data (~/Library/Developer/Xcode/DerivedData по умолчанию), в то время как Xcode закрыт, если вы столкнулись с некоторыми проблемами с кешем.

+0

Все еще я не знаю, было ли это хорошо ... Я переустановил модуль Charts, но все же я получаю кучу синтаксических ошибок (например, в Swift 3 вы должны использовать это и это ...) Ожидается ли это? Я подумал, что если я переустановил модуль, он будет обновлен до последнего синтаксиса ... – Whirlwind

+0

@ Видите ли вы на последней стабильной версии CocoaPods? 'pod -version' должен возвращать' 1.1.1' сегодня. –

+0

Yup. Это 1,1.1 – Whirlwind