Xcode 8 Beta 3 Usa el problema Legacy Swift

Tengo un proyecto Objective-C en Xcode 8 Beta 3. Desde la actualización, cada vez que trato de comstackr recibo el siguiente error:

Se requiere que “Usar versión de idioma heredada de Swift” (SWIFT_VERSION) se configure correctamente para los destinos que usan Swift. Utilice el menú [Editar> Convertir> A syntax Swift actual …] para elegir una versión Swift o use el editor Configuraciones de comstackción para configurar la configuración de comstackción directamente.

¿Alguien ha encontrado esto? Como es un proyecto de Objective-C, no hay configuración de comstackción para configurar Swift. También me he asegurado de que ninguna de las dependencias del proyecto o CocoaPods estén usando Swift. La única solución que tengo es usar Beta 2. ¿Alguna idea de cómo podría solucionar este problema?

También debería mencionar que estoy ejecutando OSX 10.12 Beta 2.

Si está utilizando CocoaPods y desea que se corrija automáticamente cada vez que realice una pod install , puede agregar estas líneas al final de su Podfile:

 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 

EDITAR: Este problema ahora se soluciona si usa CocoaPods v1.1.1 o posterior. No olvides eliminar la configuración ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES de tus principales objectives de proyecto.

Acabo de encontrar una manera de arreglarlo.

Vaya a la configuración de comstackción del proyecto o biblioteca y configure el atributo de la versión del comstackdor de Swift “Usar la versión del lenguaje heredado de Swift” de Sin especificar a Sí o NO.

enter image description here

He estado ignorando este problema por un tiempo y mientras tanto estoy trabajando en otras cosas, finalmente encontré la solución a mi problema.

Dado que mi proyecto es Objective-C, pensé que tal vez uno de los Pods que estoy utilizando estaba usando Swift, revisé cada Pod y ninguno de ellos.

La solución final fue que mi modelo de Core Data se configuró para generar código en Swift a pesar de que los he estado generando manualmente en el menú Archivo> Nuevo> NSManagedObjectSubclass. Todo lo que tenía que hacer era cambiarlo a Objective-C.

captura de pantalla

Este problema también es visible en Xcode-8.1. Cuando agregamos nuevos Target como Extension o Widget y la biblioteca de terceros se integra en un nuevo objective con la ayuda de cocopods. Después de la instalación de Pod Podemos enfrentar el mismo error que el anterior.

Cambie la versión de idioma de Swift heredada en cada configuración de comstackción de biblioteca a

No

enter image description here

Si está utilizando Xcode 8 o posterior

  1. Ir a Configuración de comstackción
  2. Encuentra el uso de la versión del idioma rápido heredado
  3. Sí – Swift 2.3
  4. No, Swift 3.0 enter image description here

Agregue el código siguiente al final del archivo podfile.

 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 

Estoy trabajando en un proyecto que tiene un código mixto objective-c y rápido. Anteriormente utilicé la versión rápida 2.3 y después de actualizar a swift 3 no pude construir el proyecto. Xcode se quejó con el mensaje de error mencionado.

Aparentemente, todavía había una versión Swift obsoleta especificada en mi archivo project.pbxproj. Hubo una rápida 3.0.1 especificada:

 SWIFT_VERSION = 3.0.1; 

Considerando que ya tenía 3.0.2 instalado:

 $ xcrun swift -version Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1) Target: x86_64-apple-macosx10.9 

Así que lo arreglé cambiando la versión de Swift en el archivo project-pbxproj a:

 SWIFT_VERSION = 3.0; 

Parece que el especificador de versión de nivel de parche era demasiado específico.

En mi caso, acabo de hacer las siguientes cosas

Elija el proyecto Target => Ir a la configuración de Build => Buscar “Swift Language Version” => dar valor a la versión Swift actual

Eso es todo. Ha solucionado mi problema.

Sigue esta imagen

