ios - Utilice la versión de idioma de Swift heredada-Xcode 8.2
swift3 xcode8.2 (9)
Después de actualizar a Xcode 8.2, el compilador arroja un error para mi objetivo de aplicación:
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
Pero tenerlo configurado en No
en todos los objetivos que tengo. Se intentó eliminar los datos derivados, limpiar el directorio del proyecto, reiniciar Xcode. Nada ayuda. ¿Alguien lo descubrió?
// Editado
Solo para estar seguro: he configurado TODOS mis objetivos Use Legacy Swift Language Version
en No
y el proyecto funcionó bien cuando se compiló en Xcode 8.1. No funciona después de actualizar a Xcode 8.2.
// Edición 21.12.
El problema se ha solucionado en Xcode 8.2.1
Bueno, finalmente lo he resuelto. He eliminado el proyecto y lo he vuelto a clonar, reinicié Xcode, pod repo update
y la pod install
y funcionó. No tengo idea de por qué.
Cierre Xcode y abra el project.pbxproj
correspondiente project.pbxproj
en un editor de texto de su elección.
Reemplace SWIFT_VERSION = 3.0.1;
con SWIFT_VERSION = 3.0;
para todos los objetivos.
Reabrir Xcode.
Esto es lo único que me funcionó ...
Para errores con vainas. Básicamente necesitamos habilitar "Legacy Swift Language". Seleccione el marco de su pod (haciendo clic en él en el navegador de errores) y, en Configuración de compilación, busque "Usar versión de idioma Swift heredada"
Establézcalo en "Sí". Luego "Build & Run" de nuevo para probarlo.
Echa un vistazo a esta publicación: http://rebeloper.com/downgrade-swift-3-swift-2-3-xcode-8/
Esto no funcionó para nosotros :( volver a Xcode 8.1 es lo mejor por ahora hasta que Apple QA sea su material antes de su lanzamiento.
Si hay algún consuelo aquí son cosas que probamos y nos acercamos mucho. Nos quedamos estancados en la Limpieza Fallida:
rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache
rm -rf ~/Library/Preferences/com.apple.Xcode.plist
reinicie Xcode
y realice una limpieza profunda con la tecla de option
Eso se deshizo de la limpieza fallida.
Agregando esto a tu guión de pod
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
Esa es la manera de hacer que todos los pods se ajusten a 3.0 y en realidad lo compilamos, pero al final de la compilación obtuvimos este error:
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
¿Cómo cambiamos el espacio de trabajo para que todos los proyectos se ajusten a swift 3.0? ¿Dónde está esa configuración?
Recibí el mismo error al convertir partes de mi aplicación (tanto Obj C como Swift) en un marco, pero en mi caso fue que la "Versión de idioma de Swift" en Configuración de compilación no estaba configurada. Lo puse en Swift 3 (la única opción), y el error desapareció.
Reparado en Xcode 8.2.1 .
Aquí está una copia de la integralidad del registro de cambios de Xcode 8.2.1 :
Rápido
Problemas resueltos
- Se solucionó un problema que podía provocar la falla en la creación de un proyecto con el mensaje de error "" Se requiere que la versión de idioma Swift heredada "(SWIFT_VERSION) esté configurada correctamente para los objetivos que usan Swift" cuando se usa una versión compatible de Swift. (29667880)
- Xcode ya no advierte sobre el uso del código Swift 2.3 en desuso cuando el esquema activo no hace referencia a los objetivos que usan el código Swift 2.3. (29671741)
Resulta que Apple decidió hacer referencia a una versión del lenguaje swift que aún no existe dentro del archivo pbxprojec. Ellos codificaron 3.0.1, y al editar manualmente el sudo XML en el archivo pbx a 3.0 todo funcionó de nuevo. Apple aparentemente pasó por alto algunos trabajos de control de calidad simples antes de que lanzaran 8.2
Esto también podría explicar por qué la conmutación entre el legado en la configuración de compilación funcionó para algunas personas.
Tengo el mismo error. Intenté buscar "Usar versión de idioma de Swift heredada", pero no la encontré. Estoy usando Xcode 8.3.3 Después de navegar demasiado y trabajar, encontré esta solución y esto me funcionó.
Follow these 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.)
Espero que este trabajo para usted.