十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
iOS模拟器是苹果Xcode IDE的一部分,主要用来为Mac,iPhone和iPad创建应用程序,为了给iOS模拟器打包应用程序,利用–package 在命令行上执行ADT并使用–target来指定其中一个目标。比如,对于检测注释目标你可以执行下面的: adt -package -target ipa-test-interpreter-simulator -storetype pkcs12 -keystore Certificates.p12 -storepass password Sample_ipa_name sample_ipa-app.xml sample_ipa.swf -platformsdk path to iOS Simulator SDK 一个通向iOS模拟器SDK的示例路径是 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk对于调试注释目标,你可以执行以下命令: adt -package -target ipa-debug-interpreter-simulator -connect -storetype pkcs12 -keystore Certificate.p12 -storepass password Sample_ipa_name sample_ipa-app.xml sample_ipa.swf -platformsdk path to iOS Simulator SDK请注意,这个调试目标的命令没有指定IP地址。这是因为模拟器总是在本地机器上启动,因此就不需要IP地址。一、安装和启动应用程序打包好应用程序后,你就可以利用ADT和–installApp将它安装到iOS模拟器中,比如: adt -installApp -platform ios -platformsdk path to iOS Simulator SDK -device ios-simulator -package sample_ipa_name.ipa安装之后,你可以利用ADT和–launchApp在iOS模拟器上启动并运行它,比如: adt -launchApp -platform ios -platformsdk path to iOS Simulator SDK -device ios-simulator -appid Sample_ipa_name这个appid值被指定在应用程序描述文件(app.xml)的 标签中。Flash Builder将appid作为应用程序的默认名。这个应用程序可以直接通过UI来卸载。或者,你可以在命令行中使用–uninstallApp来卸载: adt -uninstallApp -platform ios -platformsdk path to iOS Simulator SDK -device ios-simulator -appid Sample_ipa_name注意:如果你使用ADT卸载了一个程序,它的图标仍然会保留在iOS模拟器中,直到你重新启动模拟器。
创新互联专业为企业提供湘阴网站建设、湘阴做网站、湘阴网站设计、湘阴网站制作等企业网站建设、网页设计与制作、湘阴企业网站模板建站服务,10年湘阴做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
6月1日起所有iOS应用必须支持IPv6-only网络
“在WWDC 2015上,我们宣布iOS 9开始向IPv6-only网络服务过渡。自2016年6月1日起,开发者所有提交至App Store的应用必须支持IPv6-only网络。由于大部分现有应用程序已经通过NSURLSession和CFNetwork APIs兼容该协议,因此这些应用无需做出调整。如果你依然使用IPv4 API的或者硬件编码IP地址,那么你需要手动调整应用代码来适应新变化。”
另外苹果还提供了相关资料,帮助开发者开始向添加对IPv6-only网络的支持过渡,其中包括了WWDC 2015大会期间的开发者文档。
值得一提的是,苹果日前还宣布6月1日起所有提交至应用商店的watchOS应用都必须要是原生应用,即不再依靠iPhone运行。今年6月份的WWDC 2016看来是有大动作,大家拭目以待吧。
企 鹅
48五五五3030
之前我们曾对iOS应用审核被拒的主要原因以及比重进行过一番统计,其结果显示:因IPv6问题而被拒的应用约占样本总数的15.1%,且该问题也占据了“近期iOS应用十大被拒原因榜”的第2名。
近一段时间以来,因IPv6问题而被拒的情况有增无减,个别应用尝试多种方法仍未过审,部分CP叫苦不迭。故心疼他们的我将IPv6详细内容整理了出来,以供参考。
一、IPv6常见被拒理由
据统计结果显示,因IPv6问题导致被拒的主要原因有以下几种:存在网络连接问题、无法加载任何内容、无法访问App......部分被拒理由原文如下↓↓↓
1.被拒理由原文:
Performance-2.1WediscoveredoneormorebugsinyourappwhenreviewedoniPadiPhonerunningiOS10.2onWi-FiconnectedtoanIPv6network.Specifically,therewasnetworkconnectingissuewithinyourapp.…
翻译:
在与连接到IPv6网络的Wi-Fi上运行iOS10.2的iPad和iPhone上进行审查时,我们在应用中发现了一个或多个错误。
具体来说,您的应用中存在网络连接问题。
……
2.被拒理由原文:
Performance–2.1WediscoveredoneormorebugsinyourappwhenreviewedoniPadiPhonerunningiOS10.3.1onWi-FiconnectedtoanIPv6network.Specifically,wewereunabletoloadanycontent.…
当在连接到IPv6网络的Wi-Fi上运行iOS10.3.1的iPad和iPhone上查看时,我们在应用中发现了一个或多个错误。
具体来说,我们无法加载任何内容。
3.被拒理由原文:
Performance–2.1WediscoveredoneormorebugsinyourappwhenreviewedoniPadiPhonerunningiOS10.3.1onWi-FiconnectedtoanIPv6network.Specifically,wewerestillunableaccessyourapp……
当在连接到IPv6网络的Wi-Fi上运行iOS10.2的iPad和iPhone上进行审查时,我们在应用中发现了一个或多个错误。
具体来说,我们仍然无法访问您的应用。
二、苹果针对IPv6的审核机制流程
从去年6月1日开始,苹果规定所有提交至AppStore的应用必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准。
不过很多开发者反应即使严格按照苹果提供的方法来测试,也依然被拒。其实这和对苹果的审核机制不甚了解有很大关系,下面我为大家科普下苹果针对IPv6的审核机制和流程:
()
图示展示了苹果审核时的简单原理:
苹果AppStore审核人员在美国的IPv6-Only环境下对APP进行访问(审核),提交App后,
如果AppServer支持IPv6,则可直接访问;
如果AppServer不支持IPv6,则通过DNS64+NAT64进行访问。
据统计,大部分开发者的App服务器都是不支持IPv6直接访问的。也就是说,AppStore审核人员审核时,基本都是用NAT64+DNS64进行访问的。那么接下来我们重点了解一下NAT64+DNS64的访问机制,如下图示:
从上图可以看出审核的关键在于能不能获取一个有效的ServerIPv6地址。
苹果公司的App审核人员进行审核时,由于国内大部分开发者的服务器不支持IPv6-Only访问,因此只能通过苹果公司自己的NAT64+DNS64服务器进行测试,如果苹果的服务器不能有效的给AppServer返回一个IPv6地址,就会导致无法访问等问题。其结果便是审核失败,App被拒。
三、被拒原因解决方式详解
通过综合被拒理由原文、IPv6的审核机制和流程等,其实我们可以很容易地总结出iOS应用因IPv6审核被拒的大体原因:
1、国内大部分App服务器不支持IPv6-only;
2、苹果公司的审核环境不能自动将国内服务器地址转成IPv6地址,导致访问失败;(据样本统计,绝大多数App是因为这个原因木有过审......)
当然,除了这两点之外,国际线路带宽严重拥堵等原因也会造成访问的不稳定或访问失败。
而对于因IPv6问题审核被拒后所能采取的方法,我也进行了一番整理,大家可以根据实际情况来采取相应的措施:
四、结语
从苹果实施这一规定起,到现在已经有10个多月的时间了。但是因IPv6被拒的App数量一直居高不下。希望各位开发者们看到以上内容能够摆脱审核时因IPv6被拒的情况,顺利通过审核。
儿童节到来之前,所有iOS应用开发们都在折腾这个策略,所以为了保障应用上架不受影响,需要通过完善的测试来'保驾护航',那么自己搭建一个本地虚拟的IPv6-only网络环境是必要的,接下来介绍下如何在自己的Mac上搭建测试网络。
下面是搭建本地IPv6网络的步骤:
1. 首先确保Mac已经连入因特网,但不是通过Wi-Fi连入的;
2. 通过Dock或LaunchPad或苹果菜单中开启“系统偏好设置”;
3. 按住'Option'按键的同时点选“共享”图标,注意:不要放开'Option'按键,一直按住不放哦;
4. 打开“共享”窗口后在共享服务列表中选择‘互联网共享’,点选后同时放开‘Option’按键;
5. 此时在窗口底部就可以看到一个带有Checkbox的选项 “创建 NAT64 网络”,进行选中;
6. 在窗口右侧提供的“共享以下来源的链接”列表中选择一个网络端口,例如Thunderbolt网桥;
7. 在“用以下端口共享给电脑”列表中再选择“Wi-Fi”选项;
8. 接着点击“Wi-Fi选项”按钮并在新窗口中配置网络名称和一些安全选项;
9. 配置好"Wi-Fi选项"后点击"OK"确认关闭后,在窗口左侧列表中勾选“互联网共享”开启本地网络,验证是否开启在右侧上方会有绿色按钮展现;
10. 选中的同时会出现二次确认框,选择“开始”;
一旦分享被激活,在顶栏中会看到一个绿色状态和网络分享已经开启的提示。 同时在 Wi-Fi 菜单中将会看到一个很小的指向上方的箭头标志代表网络分享已开启。那么现在已经搭建好了NAT64网络,可以使用其它的设备来连接并测试你的app了。
其实苹果电脑自带这个功能,只是平时大家一般都使用ipv4。
1.提到IPV6相关。 那这个直接就联想到就是关于我们App中网络部的一些内容,是否要进行相应的改变。
首先,解释下什么是ipv6?
IPv6是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址空间的不足必将妨碍互联网的进一步发展。通俗的说就是,我们的网络ip地址不够用了, 我们每台电脑上internet都需要一个身份证明,就是说的IP地址, ipv4的可使用地址为 2的32次方个地址,而ipv6可使用的ip地址为 2的128次方, 哈哈,妈妈再也不用担心我们ip地址不够用啦,当然ipv6的好处远不止只是地址的增加。还有以下好处:
IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS)控制提供了良好的网络平台。
这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,这极大的增强了网络安全
通过上面的了解,大家肯定明白苹果为什么要求我们的app要支持ipv6了把,并且态度强硬。 苹果这是为了以后发展上不受ipv的影响,所以提前快刀斩乱麻。
参考 苹果官方文档
最后我们来搭一个IPv6的测试环境吧,你所需要的就是一台用非Wi-Fi的方式上网的Mac电脑。
我们的要做的其实就是用Mac做一个热点,然后用iPhone连接这个Wi-Fi,听起来很容易,我相信大家在公司就是这么干的吧。
区别是这次我们产生的是一个本地的 IPv6 DNS64/NAT64 网络,这项功能是 OS X 10.11 新加的。和我们以前开启热点方式不一样的地方在于,我们在 系统偏好设置 界面选中 分享 的同时,要按住 Option 键。
之后就是按照正常的创建热点的流程走完就行了。
现在我们用iPhone连接上这个刚创建好的热点就可以测试了,注意此时要把iPhone设成飞行模式,以保证只用Wi-Fi上网。
选中连接的WiFi,进入无线网络设置。配置DN为IPV6DNS,8.8.8.8和2001:4860:4860::8888, 点击存储即可,详细步骤:
工具/原料:
iPhone 7
ios 13.6
1、点击手机桌面设置,进入设置界面。
2、点击选中连接的WiFi,点击后面的叹号,进入无线网络设置。
3、点击配置DNS。
4、配置DNS中,选择“手动”。
5、点击添加服务器。
6、手机键盘英文状态下,输入IPV6DNS,比如8.8.8.8和2001:4860:4860::8888,点击存储即可。