iOS アプリ ストアにライブ ゲームがあり、現在、Facebook との統合を追加しています。アプリ リクエストでディープ リンクをテストしようとしていますが、受信者側でローカルにビルドされたアプリが起動されません。代わりに、アプリ ストアのアプリのページに移動します。これを機能させるには、何を変更する必要がありますか (FB アプリの設定? Xcode のビルド設定?)。可能性があるとしか思えない…
編集: iOS 6.1 に対してビルドする最新の SDK (3.7.1) を使用していることを言及する必要があります。
EDIT 2 : スクリーンショットを撮り、たくさんのものを黒く塗りつぶす以外に、FB アプリの構成がどのように設定されているかを説明します。
では、
(Xcode がアプリをビルドしている ID と一致する) と(ストア内のライブ アプリと一致する)を含むSettings -> Basic
からデータが入力されているだけで、両方とも有効であり、空です。アプリも入っています。に、私は(に) と(に) を持っています。それ以外はバニラだと思います。Native iOS App
Bundle ID
iPhone/iPad App Store ID
Facebook Login
Deep Linking
URL Scheme Suffix
Sandbox Mode
Settings -> Permissions
publish_actions
User & Friend Permissions
publish_stream
Extended Permissions
プロジェクト plist では、Bundle identifier
FB アプリの設定で説明したものと同じです。唯一の考えられる不一致はFacebookAppID
、plist が、私が使用しているこの特定の Facebook テスト アプリと一致しないことです...それは問題ではないと思いますが、言及する価値はあります。
実際にリクエストを送信する限り、コードは次のとおりです。
[FBWebDialogs presentRequestsDialogModallyWithSession:nil
message:message
title:nil
parameters:nil
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
// handle response
}];
接続するFBアプリを決定するために、これも以前に行います。
NSString *path = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
#if GO_TO_TEST_APP
NSString *fbAppId = [dict objectForKey:@"TestFacebookAppID"];
#else
NSString *fbAppId = [dict objectForKey:@"FacebookAppID"];
#endif
NSAssert(fbAppId, @"Failed to get Facebook app id from plist file!");
[FBSettings setDefaultAppID:fbAppId];
繰り返しますが、リクエストは正しく送信されます (ただし、ダイアログがポップアップしたときにここで見られるのと同じ問題が発生します)。受信者の Facebook アカウントでリクエストを確認できます。アプリがデバイスに既にインストールされているという事実にリダイレクトが反映されないだけです(Xcodeでローカルにビルドされていますが)。