AppStore

AppStore

Appstore: Supporting IPv6-only Networks 提审必须支持IPv6,禁止IPv4的API

游戏开发atool 发表了文章 • 0 个评论 • 1412 次浏览 • 2016-05-10 18:15 • 来自相关话题

2016年06月后,appstore要求上线的APP必须支持ipv6,具体:
 
1. If you’re writing a client-side app using high-level networking APIs such as NSURLSession and the CFNetwork frameworks and you connect by name, you should not need to change anything for your app to work with IPv6 addresses. If you aren’t connecting by name, you probably should be. See Avoid Resolving DNS Names Before Connecting to a Host to learn how. For information on CFNetwork, see CFNetwork Framework Reference. 
2. If you’re writing a server-side app or other low-level networking app, you need to make sure your socket code works correctly with both IPv4 and IPv6 addresses. Refer to RFC4038: Application Aspects of IPv6 Transition.

怎么检查自己的APP是否能过关?主要有以下几项:

一、代码中IP地址
只要存在IP格式的字符串(正则为:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})都尽量删除,不排除appstore就是通过正则来检查的。建议全部换成域名,然后通过域名解析。
 
二、API方法
一些只支持IPv4的方法不可在用。具体有以下:inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()如果用到了下面左边的这些IPv4的类型(常量值),那么它们相应的IPv6类型也需要做处理:





关于苹果要求IPv6:https://developer.apple.com/news/?id=05042016a 查看全部
2016年06月后,appstore要求上线的APP必须支持ipv6,具体:
 
1. If you’re writing a client-side app using high-level networking APIs such as NSURLSession and the CFNetwork frameworks and you connect by name, you should not need to change anything for your app to work with IPv6 addresses. If you aren’t connecting by name, you probably should be. See Avoid Resolving DNS Names Before Connecting to a Host to learn how. For information on CFNetwork, see CFNetwork Framework Reference. 
2. If you’re writing a server-side app or other low-level networking app, you need to make sure your socket code works correctly with both IPv4 and IPv6 addresses. Refer to RFC4038: Application Aspects of IPv6 Transition.

怎么检查自己的APP是否能过关?主要有以下几项:

一、代码中IP地址
只要存在IP格式的字符串(正则为:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})都尽量删除,不排除appstore就是通过正则来检查的。建议全部换成域名,然后通过域名解析。
 
二、API方法
一些只支持IPv4的方法不可在用。具体有以下:
inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()
如果用到了下面左边的这些IPv4的类型(常量值),那么它们相应的IPv6类型也需要做处理:
f2bcddfde26919a9c3832cdaf0bc56de.png


关于苹果要求IPv6:https://developer.apple.com/news/?id=05042016a

xcode编译cocos2d-x 3.0及以上版本支持arm64位

游戏开发atool 发表了文章 • 0 个评论 • 1904 次浏览 • 2016-04-22 13:05 • 来自相关话题

在使用cocos2d-x 3.0rc lua版本完成游戏过程中,真机存在一个问题:

1. 使用iphone4s真机调试,可以正常运行通过;

2. 使用iphone4s以上版本真机调试的时候,不能够正常编译,出现的的错误是cc命名空间下的很多方法找不到,具体都是cocos2d-x的代码找不到。

虽然直接使用iphone4s连接手机,achieve出来的ipa包也可以在所有ios设备上运行,但是提交appstore的时候,就会出现错误:ERROR ITMS-90086:"missing 64-bit support. beginning on february 1, 2015, new iOS apps submitted to the app store must be include 64-bit support and be built with the ios8 SDK......"。




大致意思是app store从2015年2月1号开始,不再接受不支持64位的app上线。

解决办法如下:

1.将所有的cocos2d-x xcode项目的project和target中的building-setting设置项中的architectures、supported platforms、validarchitectures,另外非常重要的一个配置是build active architecture only全部设置为No。下图所示:




需要修改p2,cocos2d_lua_bindings.xcodeproj, cocos2d_libs.xcodeproj三个项目中的building-setting。如下图所示:




修改之后,就会发现之前出现的“cc命名空间下的很多方法找不到”的错误都消失了,出现的都是关于图片读取的问题,这个问题解决见步骤2;

2.因为cocos2d-x3.0rc版本没有将图片相关的64位库加入,引入相关的图片读取解析的64位库;如下图所示:




具体就是上述中_arm64.a结尾的库。

上述问题解决了,但是又出现lua里面的方法找不到的错误,解决办法见步骤3;

