Después de actualizar Xcode a 13.0, no puedo ejecutar mi aplicación iOS que usa Kotlin Multiplatform.
La compilación falla con Command PhaseScriptExecution failed with a nonzero exit code y dice que el error es:
Tarea :shared:compileKotlinIos FALLÓ
e: /Usuarios...ruta.../KtorClient.kt: (134, 17): Esta API es interna en ktor y no debe usarse. Podría ser eliminado o cambiado sin previo aviso.
También hemos tenido errores similares después de actualizar a Xcode 13, pero siempre es algo con la biblioteca KMM compartida, JDK, etc. Este error se mostró muchas veces:
> Process 'command '/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
134 línea de KtorClient.kt :
override suspend fun createPassword(email: String, password: String): CreatePasswordResponse { return client.post { url { path("v1", "user", "create_password") body = LoginRequest(email, password) } headers { /*134.line*/ append(HttpHeaders.ContentType, ContentType.Application.Json) } } } Hemos intentado eliminar XCWorkspace , Podfile.lock , la carpeta Pods, luego reinstalar el pod, eliminar los datos derivados, nada ayudó.
También hemos probado diferentes versiones de Ktor, JDK, nada ayudó.
Además, este comando que se encuentra en Internet no ayudó (dicen que debe ejecutarlo después de actualizar Xcode):
sudo xcode-select --switch /Applications/Xcode.app/Contents/DeveloperEste es un problema conocido de Ktor, relacionado con esta corrección en Kotlin.
Esto es lo que dice la documentación :
Tenga en cuenta que la clase
StringValuesBuilderque expone la función de agregar está marcada incorrectamente con la anotaciónInternalAPI. Este problema se solucionará env2.0.0. Como solución alternativa, puede agregar la@OptIn(InternalAPI::class)para habilitar explícitamente el uso de esta API.
Puede optar por su línea específica con @OptIn(InternalAPI::class) , o agregar esto en su módulo compartido build.gradle.kts para que tenga efecto en todo el módulo:
kotlin { // .. sourceSets { all { languageSettings.optIn("io.ktor.util.InternalAPI") } // ... } }