with see not mach library found for failed error code apple swift linker linker-errors xcode8

see - Error de enlazador Swift en la compilación de lanzamiento que se puede reparar agregando código



library not found for (4)

En Xcode 8, un proyecto mío Swift funciona en modo Debug pero no se puede vincular en modo Release:

Undefined symbols for architecture x86_64: "Swift.UnsafeMutableBufferPointer.(subscript.materializeForSet : (Swift.Int) -> A).(closure #1)"

Puedo solucionar el error cambiando esta línea:

let nextPeriod = currentSchedule.periods.filter({ $0.startDate > now }).sorted(by: { $0.startDate < $1.startDate }).first

a:

let nextPeriod = currentSchedule.periods.filter({ $0.startDate > now }).first

pero eso obviamente altera el comportamiento de mi aplicación. Afortunadamente, también puedo corregir el error agregando la siguiente línea a casi cualquier método, inicializador u observador de propiedades:

let _ = [""].sorted(by: {$0 < $1})

(Digo "casi" cualquiera porque no parece corregir el error del vinculador cuando se agrega a los observadores de propiedades en propiedades con tipos enum que definí a mí mismo).

...¿Qué?


Tuve el mismo problema al migrar a Swift 3.

Lo hice funcionar dejando que el objeto que llama al código herede de NSObject.


Al principio pensé que ese extraño código de manzana se inserta en pocos lugares con productos comparables ... Pero no funcionó cuando lo agregué de nuevo. Lo que funcionó fue reducir el nivel de optimización a: optimización rápida de un solo archivo Echaron a perder esta versión de xcode, los guiones gráficos también tienen enormes problemas.


Este es un error del compilador, que se ha corregido en Xcode 8.1 .


Tuve el mismo problema al utilizar sorted(by: method en un proyecto que estaba migrando a Swift 3).

Parece un error en el compilador y encontré las siguientes referencias:

Por ahora, la única solución que funcionó para mí fue cambiar el rápido nivel de optimización del compilador a None en las Configuraciones de compilación.