3.由于cocos2d-x3.0rc使用的是luajit,但是只引入了libluagit.a库,这个库是32位的,所以无法编译64位,于是找到一个liblua.a的库,引入lua.a到项目即可。如下图:




三步完成,问题全部解决,打包,重签,测试,没有任何问题。

Enjoy~
  查看全部
在使用cocos2d-x 3.0rc lua版本完成游戏过程中,真机存在一个问题:

1. 使用iphone4s真机调试,可以正常运行通过;

2. 使用iphone4s以上版本真机调试的时候,不能够正常编译,出现的的错误是cc命名空间下的很多方法找不到,具体都是cocos2d-x的代码找不到。

虽然直接使用iphone4s连接手机,achieve出来的ipa包也可以在所有ios设备上运行,但是提交appstore的时候,就会出现错误:ERROR ITMS-90086:"missing 64-bit support. beginning on february 1, 2015, new iOS apps submitted to the app store must be include 64-bit support and be built with the ios8 SDK......"。
111.png

大致意思是app store从2015年2月1号开始,不再接受不支持64位的app上线。

解决办法如下:

1.将所有的cocos2d-x xcode项目的project和target中的building-setting设置项中的architectures、supported platforms、validarchitectures,另外非常重要的一个配置是build active architecture only全部设置为No。下图所示:
222.png

需要修改p2,cocos2d_lua_bindings.xcodeproj, cocos2d_libs.xcodeproj三个项目中的building-setting。如下图所示:
333.png

修改之后,就会发现之前出现的“cc命名空间下的很多方法找不到”的错误都消失了,出现的都是关于图片读取的问题,这个问题解决见步骤2;

2.因为cocos2d-x3.0rc版本没有将图片相关的64位库加入,引入相关的图片读取解析的64位库;如下图所示:
444.png

具体就是上述中_arm64.a结尾的库。

上述问题解决了,但是又出现lua里面的方法找不到的错误,解决办法见步骤3;

3.由于cocos2d-x3.0rc使用的是luajit,但是只引入了libluagit.a库,这个库是32位的,所以无法编译64位,于是找到一个liblua.a的库,引入lua.a到项目即可。如下图:
555.png

三步完成,问题全部解决,打包,重签,测试,没有任何问题。

Enjoy~
 

Appstore: Supporting IPv6-only Networks 提审必须支持IPv6,禁止IPv4的API

游戏开发atool 发表了文章 • 0 个评论 • 1412 次浏览 • 2016-05-10 18:15 • 来自相关话题

2016年06月后,appstore要求上线的APP必须支持ipv6,具体:
 
1. If you’re writing a client-side app using high-level networking APIs such as NSURLSession and the CFNetwork frameworks and you connect by name, you should not need to change anything for your app to work with IPv6 addresses. If you aren’t connecting by name, you probably should be. See Avoid Resolving DNS Names Before Connecting to a Host to learn how. For information on CFNetwork, see CFNetwork Framework Reference. 
2. If you’re writing a server-side app or other low-level networking app, you need to make sure your socket code works correctly with both IPv4 and IPv6 addresses. Refer to RFC4038: Application Aspects of IPv6 Transition.

怎么检查自己的APP是否能过关?主要有以下几项:

一、代码中IP地址
只要存在IP格式的字符串(正则为:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})都尽量删除,不排除appstore就是通过正则来检查的。建议全部换成域名,然后通过域名解析。
 
二、API方法
一些只支持IPv4的方法不可在用。具体有以下:inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()如果用到了下面左边的这些IPv4的类型(常量值),那么它们相应的IPv6类型也需要做处理:





关于苹果要求IPv6:https://developer.apple.com/news/?id=05042016a 查看全部
2016年06月后,appstore要求上线的APP必须支持ipv6,具体:
 
1. If you’re writing a client-side app using high-level networking APIs such as NSURLSession and the CFNetwork frameworks and you connect by name, you should not need to change anything for your app to work with IPv6 addresses. If you aren’t connecting by name, you probably should be. See Avoid Resolving DNS Names Before Connecting to a Host to learn how. For information on CFNetwork, see CFNetwork Framework Reference. 
2. If you’re writing a server-side app or other low-level networking app, you need to make sure your socket code works correctly with both IPv4 and IPv6 addresses. Refer to RFC4038: Application Aspects of IPv6 Transition.

怎么检查自己的APP是否能过关?主要有以下几项:

一、代码中IP地址
只要存在IP格式的字符串(正则为:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})都尽量删除,不排除appstore就是通过正则来检查的。建议全部换成域名,然后通过域名解析。
 
