消除无用输出语句问题:Xcode8之后,新创建的项目在手机上运行后,就会在输出窗口,输出一大堆乱七八糟的日志,对我们几乎没有用,如图:
解决办法:
【product】-【scheme】-【Edit Scheme】-【Run】-【Argument】-【Environment Variable】添加key:Value【OS_ACTIVITY_MODE : disable】即可。
但是在我们用真机调试的时候,NSLog也不工作了。我们在输出窗口看不到我们想要的日志了。我们可以定义一个宏即可输出自己的日志,
#ifdef DEBUG
#define CLLog(format, ...) printf("[%s] %s [第%d行] %s\n", __TIME__, __FUNCTION__, __LINE__,
[[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);
#else
#define NSLog(format, ...)
#endif
在iOS10中,如果你的App想要访问用户的相机、相册、麦克风、通讯录等等权限,都需要进行相关的配置,不然会直接crash。
需要在info.plist中添加App需要的一些设备权限。
NSBluetoothPeripheralUsageDescription
访问蓝牙
NSCalendarsUsageDescription
访问日历
NSCameraUsageDescription
相机
NSPhotoLibraryUsageDescription
相册
NSContactsUsageDescription
通讯录
NSLocationAlwaysUsageDescription
始终访问位置
NSLocationUsageDescription
位置
NSLocationWhenInUseUsageDescription
在使用期间访问位置
NSMicrophoneUsageDescription
麦克风
NSAppleMusicUsageDescription
访问媒体资料库
NSHealthShareUsageDescription
访问健康分享
NSHealthUpdateUsageDescription
访问健康更新
NSMotionUsageDescription
访问运动与健身
NSRemindersUsageDescription
访问提醒事项
从2017年1月1日起,强制使用https,所有新提交的 app 默认不允许使用NSAllowsArbitraryLoads来绕过ATS的限制 安全传输不再支持SSLv3。
ERROR ITMS-90474: "Bundle Invalid. iPad Multitasking support requires there orientations:'UIInterfaceOrientationPortrait,
UIIinterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,
UIInterfaceOrientationLandscapeRight'. Found 'UIInterfaceOrientationPortrait' in bundle.t submit to Apple
这是由于提交app适配ios9的ipad的分屏导致的,只要如下图操作就可以了
在iOS10版本之前,直接使用[[UIApplication sharedApplication] openURL方法就跳转指定网页和链接
目前已经在iOS10已经被废弃
注意:在Xcode8工程配置的general选项卡中,使用更详细signing选项替换了原有的team选项。
使用Xcode8打开工程后,项目的provisonfile配置出了问题
进入工程之后选中你的项目文件依次点击:
project->target->general
查看并进行手动配置
在iOS10中读取不到iOS10的系统版本
简单的操作就能判断是否是iOS10:
if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 9,
.minorVersion = 1, .patchVersion = 0}]) { NSLog(@"Hello from > iOS 9.1");}
if ([NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){9,3,0}])
{ NSLog(@"Hello from > iOS 9.3");}
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_9_0) { // do stuff for iOS 9 and newer}
else { // do stuff for older versions than iOS 9}
在iOS10中字体发生了变化,这导致一些文字在原有的宽高约束下可能会出现显示不完整或者留白的情况,单行UILabel使用label.adjustsFontSizeToFitWidth = YES;进行调整
在iOS 10 中info.plist文件新加入了NSAllowsArbitraryLoadsInWebContent键,允许任意web页面加载,苹果会用 ATS 来保护你的app,安全传输不支持SSLv3。