AWS MobileHub と SNS を使用している iOS アプリがあります。MobileHub 2.4.14 へのアップグレード中に、credentialsProvider.logins の廃止に遭遇しました。私が見つけることができた唯一の解決策は、開発者の認証済み ID 用に作成され、CognitoSync を対象としていたにもかかわらず、私の状況に対処しているように見えるこのAWS サンプル コードに誘導するこのSO 投稿でした (SNS が必要なだけです)。
サンプル コードをアプリに適合させた後、Cognito セキュリティ トークンを受け取った後、次のランタイム エラー メッセージが表示されます。
2017-02-10 17:19:18.449 XXXX[9808:4068888] AWSiOSSDK v2.4.14 [Debug] AWSURLResponseSerialization.m line:63 | -[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | Response body:
{"message":"Identity pool isn't set up for SNS"}
2017-02-10 17:19:18.450 XXXX[9808:4068888] AWSiOSSDK v2.4.14 [Error] AWSCognitoService.m line:338 | __37-[AWSCognito registerDeviceInternal:]_block_invoke.262 | Unable to register device: Error Domain=com.amazonaws.AWSCognitoSyncErrorDomain Code=5 "Identity pool isn't set up for SNS" UserInfo={NSLocalizedFailureReason=InvalidConfigurationException:, NSLocalizedDescription=Identity pool isn't set up for SNS}
エラーメッセージは、何が問題なのかを正確に教えてくれません。アップグレード前と同じ ID プールを使用しています。ID プールの SNS ロールには、すべての SNS 関連アクションに対するアクセス許可が既にあります。
エラーが AWSCognitoSyncErrorDomain にあることが気になり、CognitoSync を使用したくありません。このエラーはサンプル コードの副作用ですか? CognitoSync を使用せずに credentialsProvider.logins の廃止に対処するサンプル コードはありますか?
ありがとう