测试环境:Xcode8.0/ios10.0/iphone6
一.发布版本
1. IPv6网络不支持
现在网络环境其实大部分还是以IPV4为主,但是据说苹果6.1日之后的APP上线都要求APP能够在IPv6网络环境下正常运行,我们可以弄一个IPv6的无线来进行测试。搭建IPv6网络环境参考tuicool.com 很详细了,应该没什么问题。
手机连上设置的WiFi之后,发现你的APP无法进行任何网络请求操作,如果你用了比较旧的AFnetWorking 库, GCDAsyncSocket库,那么更换它们比你自己去修改其中兼容IPv6部分的代码要容易的多,暂时来看,大部分第三方库的最新更新都是兼容了IPv6网络环境的(本人就是GCDAsyncSocket出问题了,更换库文件之后,可以在IPv6环境下进行网络请求)。
2. 权限系列
本人手头APP的 头像设置部分在调用相机的时候闪退。
This app has crashed because it attempted to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
控制台打印如上显示信息,大概意思是叫我们在info.plist
里面添加NSCameraUsageDescription
字段
在项目中找到nfo.plist
文件,添加需要字段,Key
一定不能错,Value
可以根据需要填写
相机权限描述:Key=NSCameraUsageDescriptioncameraDesciption
Value=“XXXAPP想使用您的相机”
通信录:NSContactsUsageDescriptioncontactsDesciption
麦克风:NSMicrophoneUsageDescriptionmicrophoneDesciption
相册:NSPhotoLibraryUsageDescriptionphotoLibraryDesciption
好在在Xcode8.0中已经存在这些字段,我们只需要选择添加然后填写Value就行了。
3. 跳转定位设置
ios9.0时可以使用
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
跳转系统定位设置,然而在ios10时这种方法也失效了,可以使用[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
方法跳转
if (isiOS10)
{
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}else
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}
二.UI调试
1. ios 10字体变大
UIButton
显示不全,加上sizeToFit
就可以解决
[button sizeToFit]; //调用sizeTofit方法
UILable
显示不全,iOS10提供一个属性adjustsFontForContentSizeCategory
设置该属性为Yes
让字体大小符合用户设定的字体大小。
Label.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline];
是否更新字体的变化
Label.adjustsFontForContentSizeCategory = YES;
2. Xcode 8.0勾选Automatically manage signing
自动更新配置文件和证书