gpt4 book ai didi

ios - 如何为 iOS 应用程序测试设置仅 IPv6 网络?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:59 26 4
gpt4 key购买 nike

我第一次了解到 AppStore 中发布的所有新应用程序都强制支持仅 IPv6 网络是在昨天,当时我的应用程序被拒绝,Apple 指出这是原因。

因此,我一直在尝试从头开始重现这一点。我已经完成了 Apple's guide同样,设置了 NAT64 网络并将我的 iPhone 连接到它 ( screenshot )。

但是,当我转到 test-ipv6.com 或任何其他网站检查设备上的 IPv6 连接时,它显示“未检测到 IPv6 地址”消息.此外,我无法加载 ipv6.google.com 据报道它只能在 IPv6 网络上加载(如果我错了请纠正我)。

我是不是遗漏了什么,或者我还能做些什么来测试我的应用程序的纯 IPv6 网络兼容性?

附言:当我在此 NAT64 网络中尝试时,我的应用程序运行正常并且页面加载正常。但是,在 Apple 的拒绝答复中,这些 API 最终失败了。

最佳答案

您在使用 AFNetworking 吗?如果是,请更新您的类(class)。在类 AFNetworkReachabilityManager 的 AFNetworking 库中更改代码中的以下行

将 AF_INET 更改为 AF_INET6;

+ (instancetype)sharedManager {
static AFNetworkReachabilityManager *_sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
struct sockaddr_in address;
bzero(&address, sizeof(address));
address.sin_len = sizeof(address);
address.sin_family = AF_INET6; //Change AF_INET TO AF_INET6
_sharedManager = [self managerForAddress:&address];
});

return _sharedManager;
}

否则,您使用什么类或库进行网络连接?

编辑:根据您的要求,这里有一个关于如何测试您的应用程序并检查它是否准备好 ipv6 的教程:

http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/

Alternate link over Waybackmachine

它涵盖了在您的 Mac 中创建一个仅 IPv6 NAT64 的网络,然后将 Internet 连接从您的 Mac 共享到您的其他 wifi(或蓝牙或其他)设备。

然后您可以在您的应用中进行所有测试,确保所有调用都是通过 ipv6 网络进行的。

编辑2:

那些网站将无法看到您的 ipv6 ip 地址。如果您使用该教程,则 ipv6 地址是一个私有(private)(在您的网络内部)地址。它用于在 iPhone 和 Mac 之间进行通信。Internet 网站看到的是您的 PUBLIC ip,它是由您的 internet 服务提供商提供给您的调制解调器的,通常是 ipv4 网络。

因此得出结论:您的应用正在使用其 ipv6 地址。那些测试网站不会检测到它,因为它们只能看到您的路由器/调制解调器的公共(public)地址。

请引用This link阅读更多关于公共(public)和私有(private) IP 地址的信息。

关于ios - 如何为 iOS 应用程序测试设置仅 IPv6 网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39914245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com