iOS开发,适配iOS 12

2018.8.29

Ⅰ.问题收集

1.无法获取用户当前连接wifissid
描述:在iOS 12 beta中发现,使用之前获取ssid的代码(如下:)只会得到空值;

#import  

// NSString *ssid = infossid[@"SSID"];
+ (id)FetchSSIDInfo
{
    id infossid = nil;
    NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces());
    for (NSString *ifnam in ifs) {
        infossid = CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam));
        if (infossid && [infossid count]) {
            return infossid;
        }
    }
    return infossid;
}

解决:重要
要在iOS 12及更高版本中使用此功能,请在Xcode中为您的应用启用Access WiFi信息功能。 启用此功能后,Xcode会自动将Access WiFi信息权利添加到您的权利文件和应用程序ID中。
苹果官方文档:CNCopyCurrentNetworkInfo

CNCopyCurrentNetworkInfo Discussion


2.InfoPlist.strings文件中设置CFBundleDisplayName的值无法改变应用展示(桌面)名称;
描述:在iOS 12 beta中发现,在InfoPlist.strings文件中设置CFBundleDisplayName的值无法改变应用展示(桌面)名称;

// InfoPlist.strings文件
CFBundleDisplayName = "应用名称";

解决:
要在iOS 12及更高版本中实现之前的效果,解决方法有2种;
a.取消InfoPlist.strings文件的设置,并修改General中的Display Name项;

Display Name

b.开启InfoPlist.strings文件的本地化设置;
Localization


3.编译错误:Multiple commands produce
描述:在iOS 12中发现,部分有集成第三方库的项目,在编译初期会报一个Multiple commands produce错误,此问题可能只是因为App中的多个plist文件;(详细说明:发生此错误是因为Xcode 10的新构建系统更好地捕获项目配置问题。像这样的问题有时会导致您的构建出现细微问题,因此最好是修复它们);
解决:
a.最快的临时规避方案:Xcode -> File -> Project Settings -> Build System -> Legacy Build System.
b.标准解决方案(未广泛验证):删除目标成员(可能包括本地化资源和字符串文件,标题等)中的所有重复项;

删除重复项

参考链接:
Multiple commands produce


4.Xcode 10,#import的时候闪退;
描述:真是坑得没有道理,只要#import,然后准备输入某个 头文件/类库 名字的时候,就 百分百 闪退了,退了,了。。。真怀疑我这次装到了假的Xcode
解决:
a.最快的临时规避方案:Xcode -> File -> Project Settings -> Build System -> Legacy Build System.
参考链接:
Xcode 10 我 “#import” 然后输入一个字母立马闪退




Ⅱ.低于 iOS12 的版本问题收集

1.Xcode 9 总是自动展开固定文件夹;
描述:IDE升级至Xcode 9之后,总是自动展开固定文件夹(在创建新的文件夹或文件的时候)
解决:在文件过滤器中输入任意数量的字母,然后立即关闭Xcode(在程序坞Dock右键选择退出),然后重新打开Xcode;

Filter

参考链接:
Xcode 9 总是自动展开固定文件夹
Xcode Folders Auto-Expanding When Clicking “Project Navigator”

你可能感兴趣的:(iOS开发,适配iOS 12)