Tengo el mismo error. Intenté buscar “Usar versión de idioma Swift heredada”, pero no lo encontré. Estoy usando Xcode 8.3.3 Después de navegar demasiado y de trabajar, encontré esta solución, y esto funcionó para mí. enter image description here

 Here are the steps. 1=> select your target from Xcode 2=> go to build setting 3=> search for "Swift Language Version" 4=> change it to swift 3. (or accordingly.) 

establezca “Usar versión de idioma heredada de Swift” en “SÍ” si usa una versión anterior de swift en su proyecto o cualquier tercero rápido. “No” si su proyecto está actualizado a la versión rápida actual. si no configura su versión rápida, después de cada actualización e instalación, el marco de Pod debe especificar esto.

De hecho, tuve que buscar “Legacy Swift” para poder cambiarlo de “no especificado” a “Sí”. Cuando simplemente me desplacé a la sección descrita anteriormente, no pude cambiarla. Espero que esto ayude a alguien.

Mi proyecto está escrito en Swift. Tengo el mismo error con fastlane . Lo que ocurrió fue que mi Xcode se actualizó automáticamente, así que tuve que actualizar mi proyecto a Swift 3.0. Tengo un montón de errores. La reparación y la eliminación de errores llevaban demasiado tiempo y no valía la pena en ese momento, así que decidí instalar una versión anterior de Xcode. Revertí mi código a 2.3. Entonces, la fastlane beta ya no funcionaba. Resulta que necesitaba configurar la herramienta de línea de comandos en 7.3. enter image description here

Estaba teniendo este mismo problema y lo resolví haciendo lo siguiente:

En Proyecto> Configuraciones de comstackción:

Always Embed Swift Standard Libraries = $(inherited) Use Legacy Swift Language Version = YES

Luego en mi Podfile:

config.build_settings['SWIFT_VERSION'] = '3.0'

El uso de estas tres configuraciones eliminó todas las advertencias y me permitió comstackr correctamente.

El más oscuro y lo que realmente obtuvo progreso para la comstackción fue cambiar SWIFT_VERSION en el Podfile de 3 a 3.0 como se sugiere aquí .

Desde XCode 8 en adelante, puede usar swift 2.3 incluso aunque XCode 8 use 3.x veloz como versión rápida predeterminada. Para usar swift 2.3, simplemente encienda la bandera Use Legacy Swift Language Version a YES desde Build Setting, luego XCode usará Swift 2.3 para ese objective de proyecto.

Antes de intentar soluciones complicadas, aquí hay un control básico que debe hacer si es nuevo en Cocoapods y está teniendo este problema.

Es posible que debas:

  • Abre tu Podfile de nuevo
  • Verifique que la línea para la plataforma no esté comentada con ‘#’. Por fin debería verse algo así como:

platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :)

  • Guarde su Podfile, cierre Xcode y ejecute la pod install nuevo
  • Abra su project.xcworkspace

Quizás es solo eso.

Si no, puedes ir arriba 😉

Tuve este mismo problema después de actualizar a xcode 8.3.2 pero la opción “Usar lenguaje heredado Swift” había desaparecido. Esta parece ser la opción para cambiar ahora: Versión de Swift Lang

Usé esta corrección con Alamofire y otras librerías y todo funciona bien.

Vaya a Project Build Setting para project y Target do por debajo de dos.

 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES And Swift Compiler - Version = Swift 3 

Cambiar a la última Swift 3 .

Error resuelto

Si se resuelve tu error, por favor hazlo.

En Xcode 9 beta. Vaya a Configuración del proyecto, Configuraciones de comstackción, busque la Versión del idioma Swift. En Xcode 9 debe especificar si está utilizando Swift 3.2 o Swift 4.

Si cambia ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES a NO aún no funciona, es porque el problema de xcode no es su problema. Realizando los siguientes pasos:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES propiedad ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES por ser YES en el objective de advertencia

2. Entonces, se mostrará una advertencia en la barra izquierda, que le recomendamos cambiar a veloz 3.0

3. luego cambie de nuevo a NO . ¡Reconstruye el proyecto, el xcode finalmente detecta tu cambio a NO !

Problema resuelto en este caso!