Ich habe diese Warnung erhalten, als ich meine App mit dem Application Loader übermittelte.
The app references non-public selector in MyApp : id
Diese Warnung kann dazu führen, dass meine App möglicherweise von der Überprüfung durch Apple AppStore abgelehnt wird.
Meine App verwendet Facebook SDK iOS 3.1.1 (auch mit 3.1 versucht)
Dieses Problem tritt aufgrund des Facebook-SDK für iOS auf.
Application Loader verbietet die Verwendung der Variablen "id" von einer beliebigen FBGraphUser-Klasse (möglicherweise auch andere Variablen, die nicht getestet wurden) - z. :
id<FBGraphUser> friend
id<FBGraphUserExtraFields>user
Facebook ist ab Januar 2013 über dieses Problem informiert: Fehlerbericht
Die Problemumgehung für den Moment besteht darin, diese zu verwenden:
[user objectForKey:@"id"]
[friend objectForKey:@"id"]
anstelle von user.id
und friend.id
wie in den verschiedenen Facebook-Beispielen gezeigt.
Um nur für Benutzer zu aktualisieren, die von Suchmaschinen hierher kommen, wurde dies im neuesten Facebook SDK behoben (unser Projekt wurde gerade in die Bibliotheksversion 3.7.1 verschoben und die Validierungswarnungen gingen weg).
Für alle, die hierher kommen und nach einer Antwort suchen. Das Problem wurde in Version 3.14.1 laut Änderungsprotokoll des SDK für Facebook behoben
https://developers.facebook.com/docs/ios/change-log-3.x/
Die id -Eigenschaft für die Typen FBGraphObject
, FBGraphPlace
, FBOpenGraphAction
und FBOpenGraphObject
wurde in Zugunsten von objectID
nicht mehr unterstützt, um Übermittlungswarnungen im App Store zu vermeiden.
Die Beschreibungseigenschaft von FBLinkShareParams
und FBOpenGraphObject
wurde zugunsten von linkDescription undobjectDescription
, um die Übermittlung des App Store zu vermeiden
Warnungen.
Facebook iOS SDK 3.12 das gleiche Problem in FBGraphUser.h.
Veränderung
@property (retain, nonatomic) NSString *id;
zu
@property (retain, nonatomic) NSString *UserId;
Datei FBGraphUser.h
veränderung
@ property (keep, nonatomic) NSString * id;
durch
@ property (keep, nonatomic) NSString * FbUserId;
Die Validierungswarnungen sind auch in Version 3.13 enthalten. Ich weiß nicht, ob das bei anderen Leuten funktionieren wird, aber er ist eine schnelle Lösung, die den Fehler beseitigt hat. In FBGraphUser.h um Zeile 41 habe ich geändert ...
@property (retain, nonatomic) NSString *id;
zu
@property (retain, nonatomic) NSString *FBUserID;
Ich erhielt auch die gleiche Validierungswarnung für setProfileId, also ging ich zu FBProfilePictureView.h und änderte die Profil-ID in den Zeilen 54 und 76 in FBID.
Ich habe dann meine FBLoginView-Informationen im ViewController meines Spiels aktualisiert, um die Änderungen widerzuspiegeln. Alles, was mit FB zu tun hat, scheint in meiner App noch zu funktionieren und hat die Application Loader-Validierung bestanden.
Ich habe dieses Problem gelöst (wobei 13.1 immer noch Warnungen generiert und eine ungültige Binärdatei in itunesconnect erzeugt), indem ich die FacebookSDK-Quelle von Github ( link ) herunterlade und das Skript "build_framework.sh" im Skriptverzeichnis verwende. Dann wurde das generierte Framework zu meinem Xcode-Projekt hinzugefügt - und es wurden keine Warnungen mehr angezeigt.
Verwenden Sie Facebook iOS SDK 3.13. Es werden keine Validierungswarnungen angezeigt.