iOS10.3新特性

作者: i_belive | 来源:发表于2017-03-30 18:28 被阅读205次

    iOS10.3 正式版本发布,其中将文件系统改为APFS,在文件存储方面确实释放了不少空间,对于开发者10.3又有那些变动呢?

    • 允许 App 内评分及留言

      在 iOS 10.3 中,开发者可以利用新的 API 在 App 内通过弹窗的方式请求用户直接给出评分,不再需要前往 App Store。
      苹果在最新的iOS 10.3的SDK中的StoreKit框架中新增了一个类SKStoreReviewController来专门做这件事情,它只有一个类方法requestReview
    #import <StoreKit/StoreKit.h>
    
    - (IBAction)makeReview:(id)sender {
        [SKStoreReviewController requestReview];
    }
    
    Paste_Image.png

    考虑到兼容问题,修改代码如下:

    
    -(void)showReviewWithAppId:(NSString *)appId{
        Class clazz = NSClassFromString(@"SKStoreReviewController");
        if(clazz != nil){
            //iOS10.3 应用内打开
            [SKStoreReviewController requestReview];
        }else{
            //跳转到AppStore评论页面
            NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", appId];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
        }
    }
    
    
    • 开发者可以随时更新 App 的图标

    iOS10.3修改APP图标主要Api为:

    - (void)setAlternateIconName:(nullable NSString *)alternateIconName completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler 
    

    除了使用此方法外,还需要在Info.plist中添加配置,配置说明

    Paste_Image.png

    实际步骤如下:
    1、添加AppIcon,记录图片名字Bitmap(随意名字,记录下即可)

    Paste_Image.png Paste_Image.png

    2、修改info.plist文件

    Paste_Image.png

    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 是我的用于替换原生图标的图片资源。文件名需要和 info.plist 中保持一致(注意 info.plist 中用到了两次 "BitmapNew"),同时这也是你在代码中设置图标时,需要给 API 传入的参数。同样是 60pt@2x 和 60pt@3x 的图片资源,文件不通过 Assets.xcassets 添加进来,而是直接放到目录中

    Paste_Image.png

    如果你需要支持 iPad,建议这里使用 83.5pt(iPad Pro)的图片资源。另外还有些其他关于在 iPad 上替换图标的注意事项,在这里有说明,注意我们这里在 info.plist 里面所用的 key 是CFBundleIcons
    ,还有另外一个 key 是 CFBundleIcons~ipad

    3、编写修改图标代码:

    /**
     修改App图标
    
     @param imageName 图片名称,nil:表示还原主图片
     */
    -(void)changeAppIconWithName:(NSString *)imageName{
        if([[UIApplication sharedApplication] supportsAlternateIcons]){
            NSLog(@"支持更换图标");
        }else{
            NSLog(@"不支持更换图标");
            return;
        }
        NSString *alternateIconName = [UIApplication sharedApplication].alternateIconName;
        if(alternateIconName == nil){
            [[UIApplication sharedApplication] setAlternateIconName:imageName completionHandler:^(NSError * _Nullable error) {
                if(error){
                    NSLog(@"%@",error);
                }
            }];
        }
    }
    
    Paste_Image.png
    • APFS

    苹果文件系统(英语:Apple File System,简称APFS)是一个适用于macOS、iOS、tvOS和watchOS的文件系统。它的目的是解决现今使用[HFS+文件系统的核心问题。
    APFS为闪存和固态存储设备优化,具有写入时复制等设计特点,使用I/O合并改进性能。

    • 特点
    * 克隆
    

    克隆可以使文件系统快速、高效地在同个卷上复制文件,且不须占用额外存储空间。对数据的修改将写入其他位置,未修改的块则继续共享使用。对文件的更改将保存为克隆文件的差异,减少文档修订和复制所需的存储空间。
    * 快照
    APFS支持创建特定时间点、文件系统只读实例的快照
    * 加密
    APFS将实现文件和敏感元数据的磁盘加密。它对一个容器中的每个卷支持下列加密模型:
    - 不加密
    - 单密钥加密
    - 多密钥加密,每个文件使用单独的密钥加密,元数据再使用另一个密钥加密

    • 数据完整性
      APFS利用现代硬件固件中强大的[校验和]和[错误纠正]的优势。为确保[数据完整性],APFS 对元数据采用校验和技术,但未同时对用户数据采用。
    • 崩溃防护
      苹果文件系统被设计为可以免受崩溃带来的数据损失。
    • 限制与不足
      APFS不为用户数据提供校验和,但通过基于元数据的校验和检查来确保数据完整。
      另外,它并不利用易失性存储器可比特寻址这一特性。

    相关文章

      网友评论

        本文标题:iOS10.3新特性

        本文链接:https://www.haomeiwen.com/subject/zifpottx.html