Mon application était tout simplement rejeté pour l'utilisation de l'Ad cadre de soutien. La bibliothèque est responsable?
Il s'agissait simplement d'une mise à jour qui n'a pas changer quoi que ce soit à voir avec le rejet de la raison. Voici la réponse du centre de résolution:
Raisons
Programme De L'Accord De Licence
PLA 3.3.12Nous avons trouvé votre application utilise l'iOS Identificateur de la Publicité, mais ne comprennent pas l'annonce de la fonctionnalité. Ce n'est pas compatible avec les termes du Programme pour Développeurs iOS, Contrat de Licence, tel que requis par l'App Store d'Examen des lignes Directrices.
Plus précisément, l'article 3.3.12 du Programme pour Développeurs iOS, indique l'Accord de Licence:
"Vous et Vos Applications (et à tout tiers avec lequel vous avez contracté pour servir la publicité), peuvent utiliser la Publicité d'identification, et que toute information obtenue par le biais de l'utilisation de la Publicité en Identifiant, dans le seul but de servir la publicité. Si un utilisateur réinitialise la Publicité Identifiant, Vous acceptez de ne pas combiner, de comparer, de lien ou autrement associés, directement ou indirectement, l'état de la Publicité Identifiant et toute l'information dérivée avec la réinitialisation de la Publicité Identifiant."
Veuillez vérifier votre code, y compris les bibliothèques de tiers - pour supprimer toutes les instances de l':
classe: ASIdentifierManager
sélecteur: advertisingIdentifier
cadre: AdSupport.cadreSi vous envisagez d'intégrer l'ads dans une future version, merci de supprimer la Publicité Identifiant de votre application jusqu'à ce que vous avez inclus ad fonctionnalité.
Pour aider à localiser la Publicité Identifiant, utilisez le “nm” de l'outil. Pour plus d'informations sur le “nm” de l'outil, ouvrez une fenêtre de terminal et saisissez: “l'homme nm.”
Si vous n'avez pas accès aux bibliothèques de la source, vous pouvez être en mesure de rechercher le binaire compilé à l'aide de la "chaînes" ou "otool" outils de ligne de commande. Les "chaînes" des listes d'outils, les méthodes que les appels à la bibliothèque, et "otool -ov" affichera la liste de l'Objective-C classe de structures et de leurs méthodes définies. Ces techniques peuvent vous aider à réduire vers le bas où le code problématique réside.
Le tiers des bibliothèques que j'utilise est la version la plus récente de parse.com sdk, latest version of flurry analytics, and version 2.2 of test flight
. Quelqu'un sait quelle bibliothèque est le problème? Grâce
J'ai vu des gens avoir ce problème avec google analytics
Cependant, la principale raison pour laquelle vous avez signalé est TestFlight, pour qui cette identification est essentielle: testflightapp.com/sdk/ios/doc/2.0.0 - "Le AdSupport.cadre est nécessaire pour iOS 6.0+, afin d'identifier de manière unique les utilisateurs afin que nous puissions estimer le nombre d'utilisateurs de votre application (à l'aide de ASIdentifierManager). Vous pouvez maillon faible dans le cadre de votre application. Si votre application ne prend pas en lien avec la AdSupport.cadre de, la TestFlight SDK charge automatiquement pour des applications en cours d'exécution sur iOS 6.0+."
Il s'avère que les Testflight v2.2.0 est le conflit. Depuis, elles ont fixé selon leur changelog: Consolider les deux versions du SDK dans un qui supprime tous les accès à ASIdentifierManager
Si le AdSupport.le cadre est lié facultatif, qui permettent de résoudre le problème avec l'App Store?
OriginalL'auteur user2844801 | 2014-01-31
Vous devez vous connecter pour publier un commentaire.
Dans Le Terminal:
grep -r advertisingIdentifier .
(le point à l'extrémité est de la critique)Cela permettra de vérifier de manière récursive tous les fichiers, et vous donner le nom de la délinquance de la bibliothèque.
(dans mon cas, c'était le Déluge)
que faisons-nous faire à ce sujet ? on ne peut pas supprimer notre analytics totalement...
merci pour la fixation de ma faute de frappe! Désolé à ce sujet - copier/coller d'erreur :(.
lorsque cela se produit, vous devez supprimer le Tourbillon de vos applications, et supposons que le Déluge est prise de panique et se donner une nouvelle mise à jour TRÈS bientôt. L'inconvénient de l'utilisation libre, 3rdparty analytics est que, parfois, ils vis-à ceci. J'ai eu la même avec le Déluge, TestFlight, Facebook, Analyser, et quelques autres dans le passé. Il se passe. Mais si vous n'êtes pas payer pour le service, vous ne pouvez pas beaucoup de se plaindre 🙂
Pouvons confirmer que le Déluge 4.3.2 ne correspond pas advertisingIdentifier lors de l'utilisation de la commande ci-dessus.
OriginalL'auteur Adam
Mise à jour
Google a sorti Google Analytics Services SDK iOS v3.03c qui supprime les AdSupport.cadre de dépendance par défaut.
Pleine entrée de changelog pour la Version 3.03 c (19 février 2014): https://developers.google.com/analytics/devguides/collection/ios/changelog
Vieux Awnser
Mon problème était avec Google Analytics et TestFlight.
Pour TestFlight je viens de mettre à jour la bibliothèque à la version 2.2.1 (https://www.testflightapp.com/sdk/ios/release_notes/2.2.1/).
Mais pour la mise à jour de Google Analytics, j'ai dû enlever le -ObjC drapeau. Mais comme je l'ai utiliser Cocoapods de gérer une partie de la troisième bibliothèques, je ne pourrais pas simplement le supprimer. J'ai donc fait le suivi:
1 - a commencé la mise à jour de la libGoogleAnalytics.une Version 3.03 (5 février 2014)
2 - ensuite, un aussi supprimé le AdSupport.cadre
3 - ajout de "-force_load\ "${PROJECT_DIR}/Source/Bibliothèque/GoogleAnalyticsServicesiOS_3.03a"" sous "Target --> Paramètres de construction --> d'Autres Drapeaux de l'éditeur de liens"
(Notez que dans mon projet, la GoogleAnalytics est à l'intérieur /à la Source/Bibliothèque/dossier, et vous devez configurer votre propre)
Mais comme je l'ai coudn't retirez -ObjC drapeau j'ai cherché comment utiliser -force_load drapeau avec Cocoapods, puis j'ai trouvé deux liens utiles:
1 - https://github.com/CocoaPods/CocoaPods/issues/712
2 - http://www.deanmao.com/2012/12/31/linker-error-using-cocoapods/
Pour résumer, j'ai changé le -ObjC indicateur "-force_load $(TARGET_BUILD_DIR)/libPods.un" également sous "Target --> Paramètres de construction --> d'Autres Drapeaux de l'éditeur de liens"
Mais encore une fois, quand j'ai essayé de publier mon application j'ai une erreur me disant que le compilateur ne trouve pas libPods.un, je suis donc allé à "Target --> Paramètres de construction --> d'Autres Drapeaux de l'éditeur de liens --> Libération" et de modifier cette chaîne $(TARGET_BUILD_DIR) ${BUILT_PRODUCTS_DIR}.
Donc mes Autres Drapeaux de l'éditeur de liens est devenu comme l'image ci-dessous.
L'espoir d'aider quelqu'un.
Désolé pour mon anglais.
=]
Êtes-vous à l'aide de Google Tag Manager? Parce que si vous êtes, alors cette solution ne fonctionne pas.
Pas que je sache (ce qui n'Tag Manager même le faire?) C'est le combiné GA / Tag Gestionnaire de fichier de bibliothèque si
Vous pouvez également modifier manuellement les Gousses/Gousses.xcconfig de
OTHER_LDFLAGS
directement.Google a sorti Google Analytics Services SDK iOS v3.03c aujourd'hui. J'ai mis à jour ma réponse. =]
OriginalL'auteur Glauco Neves
Pour moi, Flurry Analytics et TestFlight ont été à la fois le problème.
Pour TestFlight, c'est aussi simple que la mise à jour. La version 2.2.1 ne causera pas de problème (j'ai vérifié à l'aide de cordes, comme Apple suggèrent)
Pour le Rafale, il n'existe actuellement pas de solution en dehors de la suppression de Vague, et contrairement à Lou de mauvaises Herbes suggestion, même si AdSupport.le cadre n'est pas lié à votre application sera rejetée.Ici est le Déluge de soutien de réponse :
"je vous Remercie pour atteindre le Déluge. Nous avons récemment appris que Apple a rejeté certaines applications, il croit à l'aide de l'Identificateur de la Publicité (IDFA) sans y compris les annonces de la fonctionnalité. Veuillez noter que le Déluge ne recueille pas l'IDFA, à moins qu'une application inclut la AdSupport.cadre de l'annonce de la fonctionnalité. Nous sommes à la recherche de clarification avec Apple et nous mettrons à jour nos clients touchés comme nous en apprendre davantage au cours des prochains jours."Rafale vient de sortir la version 4.3.2 de leur SDK, qui traitent spécifiquement de ce problème.
OriginalL'auteur Fradow
S'avère la Testflight v2.2.0 est le conflit. Ils ont, depuis, il fixe en fonction de leur changelog:
Consolidate both SDK versions into one which removes all access to ASIdentifierManager
OriginalL'auteur user2844801
Crashlytics était le problème. Nous avons eu quelques apps rejeté à cause de cela. Mais j'ai déjà discuté avec Crashlytics et ils ont sorti une nouvelle mise à jour aujourd'hui (version 2.1.6) qui corrigera ce problème.
Plusieurs bibliothèques ont la AdSupport.cadre, mais ils n'ont pas l'utiliser, sauf si expressément demandé. Crashlytics appelait le cadre, car il avait pour vérifier si l'application avait le soutien pour les annonces. Et que le changement a été mis en œuvre sur la version 2.1.5
Donc, si vous utilisez crashlytics, c'est la raison la plus probable. Pour remédier à cela, tout simplement ré-archive de votre application afin d'crashlytics pouvez utiliser la nouvelle version, avec ce correctif.
Réponse de Crashlytics de l'Équipe:
"Nous avons poussé une mise à jour pour ce - pouvez-vous construire et exécuter votre application avec le Mac app open de sorte qu'il peut mettre à jour votre kit de développement? Vous serez bon d'aller après que! Tenez-moi au courant après vous soumettre de nouveau :)"
PS: C'est qui commence à se produire parce que Apple semblent avoir changé leur politique de ADSupport utilisation.
OriginalL'auteur gmogames
J'avais déjà écrit la suite, dans les commentaires, diriger les gens vers les "chaînes" ou "otool" les commandes du terminal. Cependant, j'aime beaucoup la réponse de l'utilisation de grep. De sorte que vous pouvez l'essayer en premier. Ma suggestion est d'ajouter le préfixe "git" qui commande, parce que c'est tellement plus rapide:
Si cela ne fonctionne pas, alors essayez (posté plus tôt):
Ce qui suit est ce que j'avais déjà écrit dans un commentaire ci-dessus, comme un how-to pour les commandes du terminal:
Vous pouvez chercher dans les fichiers du projet dans Xcode, ou vous pouvez essayer de retirer la AdSupport cadre pour voir ce qui ne parvient pas à construire/moment de l'exécution.
Pour l'utilisation du terminal, cliquez sur Spotlight (la recherche) et le type de Terminal. Attendez qu'il apparaisse comme une Application dans les résultats de recherche.
Une fois dans le Terminal, tapez "cd" suivi d'un espace, puis de faire glisser et de déposer votre Xcode dossier de création à partir du Finder dans le Terminal. Cela devrait automatiquement le type de nom de dossier. Appuyez sur Entrée, et il va changer de répertoire (cd) à ce dossier.
À partir de là, le type
strings
puis un espace, puis le nom de fichier pour votre bibliothèque ouotool
, un espace et le nom de fichier de la bibliothèque. Vous devriez être en mesure de cliquer sur l'ONGLET à l'auto-complétion des noms de fichiers.OriginalL'auteur Louis St-Amour
Mon application a également été rejetée, avec la même erreur! J'ai trouvé une occurrence de advertisingIdentifier dans le dernier Facebook SDK (3.12). Peut-être que vous pouvez vérifier votre bibliothèque pour une occurence avec la méthode ci-dessous:
J'ai ouvert la FacebookSDK.cadre d'une bibliothèque dans le terminal et tapé la commande suivante
otool -v -s __TEXTE __objc_methname FacebookSDK | grep advertisingIdentifier
Mais je ne sais pas quoi faire. A mon app rejetée en raison de cette référence? Si oui que faire si je veux utiliser facebook fonctionnalités dans mon application?
Merci pour la réponse! J'ai fait les modifications et soumis de nouveau mon application, j'espère qu'elle ne sera pas rejetée à nouveau 🙂
a été votre application, approuvé par Apple après avoir apporté les modifications ci-dessus?
Oui, il a été approuvé!
OriginalL'auteur bolonn
C'est un peu plus compliqué qu'il ne paraît sur la surface. Après quelques essais, j'ai trouvé que le AdSupport Cadre est lié, même si seulement à accéder directement aux classes qui sont référencés dans le AdSupport Cadre. Ironiquement,
[AsIdentifierManager class]
, qui est utilisée dans un grand nombre de bibliothèques tierces pour vérifier si oui ou non le AdSupport Cadre a été liée, cause la AdSupport Cadre à être lié. D'affaiblir la classe à l'aide deNSClassFromString(@"AsIdentfierManager")
n'entraîne pas la AdSupport cadre pour être automatiquement liés. Bien sûr, la plupart du temps, ce code sera dans les bibliothèques de tiers, de sorte que vous n'aurez pas beaucoup de contrôle sur elle, cependant, c'est ce qu'il se passe.J'ai construit un exemple de projet sur GitHub qui illustre ce comportement à l'aide du Segment.io-cadre.
https://github.com/distefam/AdSupportDemo
OriginalL'auteur Michael DiStefano
Flurry Analytics utilise cette API.
Terminal de sortie:
Déluge dit que le sélecteur n'est pas appelée si AdSupport cadre n'est pas lié.
J'ai donc enlevé le cadre et essayé de soumettre de nouveau.
OriginalL'auteur Nir Golan