81 votes

Mon application a été rejetée juste pour l’utilisation du cadre d’appui Ad. Quelle 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.12

Nous 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':

catégorie: ASIdentifierManager
sélecteur: advertisingIdentifier
cadre: AdSupport.cadre

Si vous êtes planification pour 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 l' 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? Merci

112voto

Adam Points 17726

Dans un Terminal :

  1. Allez dans le dossier racine de votre projet
  2. Type : `` (le point à la fin est critique)

Cette récursive vérifier chaque fichier et vous donner le nom de la bibliothèque incriminée.

(dans mon cas, c’est vague)

17voto

Glauco Neves Points 403

Mise à jour

Google a sorti Google Analytics Services SDK iOS v3.03c qui supprime les AdSupport.cadre de dépendance par défaut.

La 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 "la Cible --> 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 "Cible --> 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é à "la Cible --> 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. Other Linker Flags

L'espoir d'aider quelqu'un.

Désolé pour mon anglais. =]

13voto

Fradow Points 156

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.

Voici 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.

4voto

user2844801 Points 245

Il s'avère que Testflight v2.2.0 était le conflit. Ils l'ont depuis corrigé en fonction de leur changelog: Consolidate both SDK versions into one which removes all access to ASIdentifierManager

4voto

gmogames Points 571

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 d'utilisation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X