2018.8.29
Ⅰ.问题收集
1.无法获取用户当前连接
wifi
的ssid
;
描述:在iOS 12 beta
中发现,使用之前获取ssid
的代码(如下:)
只会得到空值;
#import <SystemConfiguration/CaptiveNetwork.h>
// 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
2.
InfoPlist.strings
文件中设置CFBundleDisplayName
的值无法改变应用
展示(桌面)名称;
描述:在iOS 12 beta
中发现,在InfoPlist.strings
文件中设置CFBundleDisplayName
的值无法改变应用
展示(桌面)名称;
// InfoPlist.strings文件
CFBundleDisplayName = "应用名称";
解决:
要在iOS 12及更高版本中实现之前的效果,解决方法有2种;
a.取消InfoPlist.strings
文件的设置,并修改General
中的Display Name
项;
b.开启InfoPlist.strings
文件的本地化设置;
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;
参考链接:
Xcode 9 总是自动展开固定文件夹
Xcode Folders Auto-Expanding When Clicking “Project Navigator”