2016-09-26 3 views
2

Когда я пытаюсь соединить Xcode 7.3.1 с MacOS Server 5.2 (выпущен 20 сентября 2016 года) я получаю сообщение об ошибке:Как запустить старую версию Xcode на последнем сервере MacOS?

«Версия Xcode вы выбрали старше минимальной версии, поддерживаемой сервером. "

enter image description here

Я не могу использовать Xcode 8.x + для проекта из-за быстрых связанных с вопросами, которые не могут быть легко реорганизованным.

Если нет возможности избежать этой проблемы, есть ли способ загрузить более старую версию сервера MacOS, поддерживающую Xcode 7.3.1? Я не могу найти способ загрузить старые версии macOS Server.

+0

«Вопросы, связанные с Swift, которые не могут быть легко реорганизованы»? Xcode 7.3.1 имеет Swift 2.2, Xcode 8 имеет Swift 2.3, они почти одинаковы. – RyuX51

+1

К сожалению, «почти то же самое» не переводит на «компилирует и запускает в Xcode 8» для сотен быстрых компонентов, которые я использую. –

+0

Swift 3 - это «новая версия Swift» для Xcode 8, которая поставляется с большими изменениями. Swift 2.3 для тех, кто вы или я, которые не могут обновиться по соображениям совместимости (или просто не хотят по каким-либо причинам), чтобы они могли использовать свой старый код Swift с Xcode 8. Я застрял для обратной совместимости, потому что я использую много старых Swake 2.2 cocoapods (которые, кстати, запускаются после добавления SWIFT_VERSION = 2.3 в их настройках сборки). Изменения абсолютно незначительные, просто запустите помощник по миграции и сразу увидите код, запущенный на Xcode 8. – RyuX51

ответ

0

Вы больше не найдете OS X Server 5.1, если это даже не в архиве Яблоков (https://developer.apple.com/download/more/).

Ваш способ перейти сюда, чтобы использовать Swift 2.3 как «устаревшую версию языка Swift» вместо Swift 3 для вашего проекта.

В дополнении к Swift 3, Xcode 8 поддерживает развитие с Swift 2.3, незначительными обновлениями на 2.2 языке Swift построен для работы с новой SDKs для MacOS Sierra, прошивки 10, tvOS 10 и watchOS 3. Этих предназначен для того, чтобы позволить разработчикам немедленно перейти к этим последним SDK, даже для проектов, которые могут быть поздно в разработке с Swift 2.2 и еще не готовы перейти на Swift 3. Xcode 8 может перенести ваш код на новые изменения Swift 2.3, в первую очередь связанные к ясности с ясностью, которая была добавлена ​​в новые SDK.

Источник: https://developer.apple.com/swift/blog/?id=36

Если вы используете CocoaPods добавить это к вашей Podfile:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['SWIFT_VERSION'] = '2.3' 
      config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = 'YourTeamID/' 
     end 
    end 
end 

Пожалуйста, попробуйте использовать Migration АССИСТЕНТ (Edit -> Преобразовать -> To Current Swift синтаксиса .. и выберите «Преобразовать в Swift 2.3»).

+0

Похоже, у вас есть проблема, очень похожая на мою. К сожалению, я не могу автоматически конвертировать код нашего кода какао в swift 2.3. Команды, ответственные за этот код, работают над тем, чтобы преобразовать его, но для преобразования требуется не менее десятков человеко-часов. Таким образом, я не могу использовать Xcode 8 для этого конкретного проекта на данный момент времени. –

+0

Вы добавляете это в свой подфайл и запускаете свою установку pod. В большинстве случаев контейнеры остаются неподвижными Swift 2.2, но расширение, указанное выше в вашем подпикселе, добавляет тег 'SWIFT_VERSION = 2.3' ему и сообщает Xcode использовать профиль вашей команды для подготовки, и они должны просто запускать (в моем случае было девять Swift 2.2 pods, и они только что запустили). Этого нельзя даже назвать «конвертировать». Это просто говорит Xcode, что это еще старая версия. После этого могут возникнуть некоторые незначительные корректировки, но они будут проблемами, Xcode уже предлагает их автоматически исправить. Вы попробовали? – RyuX51

+0

Невозможно, чтобы переход на Swift 2.3 мог занять десятки человеко-часов, чтобы предотвратить это, это единственная цель «старой версии», известной как 2.3. Вам все равно придется обновляться до версии 3 в будущем, но пока вам это не нужно. Я действительно думаю, что команда ошибается в миграции на Swift 2.3 с переходом на Swift 3. – RyuX51

Смежные вопросы