Xcode8 及 iOS 10 的适配

最近下载Xcode8 ,把项目适配了一下iOS10 ,把遇到的一些问题记录下来:

1.Xcode8运行项目之后,控制台打印了一堆东西;

去除方法:选择Xcode ->Product ->Scheme -> Edit Scheme 或者按command + shift + < 快捷键,

在弹出的窗口中Environment Variables 下添加 0S_ACTIVITY_MODE=disable


注:真机调试不输出NSlog了,所以我真机调试的时候,把此处对号去除,就好了

2.Xcode8 打开工程后,出现下图,苹果新特性


我勾选了Automatically manage signing,并且选择配置了Team,就好了。

注:或者另外一种方式  点击打开链接

3.用Xcode8 运行项目在真机上,打开相机相册功能,程序崩溃;

解决办法:项目中访问了隐私数据,需要在info.plist中添加这些权限:

相机权限

<key>NSCameraUsageDescription</key>

<string>cameraDesciption</string>

相册权限

<key>NSPhotoLibraryUsageDescription</key>

<string>photoLibraryDesciption</string>


注:
<!-- 相册 --> 
<key>NSPhotoLibraryUsageDescription</key> 
<string>App需要您的同意,才能访问相册</string> 
<!-- 相机 --> 
<key>NSCameraUsageDescription</key> 
<string>App需要您的同意,才能访问相机</string> 
<!-- 麦克风 --> 
<key>NSMicrophoneUsageDescription</key> 
<string>App需要您的同意,才能访问麦克风</string> 
<!-- 位置 --> 
<key>NSLocationUsageDescription</key> 
<string>App需要您的同意,才能访问位置</string> 
<!-- 在使用期间访问位置 --> 
<key>NSLocationWhenInUseUsageDescription</key> 
<string>App需要您的同意,才能在使用期间访问位置</string> 
<!-- 始终访问位置 --> 
<key>NSLocationAlwaysUsageDescription</key> 
<string>App需要您的同意,才能始终访问位置</string> 
<!-- 日历 --> 
<key>NSCalendarsUsageDescription</key> 
<string>App需要您的同意,才能访问日历</string> 
<!-- 提醒事项 --> 
<key>NSRemindersUsageDescription</key> 
<string>App需要您的同意,才能访问提醒事项</string> 
<!-- 运动与健身 --> 
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能访问运动与健身</string> 
<!-- 健康更新 --> 
<key>NSHealthUpdateUsageDescription</key> 
<string>App需要您的同意,才能访问健康更新 </string> 
<!-- 健康分享 --> 
<key>NSHealthShareUsageDescription</key> 
<string>App需要您的同意,才能访问健康分享</string> 
<!-- 蓝牙 --> 
<key>NSBluetoothPeripheralUsageDescription</key> 
<string>App需要您的同意,才能访问蓝牙</string> 
<!-- 媒体资料库 --> 
<key>NSAppleMusicUsageDescription</key> 
<string>App需要您的同意,才能访问媒体资料库</string>
如果没有用,需配置一下



4.字体变大,原有的fream需要适配,智能逐一排查啦

5.Nib问题:警告

- (void)awakeFromNib {
    // Initialization code
}
需要添加:
  [super awakeFromNib];

6. UIApplication对象中openUrl被废弃

在iOS 10以前,我们要想使用应用程序去打开一个网页或者进行跳转,直接使用[[UIApplication sharedApplication] openURL 方法就可以了,但是在iOS 10 已经被废弃了,因为使用这种方式,处理的结果我们不能拦截到也不能获取到,对于开发是非常不利的,在iOS 10全新的退出了 [[UIApplication sharedApplication] openURL:nil options:nil completionHandler:nil];有一个成功的回调block 可以进行监视。
注:仍然可以用,只不过会出现警告
7.系统判断失效 
现在改用:
#define LIOS10_OR_LATER  ([[[UIDevice currentDevice]systemVersion]compare:@"10.0" options:NSNumericSearch] !=NSOrderedAscending)
8.代码注释不能用
解决方法:
打开终端,命令运行: sudo /usr/libexec/xpccachectl
然后必须重启电脑后生效


嘿嘿,其他的等用到,在更新吧

更新:9.20 晚10:10 (同事还在加班,我刚发布完,这会儿没事,记录Xcode8发布App Store时遇到的蛋疼的一个问题)
由于上述第二点,我勾选了Automatically manage signing,所以在提交时就不用配置证书了,但会提示在你配置Apple ID 

本来按照以前的方式上传应该没啥问题的,但是到商店里却找不到构建版本,(日了鬼了)。有时候连“+”都没,有的会显示此版本无效。三四次都这样——————————————

查下资料后,说是苹果会有反馈邮件,于是登入了公司的企业邮箱看下,果然有::::

Dear developer,
We have discovered one or more issues with your recent delivery for "APPName". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team

原来是在plist文件的隐私描述写少了,赶紧添加上,这个要根据自己APP的情况来添加,描述必须要加上,如果不添加描述,跟没加是一样的,苹果还是会拒绝。

加完以后,再次上传就成功了。。。(好了,下班了)




  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值