"Demasiados files de símbolos" avisando al enviar la aplicación

Envié mi aplicación a la tienda de aplicaciones y recibí la siguiente advertencia (no error):

Demasiados files de símbolos: estos símbolos no tienen el segmento correspondiente en ningún file binary [XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols, XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols]

¿Qué causó este problema? ¿Cómo puedo arreglarlo? ¿Creará problemas con los informes de fallos en Crashlytics?

Se me ocurrió el mismo problema, y ​​esta es la razón por la que esto sucede y la solución.

Versión corta : los files dSYM networkingundantes se producen debido a la configuration incorrecta del proyecto. En mi caso, el "proyecto" consiste en un proyecto xcproyecto y varios proyectos de cocoapod, y el Build Setting\Valid Architectures este último es más extenso que el anterior. Por lo tanto, XCode está produciendo files dSYM networkingundantes para los proyectos de pod y Apple ha detectado que esos files dSYM son inútiles porque el proyecto principal se establece en un nivel más restringido.

Un montón de versión de mierda :

Vaya a Window -> Organizer y select su versión de envío del file y right click -> Show in finder para encontrar ese file .xcarchive. Luego use el terminal para navegar en .xcarchive (es un package como .app) y luego al directory dSYMs , ejecute dwarfdump --uuid * para mostrar los uuids de esos files dSYM. Verifique si los uuid (s) en el correo electrónico quejoso están en la list. El correo electrónico dice que esos files dSYM son networkingundantes, por lo que debemos evitar producirlos cuando construyamos el file.

Para mí, utilicé AFNetworking y otros frameworks de terceros en mi aplicación, y se agregan al proyecto (o espacio de trabajo con mayor precisión) a través de CocoaPods. Necesito garantizar que mi aplicación no se instalará en ningún dispositivo anterior a iPhone5, por lo que establezco Valid Architectures para arm64 solo en Build Setting de Build Setting de mi proyecto. En este caso, también debería establecer las mismas Valid Architectures para los objectives del proyecto Pod (puede haber varios objectives según cuántos frameworks haya agregado a través de Pods). Al hacer esto, el proyecto Pods no producirá los files dSYM networkingundantes durante el process de compilation. Una vez que todos los targets se configuran correctamente, vaya a Product -> Archive para volver a archivar. Debería comprobar los uuid (s) de los files dSYM nuevamente por las dudas.

Espero haberlo entendido 🙂

Los informes de locking no se verán afectados por esta configuration.

Deshabilite bitcode en la configuration de compilation.

Tengo un problema similar y determiné que habilitar bitcode producirá BCSymbolMaps en el file de la aplicación. La desactivación del bitcode resuelve el problema.