iOS10.3 正式版本發(fā)布执赡,其中將文件系統(tǒng)改為APFS,在文件存儲方面確實釋放了不少空間函筋,對于開發(fā)者10.3又有那些變動呢沙合?
-
允許 App 內(nèi)評分及留言
在 iOS 10.3 中,開發(fā)者可以利用新的 API 在 App 內(nèi)通過彈窗的方式請求用戶直接給出評分跌帐,不再需要前往 App Store首懈。
蘋果在最新的iOS 10.3的SDK中的StoreKit框架中新增了一個類SKStoreReviewController來專門做這件事情,它只有一個類方法requestReview
#import <StoreKit/StoreKit.h>
- (IBAction)makeReview:(id)sender {
[SKStoreReviewController requestReview];
}
考慮到兼容問題谨敛,修改代碼如下:
-(void)showReviewWithAppId:(NSString *)appId{
Class clazz = NSClassFromString(@"SKStoreReviewController");
if(clazz != nil){
//iOS10.3 應(yīng)用內(nèi)打開
[SKStoreReviewController requestReview];
}else{
//跳轉(zhuǎn)到AppStore評論頁面
NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
}
-
開發(fā)者可以隨時更新 App 的圖標(biāo)
iOS10.3修改APP圖標(biāo)主要Api為:
- (void)setAlternateIconName:(nullable NSString *)alternateIconName completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler
除了使用此方法外究履,還需要在Info.plist中添加配置,配置說明
實際步驟如下:
1脸狸、添加AppIcon,記錄圖片名字Bitmap(隨意名字最仑,記錄下即可)
2藐俺、修改info.plist文件
info.plist源文件如下:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>BitmapNew</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>BitmapNew</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Bitmap</string>
</array>
</dict>
</dict>
說明:CFBundlePrimaryIcon
中的Bitmap
即為之前記錄的圖片名稱,BitmapNew 是我的用于替換原生圖標(biāo)的圖片資源。文件名需要和 info.plist 中保持一致(注意 info.plist 中用到了兩次 "BitmapNew")泥彤,同時這也是你在代碼中設(shè)置圖標(biāo)時欲芹,需要給 API 傳入的參數(shù)嘲叔。同樣是 60pt@2x 和 60pt@3x 的圖片資源唠粥,文件不通過 Assets.xcassets 添加進(jìn)來篡九,而是直接放到目錄中
如果你需要支持 iPad口锭,建議這里使用 83.5pt(iPad Pro)的圖片資源嫩码。另外還有些其他關(guān)于在 iPad 上替換圖標(biāo)的注意事項扔枫,在這里有說明酬荞,注意我們這里在 info.plist 里面所用的 key 是CFBundleIcons
蛹磺,還有另外一個 key 是 CFBundleIcons~ipad
3粟瞬、編寫修改圖標(biāo)代碼:
/**
修改App圖標(biāo)
@param imageName 圖片名稱称开,nil:表示還原主圖片
*/
-(void)changeAppIconWithName:(NSString *)imageName{
if([[UIApplication sharedApplication] supportsAlternateIcons]){
NSLog(@"支持更換圖標(biāo)");
}else{
NSLog(@"不支持更換圖標(biāo)");
return;
}
NSString *alternateIconName = [UIApplication sharedApplication].alternateIconName;
if(alternateIconName == nil){
[[UIApplication sharedApplication] setAlternateIconName:imageName completionHandler:^(NSError * _Nullable error) {
if(error){
NSLog(@"%@",error);
}
}];
}
}
-
APFS
蘋果文件系統(tǒng)(英語:Apple File System,簡稱APFS)是一個適用于macOS焰轻、iOS昆雀、tvOS和watchOS的文件系統(tǒng)辱志。它的目的是解決現(xiàn)今使用[HFS+文件系統(tǒng)的核心問題揩懒。
APFS為閃存和固態(tài)存儲設(shè)備優(yōu)化,具有寫入時復(fù)制等設(shè)計特點挽封,使用I/O合并改進(jìn)性能已球。
- 特點
* 克隆
克隆可以使文件系統(tǒng)快速、高效地在同個卷上復(fù)制文件辅愿,且不須占用額外存儲空間智亮。對數(shù)據(jù)的修改將寫入其他位置,未修改的塊則繼續(xù)共享使用点待。對文件的更改將保存為克隆文件的差異阔蛉,減少文檔修訂和復(fù)制所需的存儲空間。
* 快照
APFS支持創(chuàng)建特定時間點癞埠、文件系統(tǒng)只讀實例的快照
* 加密
APFS將實現(xiàn)文件和敏感元數(shù)據(jù)的磁盤加密状原。它對一個容器中的每個卷支持下列加密模型:
- 不加密
- 單密鑰加密
- 多密鑰加密聋呢,每個文件使用單獨的密鑰加密,元數(shù)據(jù)再使用另一個密鑰加密
- 數(shù)據(jù)完整性
APFS利用現(xiàn)代硬件固件中強大的[校驗和]和[錯誤糾正]的優(yōu)勢遭笋。為確保[數(shù)據(jù)完整性]坝冕,APFS 對元數(shù)據(jù)采用校驗和技術(shù)徒探,但未同時對用戶數(shù)據(jù)采用瓦呼。 - 崩潰防護
蘋果文件系統(tǒng)被設(shè)計為可以免受崩潰帶來的數(shù)據(jù)損失。
- 限制與不足
APFS不為用戶數(shù)據(jù)提供校驗和测暗,但通過基于元數(shù)據(jù)的校驗和檢查來確保數(shù)據(jù)完整央串。
另外,它并不利用易失性存儲器可比特尋址這一特性碗啄。