Auxo插件因为绚丽的外观和方便的功能,在各大iOS论坛被推广着。也深受iOS用户的喜爱。
这款插件在Weiphone上的介绍:Auxo介绍
我也在Bigboss源付费购买了这个插件,可是之后发现它有Bug。因为我经常用Sparrow这款app来后台运行,以便随时接受邮件推送,所以我不希望每次它被关掉(有的时候,会不小心关掉),而这款插件提供了一个功能叫做VIP List(在 设置 - Auxo - Configuration - Prompt Options 中设置),加入了这个List 的App,在用户关闭的时候会弹出提示,让用户确认。
很长时间以来,我的这个功能一直无法正常使用,因为一旦我在Auxo中下滑那些在VIPList中的App时,系统会直接Respring(菊花),然后进入安全模式。
经验证,在很多朋友的iOS设备上也都遇到了这个问题。下面来讲讲如何修复这个bug:
因为最近把iphone的系统语言改成了英文,之后发现这个功能正常了,所以推测这个问题出在语言环境配置文件上。所以在找到了中文和英文的文件做了细致的对比
这个是英语语言配置文件:位置在:/Library/Application Support/AuxoSwitcher/Content/Resources/en.lproj/Localizable.strings
|
|
这个是中文简体语言配置文件:位置在:/Library/Application Support/AuxoSwitcher/Content/Resources/zh-Hans.lproj/Localizable.strings
|
|
在英文环境下,在用户关闭VIP List当中的程序时,系统给出的提示是Are you sure you want to close it?
也就是说系统给的提示是从CURRENTLY_PLAYING_PROMPT
这个字段中截取了后半部分,显示出来给用户提示。
所以我推测问题出现在以上两个文件的高亮行句中的标点符号上,英文版里是”. “(注意有空格),而中文版里是”。”(无空格). 事实证明我的猜测也是对的,我将中文文件里的句号改为了英文句号加空格,然后,将系统respring(不会的同学可以直接重启),就一切正常了。
我推测这个问题应该是CodeMonkey在做本地化的时候未考虑到我们天朝文字的特殊性,标点与西文不同,而且不加空格。导致在中文环境下,系统找不到对应的分隔符来提取后半部分,导致系统崩溃,进入安全模式。