二、API方法
一些只支持IPv4的方法不可在用。具体有以下:
inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()
如果用到了下面左边的这些IPv4的类型(常量值),那么它们相应的IPv6类型也需要做处理:
f2bcddfde26919a9c3832cdaf0bc56de.png


关于苹果要求IPv6:https://developer.apple.com/news/?id=05042016a

xcode编译cocos2d-x 3.0及以上版本支持arm64位

游戏开发atool 发表了文章 • 0 个评论 • 1904 次浏览 • 2016-04-22 13:05 • 来自相关话题

在使用cocos2d-x 3.0rc lua版本完成游戏过程中,真机存在一个问题:

1. 使用iphone4s真机调试,可以正常运行通过;

2. 使用iphone4s以上版本真机调试的时候,不能够正常编译,出现的的错误是cc命名空间下的很多方法找不到,具体都是cocos2d-x的代码找不到。

虽然直接使用iphone4s连接手机,achieve出来的ipa包也可以在所有ios设备上运行,但是提交appstore的时候,就会出现错误:ERROR ITMS-90086:"missing 64-bit support. beginning on february 1, 2015, new iOS apps submitted to the app store must be include 64-bit support and be built with the ios8 SDK......"。




大致意思是app store从2015年2月1号开始,不再接受不支持64位的app上线。

解决办法如下:

1.将所有的cocos2d-x xcode项目的project和target中的building-setting设置项中的architectures、supported platforms、validarchitectures,另外非常重要的一个配置是build active architecture only全部设置为No。下图所示:




需要修改p2,cocos2d_lua_bindings.xcodeproj, cocos2d_libs.xcodeproj三个项目中的building-setting。如下图所示:




修改之后,就会发现之前出现的“cc命名空间下的很多方法找不到”的错误都消失了,出现的都是关于图片读取的问题,这个问题解决见步骤2;

2.因为cocos2d-x3.0rc版本没有将图片相关的64位库加入,引入相关的图片读取解析的64位库;如下图所示:




具体就是上述中_arm64.a结尾的库。

上述问题解决了,但是又出现lua里面的方法找不到的错误,解决办法见步骤3;

3.由于cocos2d-x3.0rc使用的是luajit,但是只引入了libluagit.a库,这个库是32位的,所以无法编译64位,于是找到一个liblua.a的库,引入lua.a到项目即可。如下图:




三步完成,问题全部解决,打包,重签,测试,没有任何问题。

Enjoy~
  查看全部
在使用cocos2d-x 3.0rc lua版本完成游戏过程中,真机存在一个问题:

1. 使用iphone4s真机调试,可以正常运行通过;

2. 使用iphone4s以上版本真机调试的时候,不能够正常编译,出现的的错误是cc命名空间下的很多方法找不到,具体都是cocos2d-x的代码找不到。

虽然直接使用iphone4s连接手机,achieve出来的ipa包也可以在所有ios设备上运行,但是提交appstore的时候,就会出现错误:ERROR ITMS-90086:"missing 64-bit support. beginning on february 1, 2015, new iOS apps submitted to the app store must be include 64-bit support and be built with the ios8 SDK......"。
111.png

大致意思是app store从2015年2月1号开始,不再接受不支持64位的app上线。

解决办法如下:

1.将所有的cocos2d-x xcode项目的project和target中的building-setting设置项中的architectures、supported platforms、validarchitectures,另外非常重要的一个配置是build active architecture only全部设置为No。下图所示:
222.png

需要修改p2,cocos2d_lua_bindings.xcodeproj, cocos2d_libs.xcodeproj三个项目中的building-setting。如下图所示:
333.png

修改之后,就会发现之前出现的“cc命名空间下的很多方法找不到”的错误都消失了,出现的都是关于图片读取的问题,这个问题解决见步骤2;

2.因为cocos2d-x3.0rc版本没有将图片相关的64位库加入,引入相关的图片读取解析的64位库;如下图所示:
444.png

具体就是上述中_arm64.a结尾的库。

上述问题解决了,但是又出现lua里面的方法找不到的错误,解决办法见步骤3;

3.由于cocos2d-x3.0rc使用的是luajit,但是只引入了libluagit.a库,这个库是32位的,所以无法编译64位,于是找到一个liblua.a的库,引入lua.a到项目即可。如下图:
555.png

三步完成,问题全部解决,打包,重签,测试,没有任何问题。

Enjoy~