ios - tutuapp - no se pudo verificar la app iphone
AplicaciĆ³n rechazada, pero no uso UDID (14)
Hoy recibimos comentarios sobre nuestro envío y no comprendemos el problema informado: "Las aplicaciones no pueden acceder al UDID y no deben usar el método uniqueIdentifier de UIDevice. Actualice sus aplicaciones y servidores para asociar a los usuarios con el proveedor o la publicidad. identificadores introducidos en iOS 6. ".
¡Conocemos los rechazos sobre UDID, pero nuestra aplicación no usa esto! Después de leer esto, nuestro equipo revaluó la aplicación y no encontramos las ocurrencias de "UIDevice uniqueIdentifier". También revisamos todas las bibliotecas usadas y realmente no encontramos ninguna llamada de UDID.
Alguien tiene ideas?
Después de investigar, ejecuté el comando "greap" y sospecho sobre FacebookSDK:
my-app-directory $ grep -Rnis ''uniqueIdentifier'' *
Binary file MyApp/FacebookSDK.framework/FacebookSDK matches
Binary file MyApp/FacebookSDK.framework/Versions/A/FacebookSDK matches
Binary file MyApp/FacebookSDK.framework/Versions/Current/FacebookSDK matches
Binary file MyApp/MyApp.xcodeproj/project.xcworkspace/xcuserdata/myuser.xcuserdatad/UserInterfaceState.xcuserstate matches
FacebookSDK usa uniqueIdentifier ?? ¿Cuál es la resolución?
Archivé un error con Facebook, pero aquí hay una solución alternativa:
https://developers.facebook.com/bugs/193119420841692
En el SDK, edite facebook-ios-sdk / src / FBSession.m
Comente el
- (BOOL)isMultitaskingSupported {
/*
UIDevice *device = [UIDevice currentDevice];
return [device respondsToSelector:@selector(isMultitaskingSupported)] &&
[device isMultitaskingSupported];*/
return TRUE;
}
No es necesario desde IOS 4.0 de todos modos.
que elimina la referencia y vuelve a construir .a
Ayer tuve el mismo problema al actualizar mis aplicaciones.
Después de buscar bibliotecas de terceros usando UDID, me di cuenta de que estaba usando el seguimiento de conversiones para iOS . Esta biblioteca usó UDID pero el 10 de abril lanzó una actualización que soluciona este problema:
El SDK v1.2.0 de seguimiento de conversiones de iOS ya no tiene acceso a UDID (publicado el 10 de abril de 2013).
Espero que ayude.
Compruebe el binario que ha generado con el comando strings
y busque uniqueIdentifier
:
$ strings YOUR_BINARY | grep uniqueIdentifier
Es probable que lo encuentres allí.
Descubrí que OpenSSL tiene una cadena uniqueIdentifier
declarada en sus encabezados, por lo que es probable que su aplicación (o cualquier biblioteca estática que proporcione con su aplicación) la haya incluido.
En mi caso, el culpable fue libspotify
.
En mi caso, era la biblioteca ibGoogleAnalytics_debug.a.
Para encontrar qué biblioteca está utilizando el método uniqueidentifier, vaya a la carpeta del proyecto y escriba:
$ find . | grep -v .svn | grep "/.a" | grep -v "/.app" | xargs grep uniqueIdentifier
Obtuve esto: Archivo binario ./My_Proyecto/libGoogleAnalytics_debug.a coincidencias
En mi caso, este problema fue responsable del SDK de BugSense (utilicé la versión obsoleta). Después de actualizar a la versión más nueva (3.1.3) todo está bien.
Esto es todo lo que Apple hace, todo lo que necesita hacer es:
strings - -a -arch armv7 "App.app/App" | grep uniqueIdentifier
App.app es después de que descomprimas App.ipa, entonces estará dentro del directorio de carga útil.
Simplemente ejecute ese comando dentro del directorio de carga útil. Puedes hacer una prueba al greping un método conocido que usas.
Puede sustituir armv7 a todos si desea buscar todas las arquitecturas para las que está construido.
Estoy enfrentando el mismo problema hoy. Hay una variable en openssl llamada uniqueIdentifier. Quizás está causando el problema.
Habitualmente, las bibliotecas de terceros para análisis y pruebas beta usan uniqueIdentifier para rastrear usuarios (por ejemplo, vuelo de prueba o versiones anteriores de GA), verificar si alguna de las bibliotecas de terceros que está utilizando usa esto. Si no es el caso, puede solicitar una aclaración en http://itunesconnect.apple.com .
Intenté todo el día, mi aplicación siempre es rechazada.
Primero, intenté encontrar. | grep -v .svn | grep ".a" | grep -v ".app" | xargs grep uniqueIdentifier en la carpeta de mi proyecto.
Parecía que Google Analytics, AdMob y Wikitude SDK usaban uniqueIdentifier. Así que eliminé GA y actualicé AdMob y Wikitude. Ahora, no hay más llamadas al método uniqueIdentifier. Cuando hago grep, el resultado es nada. Limpié todo en mi proyecto, ¡pero mi aplicación siempre es rechazada!
Qué puedo hacer ahora ? Cualquier ayuda será apreciada ...
EDIT: encontré esta línea:
IDEWorkspaceWindowController***UniqueIdentifier***_IDEActiveWorkspaceTabController_IDE
En este archivo:
MYPROJECT.xcodeproj / project.xcworkspace / xcuserdata / MYUSERNAME.xcuserdatad / UserInterfaceState.xcuserstate
¿Crees que el problema puede provenir de esta línea?
Lo resolvió: el problema es que su proyecto todavía se refiere al antiguo SDK y compila el código con sus métodos antiguos de SDK, incluido el UDID que Apple rechaza.
Solucionado en sus propiedades de compilación de SEARCH PATH Framework Search Paths Library Search Paths
elimine los valores innecesarios, como la antigua ruta sdk, y coloque allí su ruta sdk actual
limpiar todos los archivos del proyecto: Ventana-> Organizador-> Proyecto - eliminar su proyecto Producto-> Limpiar
Ahora reconstruirlo y volver a enviarlo a Apple.
Disfruta :)
No creo que el SDK de Facebook IOS use el ''uniqueIdentifier'' obsoleto. Revisé las fuentes en https://github.com/facebook/facebook-ios-sdk .
Pero cuando el SDK de Facebook se genera a partir de estas fuentes, el binario creado contiene la cadena. La única biblioteca que usa el SDK es la -> Accounts.framework <- del propio IOS.
¡Parece que Apple se ha disparado!
Editar: Eric dio la respuesta correcta. UIDevice se utiliza en facebook-ios-sdk / src / FBSession.m. El marco de Cuentas no fue el problema.
Tengo el mismo problema hoy. Actualizo el SDK de AdMob a 6.4.1 y lo vuelvo a enviar, pero sin uso. Pero pasó la verificación de carga después de desactivar el código de AdMob y no enlazar con su biblioteca.
Según el anuncio de Google, AdMob SDK 6.4 y versiones posteriores ya no tienen acceso a UDID. Obviamente, Apple no lo cree así.
Tuve el mismo problema, pero pude uniqueIdentifier
el archivo que contiene uniqueIdentifier
usando el siguiente comando en la terminal, dentro de la carpeta de mi proyecto.
grep -Rnis ''uniqueIdentifier'' *
Esto hizo eco de un montón de líneas en la ventana de mi terminal, con el culpable de ser libGoogleAdModAds.a , aunque en realidad no lo estaba usando en mi código, todavía se hacía referencia en mi proyecto y, por lo tanto, se agregaba a la compilación.
mi fuente fue: http://www.commandlinefu.com/commands/view/3573/search-for-a-string-inside-all-files-in-the-current-directory
Tuve el mismo problema. Resultó ser RevMob sdk. El último 5.9.0 (30/05/2013) parece resolver el problema.