我一直在努力让我的应用程序在应用程序商店批准了相当一段时间了。每次苹果都拒绝,说他们无法在ipv6网络中加载内容。
首先,我来自尼泊尔,这里的isp直到现在才在我们的连接中提供ipv6支持。我在加拿大和美国交了一些朋友,他们是我的外部测试者,我的应用在那里运行得很顺利。正如苹果公司建议的那样,我在我的mac mini上创建了一个虚拟ipv6热点,内容在尼泊尔也加载得很好,但当他们试图检查时,他们总是说无法加载。苹果的审查小组怎么了,我做了他们建议的所有事情。
我正在使用Alamofire 3.4.1进行联网,并研究了一下发现,Almofire肯定是ipv6的投诉。
我真的需要应用程序在应用程序商店尽快。
我找到了一个解决方案,虽然我不知道这是否是最佳实践,但我的应用程序被接受了。我所做的只是在alamofire的NetworkReachabilityManager类中添加了一个字符。
public convenience init?() {
var address = sockaddr_in()
address.sin_len = UInt8(sizeofValue(address))
address.sin_family = sa_family_t(AF_INET)
guard let reachability = withUnsafePointer(&address, {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}) else { return nil }
self.init(reachability: reachability)
}
改变行
address.sin_family = sa_family_t(AF_INET)
address.sin_family = sa_family_t(AF_INET6)
如果这样做可能会有什么问题,请告诉我。