it-swarm.com.ru

Приложение ссылается на закрытый селектор в id (Facebook SDK iOS)

У меня было это предупреждение при отправке приложения с помощью Application Loader.

The app references non-public selector in MyApp : id

Это предупреждение может потенциально отклонить мое приложение из проверки Apple AppStore.

Мое приложение использует Facebook SDK iOS 3.1.1 (также пробовал с 3.1)

43
Kalzem

Эта проблема возникает из-за Facebook SDK для iOS.

Загрузчик приложений запрещает использование переменной "id" из любого класса, связанного с FBGraphUser (возможно, другие переменные тоже не тестировались) - например, : 

id<FBGraphUser> friend
id<FBGraphUserExtraFields>user

Facebook информируется об этой проблеме с января 2013 года: Отчет об ошибках

Обходной путь на данный момент заключается в использовании этих:

[user objectForKey:@"id"]
[friend objectForKey:@"id"]

вместо user.id и friend.id, как показано в разных примерах Facebook.

65
Kalzem

Просто для обновления людей, которые приходят сюда из поисковых систем, это исправлено в последнем Facebook SDK (только что переместили наш проект в библиотеку версии 3.7.1 и предупреждения о проверке исчезли). 

3
Iain Barclay

Для тех, кто приходит сюда в поисках ответа на этот вопрос. Кажется, проблема была исправлена ​​в v3.14.1 в соответствии с журналом изменений Facebook SDK

https://developers.facebook.com/docs/ios/change-log-3.x/

  • Свойство id для типов FBGraphObject, FBGraphPlace, FBOpenGraphAction и FBOpenGraphObject устарело в Пользу objectID, чтобы избежать предупреждений о подаче в магазин приложений.

  • Свойство description FBLinkShareParams и FBOpenGraphObject
    устарела в пользу linkDescription и
    objectDescription, соответственно, чтобы избежать отправки в магазин приложений
    Предупреждения.

3
Out of Orbit

Facebook iOS SDK 3.12 та же проблема в FBGraphUser.h.

+ Правка

@property (retain, nonatomic) NSString *id;

в

@property (retain, nonatomic) NSString *UserId;
2
gabemorales

Файл FBGraphUser.h  

менять 

@property (retain, nonatomic) NSString * id;

от

@property (сохранить, неатомный) NSString * FbUserId;

0
Carlos Avalos

Предупреждения проверки также присутствуют в v3.13. Я не знаю, сработает ли это для других людей, но он - быстрый обходной путь, который избавился от ошибки. В FBGraphUser.h вокруг строки 41 я изменился ...

@property (retain, nonatomic) NSString *id;

в 

@property (retain, nonatomic) NSString *FBUserID; 

Я также получал то же предупреждение о проверке setProfileId, поэтому я перешел к FBProfilePictureView.h и изменил profileID в строках 54 и 76 на FBID. 

Затем я обновил свою информацию FBLoginView в ViewController моей игры, чтобы отразить изменения. Все, что связано с FB, все еще работает в моем приложении, и оно прошло проверку Application Loader.

0
ASHISHT

Я решил эту проблему (где 13.1 по-прежнему генерирует предупреждения и выдает недопустимый двоичный файл в itunesconnect), загрузив исходный код FacebookSDK из Github ( link ) и используя скрипт «build_framework.sh» в директории scripts. Затем добавил сгенерированный фреймворк в мой проект Xcode - и больше не получал предупреждений.

0
Nicolinux

Используйте Facebook iOS SDK 3.13. не будет никаких проверочных предупреждений. 

0
Nookaraju