开启吐槽模式
为了迎合Xcode8所带来的更新,我是惊喜万分(奔溃至极)。丝毫不敢怠慢,生怕跟不上入坑的队伍😂
坑一:storyboard或xib部分图片真机显示不了
- (void)awakeFromNib {
[super awakeFromNib];
//加上这句
[self layoutIfNeeded];
}
坑二:打包之后无法在开发者中间看到新构建的版本(或iOS10访问相机、相册等闪退)
原因是iOS10为了保护隐私,需要在 info.plist 里添加配置,包括定位、摄像头、麦克风、相册、相机等等。
访问权限一览表
<!-- 相册 -->
<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>
如果不起作用,可以请求后台权限,类似于这样:
<key>UIBackgroundModes</key>
<array>
<!-- 在这里写上你在后台模式下要使用权限对应的key -->
<string>location</string>
...
</array>
或者在Xcode里选中当前的target,选择 Capabilities ,找到 Background Modes ,打开它,在里面选择对应权限
坑三:控制面板输出不完整
#define NSLog(format, ...) printf("\n[%s] %s [第%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);
坑四:NSUserDefaults问题
坑五:插件无法使用问题
坑六:Xcode8之xib
Xcode8 打开Xib之后,Xcode7 无法打开
当我们使用Xcode8打开以前的旧工程的xib文件时,会弹窗提示我们选择设备。
当我们选择之后虽然Xcode8可以查看xib文件,但是当我们使用旧版本Xcode打开查看xib文件是就会提示无法查看,需要使用高版本Xcode打开。
想要能够在低版本Xcode查看Xib,需要在Xcode8上面重新选择xib打开的版本为Xcode7.x
Xcode8 打开Xib更新之后,约束报警告
被xib坑完之后,接下来就是崩溃的时刻,所有有涉及约束的视图全部报警告。我们需要更新所有存在警告视图的frame。
坑七:应用提交AppStore失败
使用旧版本的Application Loader进行提交。