"Soporte Swift no válido: falta la carpeta SwiftSupport" con Xcode 7.3.1

Después de enviar una actualización de aplicación con Application Loader, recibí este correo electrónico de Apple:

Hemos descubierto uno o más problemas con su entrega reciente para "[Nombre de la aplicación]". Para procesar su entrega, se deben corregir los siguientes problemas:

Soporte Swift no válido: falta la carpeta SwiftSupport. Vuelva a generar su aplicación con la versión pública actual (GM) de Xcode y vuelva a enviarla.

Una vez que se corrijan estos problemas, puede volver a enviar el binary corregido.

He confirmado que este binary fue creado con el último Xcode GM (7.3.1), así que ese no es el problema. He visto una gran variedad de correcciones potenciales para este problema en línea, pero esperaba que al dar más detalles, alguien pudiera ayudarme a encontrar la solución específica.

  • Presenté un file IPA usando Application Loader 3.5 sin problemas.
  • La versión anterior de la aplicación no utiliza Swift, pero esta actualización sí.
  • La configuration de compilation "Contenido incorporado contiene código Swift" se establece en NO . Mi entendimiento es que esto solo debería ser YES si tenemos un objective de Objetivo C puro que depende de un objective Swift o mixto.
  • El proyecto usa CocoaPods, pero nada ha cambiado en nuestros pods para esta actualización.
  • La versión anterior de la aplicación incluía una aplicación y una extensión WatchKit, pero esta actualización no.
  • Dentro de una xcarchive generada con la misma compilation, la carpeta SwiftSupport está allí. Contiene una subcarpeta llamada iphoneos que contiene varias bibliotecas Apple Swift como libswiftFoundation.dylib .
  • Si cambio el nombre del file .ipa a .zip y lo desfile, su package de aplicaciones no contiene una carpeta SwiftSupport , pero sí contiene una carpeta Frameworks con los mismos dylib Swift.

La solución aquí fue en esta respuesta . Necesitábamos usar el nuevo indicador -exportOptionsPlist con xcodebuild lugar de los -exportFormat y -exportWithOriginalSigningIdentity . El plist solo necesita tener la key del method establecida en app-store .