我的应用商店评论存在问题。我从app商店收到这些消息。 第一次审查 “当我们输入Instagram帐户信息时,你的应用程序崩溃在运行iOS 9.3.5的iPad和iPhone上连接到IPv6网络。”
第二次审查 “当我们输入Instagram帐户信息时,你的应用程序在运行iOS 9.3.5的iPad和iPhone上崩溃连接到IPv6网络。 使用您的应用时发生这种情况:离线“
在我的应用中,我使用了Alamofire和Alamofire Object Mapper。我在uiwebview中发送请求,然后等待获取具有访问令牌的URL,之后我使用MagicalRecords保存在Core Data中。在我的设备上,我没有崩溃。
所以我的代码部分处理访问令牌上的url
guard let url = url else {
return nil
}
if !isRedirectURL(url) {
return nil
}
let components = url.absoluteString.componentsSeparatedByString("=")
if components.count == 2 {
return components.last
}
else {
return nil
}
所以我检查url是重定向还是没有,appRedirectURL-它是来自Instagram Api的重定向网址
guard let appRedirectURL = NSURL(string: appRedirectURL) else {
return false
}
//check if both urls have host
guard let host = appRedirectURL.host, urlHost = url.host else {
return false
}
return appRedirectURL.scheme == url.scheme && host == urlHost
保存在
但就我而言,我这样做了:
但是我的设备上没有ipv6,这是个人热点,只有ipv4。也许,这是问题,我应该支持第一台设备???
所以,我也有来自crashlytics的崩溃日志,但是他们非常奇怪,他们表明我在CoreData中遇到了问题。
所以这是我的第一个功能
func updateInstagramAccount(account: InstagramUser, completion: CoreDataSuccessBlock?) {
CoreDataManager.sharedInstance.save({ (savingContext) in
if let objectId = account.objectId, instagramAccount = InstagramAccount.createIfNeededWhereKey(InstagramAccount.Attributes.instagramId, equalTo: objectId, context: savingContext) as? InstagramAccount {
instagramAccount.username = account.username
instagramAccount.fullName = account.fullName
instagramAccount.profilePictureURLPath = account.profilePictureURL?.absoluteString
instagramAccount.website = account.website?.absoluteString
instagramAccount.bio = account.bio
instagramAccount.customizedBio = account.bio
if let follows = account.counts?.follows, followedBy = account.counts?.followedBy, media = account.counts?.media {
instagramAccount.followsCount = Int16(follows)
instagramAccount.followedByCount = Int16(followedBy)
instagramAccount.mediaCount = Int16(media)
}
instagramAccount.objectId = account.objectId
}
}) { (success, error) in
completion?(success, error)
}
}
我知道使用ipv6时,InstagramUser对象的映射有错误,但我确切地知道并且无法检查。
你能问下一个问题:
更新 我有这个url来处理访问令牌 https://mywebsite.com/#access_token=XXXXXXX.XXXXXX.XXXXXXXXXXXXXXXXXXXX
可能是在ipv6上的情况我会得到不同的网址吗?