Application Loaderでアプリを送信するときにこの警告が表示されていました。
The app references non-public selector in MyApp : id
この警告は、Apple AppStoreの検証からアプリを拒否する可能性があります。
私のアプリはFacebook SDK iOS 3.1.1を使用しています(3.1でも試しました)
この問題は、iOS用のFacebook SDKが原因で発生します。
Application Loaderは、FBGraphUser関連クラスから変数「id」を使用することを禁止します(他の変数もテストせずに)。 :
id<FBGraphUser> friend
id<FBGraphUserExtraFields>user
Facebookは2013年1月現在、この問題について通知されています。 バグレポート
当面の回避策はこれらを使用することです:
[user objectForKey:@"id"]
[friend objectForKey:@"id"]
の代わりに user.id
およびfriend.id
さまざまなFacebookサンプルに示すとおり。
ここに検索エンジンから来る人のために更新するために、これは最新のFacebook SDKで修正されました(プロジェクトをライブラリバージョン3.7.1に移動し、検証警告はなくなりました)。
これについての答えを探してここに来る新しい人のために。この問題は、Facebook SDK変更ログによるとv3.14.1で修正されたようです
https://developers.facebook.com/docs/ios/change-log-3.x/
タイプFBGraphObject
、FBGraphPlace
、FBOpenGraphAction
、およびFBOpenGraphObject
のidプロパティは、App Storeを避けるためにobjectID
を支持して廃止されました提出の警告。
FBLinkShareParams
およびFBOpenGraphObject
の説明プロパティ
linkDescriptionを支持して廃止されました。objectDescription
、それぞれ、アプリストアの送信を回避するため
警告。
Facebook iOS SDK 3.12 FBGraphUser.hの同じ問題。
変化する
@property (retain, nonatomic) NSString *id;
に
@property (retain, nonatomic) NSString *UserId;
ファイルFBGraphUser.h
変化する
@property(保持、非アトミック)NSString * id;
沿って
@property(保持、非アトミック)NSString * FbUserId;
検証警告はv3.13にもあります。これが他の人々に役立つかどうかはわかりませんが、彼はエラーを取り除く簡単な回避策です。 FBGraphUser.hの41行目付近で変更しました...
@property (retain, nonatomic) NSString *id;
に
@property (retain, nonatomic) NSString *FBUserID;
SetProfileIdについても同じ検証警告が表示されたため、FBProfilePictureView.hに移動し、54行目と76行目のprofileIDをFBIDに変更しました。
次に、ゲームのViewControllerのFBLoginView情報を更新して、変更を反映させました。 FB関連のすべてが私のアプリでまだ機能しているようで、Application Loaderの検証に合格しました。
GithubからFacebookSDKソースをダウンロードし( link )、スクリプトディレクトリで "build_framework.sh"スクリプトを使用することで、この問題(13.1ではitunesconnectで警告が生成され、無効なバイナリが生成される)を解決しました。次に、生成されたフレームワークをXcodeプロジェクトに追加しましたが、警告は表示されませんでした。
Facebook iOS SDK 3.13を使用します。検証の警告はありません。