2017-07-21 65 views
0

我试图使用Swift 3移动分析,目前有通过CocoaPods AWSCore 2.5.9和AWSMobileAnalytics 2.5.9,但我无法记录任何事件。我的合作伙伴已使用Android成功记录了与我使用的CognitoIdentityPoolId相同的事件,并且我还确认它已附加AmazonMobileAnalyticsFullAccess策略。AWS分析 - swift 3 - iOS?

我有内部下面的代码我的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整合完全正常工作?谢谢!

回答

2

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

问:哪些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/ =>是否

+0

你是现货,因为我在android上首先实现了这一点,而在android中你不必处理USEast。我所有的AWS工具都在美国西部,因此分析工作时我使用西部地区,但它没有工作IOS,这是意外的事情... – TheQ