0

我尝试将移动分析与 Swift 3 一起使用,目前通过 CocoaPods 拥有 AWSCore 2.5.9 和 AWSMobileAnalytics 2.5.9,但我无法记录任何事件。我的合作伙伴已成功使用我正在使用的 Android 记录事件CognitoIdentityPoolId,并且我还确认它AmazonMobileAnalyticsFullAccess附加了策略。

我的 AppDelegate 中有以下代码didFinishLaunchingWithOptions

  let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.USWest2,
                  identityPoolId:"us-west-2:theRestOfMyID")

      let configuration = AWSServiceConfiguration(region:.USWest2,
                                                  credentialsProvider:credentialsProvider)

      AWSServiceManager.default().defaultServiceConfiguration = configuration

      let analyticsConf = AWSMobileAnalyticsConfiguration.init()

      analyticsConf.serviceConfiguration = AWSServiceManager.default().defaultServiceConfiguration

      _ = AWSMobileAnalytics.init(forAppId: "MyMobileAnalyticsAppId", configuration: analyticsConf)

这导致控制台输出:

2017-07-20 16:39:53:875 test2[7288:125553] Mobile Analytics SDK(2.0-alpha) Initialization successfully completed.
2017-07-20 16:39:53:875 test2[7288:125635] 
==========Batch Object==========
{"attributes":{"_session.id":"82e879d9-C9E6D9C7-20170720-233953870","ver":"v2.0","_session.startTime":"2017-07-20T23:39:53.872Z"},"event_type":"_session.start","timestamp":"2017-07-20T23:39:53.873Z"}
2017-07-20 16:39:53:876 test2[7288:125635] Event: '_sess...' recorded to local filestore

我有一个按钮,用于记录事件,然后尝试提交事件:

 let eventClient = AWSMobileAnalytics(forAppId: "MyMobileAnalyticsAppId").eventClient

      guard let client = eventClient else {
         print("Error creating AMA event client")
         return
      }
      guard let event = client.createEvent(withEventType: "test_50_logIn") else {
         print("Error creating AMA event")
         return
      }
      event.addAttribute("username", forKey: "sample")
      event.addAttribute("device", forKey: "ios")
      client.record(event)

      client.submitEvents()

但是,submitEvents 总是会触发以下错误,这两天我一直无法解决。结果,我无法记录单个 iOS 事件。

2017-07-20 16:46:01:736 test2[7566:129412] Unable to successfully deliver events to server. Error Message:Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo={NSUnderlyingError=0x6080002438a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1003 "(null)" UserInfo={_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12}}, NSErrorFailingURLStringKey=https://mobileanalytics.us-west-2.amazonaws.com/2014-06-05/events, NSErrorFailingURLKey=https://mobileanalytics.us-west-2.amazonaws.com/2014-06-05/events, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, NSLocalizedDescription=A server with the specified hostname could not be found.}

我在集成指南下看不到其他步骤,有谁知道如果 ID 在 android 集成中工作得很好,可能会出现什么问题?谢谢!

4

1 回答 1

2

移动分析在美国西部 ( Docs )中不可用。

问:Amazon Mobile Analytics 服务在哪些 AWS 区域可用?

目前,Amazon Mobile Analytics 在 AWS美国东部(弗吉尼亚北部)区域可用。

您只需要更改您的区域AWSServiceConfiguration

let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: credentialsProvider)
let analyticsConfiguration = AWSMobileAnalyticsConfiguration()
analyticsConfiguration.serviceConfiguration = serviceConfiguration
_ = AWSMobileAnalytics(forAppId: "MyMobileAnalyticsAppId", configuration: analyticsConfiguration)

端点:
https ://mobileanalytics.us-west-2.amazonaws.com => 不起作用
https://mobileanalytics.us-east-1.amazonaws.com/ =>可以

于 2017-07-24T04:33:33.773 回答