# 简介
本文档介绍FastDeploy中的模型SDK,在iOS环境下:(1)推理部署步骤;(2)介绍SDK使用说明,方便开发者了解项目后二次开发。
* [简介](#简介)
* [系统支持说明](#系统支持说明)
  
  * [1. 系统支持说明](#1-系统支持说明)
  * [2. SDK大小说明](#2-sdk大小说明)
* [快速开始](#快速开始)
  
  * [1. 项目结构说明](#1-项目结构说明)
  * [2. 测试Demo](#2-测试demo)
* [SDK使用说明](#sdk使用说明)
  
  * [1. 集成指南](#1-集成指南)
    * [1.1 依赖库集成](#11-依赖库集成)
  * [2. 调用流程示例](#2-调用流程示例)
    * [2.1 初始化](#21-初始化)
  * [2.2 预测图像](#22-预测图像)
* [FAQ](#faq)
  
  
# 系统支持说明
## 1. 系统支持说明
1. 系统支持:iOS 9.0及以上。
2. 硬件支持:支持 arm64 (Starndard architectures),暂不支持模拟器。
   
   * 官方验证过的手机机型:大部分ARM 架构的手机、平板及开发板。
3.其他说明
    * 3.1 【图像分割类模型】(1)图像分割类Demo暂未提供实时摄像头录制拍摄的能力,开发者可根据自己需要,进行安卓开发完成;(2)PP-Humanseg-Lite模型设计初衷为横屏视频会议等场景,本次安卓开发仅支持述评场景,开发者可根据自己需要,开发横屏的Android功能。
    
    * 3.2 【OCR模型】OCR任务第一次启动任务,第一张推理时间久,属于正常情况(因为涉及到模型加载、预处理等工作)。
## 2. SDK大小说明
1. 模型资源文件大小影响 SDK 大小
2. SDK 包及 IPA 安装包虽然比较大,但最终安装到设备后所占大小会缩小很多。这与 multi architechtures、bitcode 和 AppStore 的优化有关。
# 快速开始
## 1. 项目结构说明
根据开发者模型、部署芯片、操作系统需要,在图像界面[飞桨开源模型](https://ai.baidu.com/easyedge/app/openSource)或[GitHub](https://github.com/PaddlePaddle/FastDeploy)中选择对应的SDK进行下载。SDK目录结构如下:
```
.EasyEdge-iOS-SDK
├── EasyDLDemo    # Demo工程文件
├── LIB            # 依赖库
├── RES
│   ├── easyedge         # 模型资源文件夹,一套模型适配不同硬件、OS和部署方式
│   ├── conf.json        # Android、iOS系统APP名字需要
│   ├── model            # 模型结构文件 
│   ├── params           # 模型参数文件
│   ├── label_list.txt   # 模型标签文件
│   ├── infer_cfg.json   # 模型前后处理等配置文件
└── DOC            # 文档
```
## 2. 测试Demo
按如下步骤可直接运行 SDK 体验 Demo:  
步骤一:用 Xcode 打开 `EasyDLDemo/EasyDLDemo.xcodeproj`  
步骤二:配置开发者自己的签名(不了解签名机制的,可以看FAQ [iOS签名介绍](#100))
步骤三:连接手机运行,不支持模拟器  
检测模型运行示例:

(1)在Xcode/Preferences/Accounts 中添加个人Apple ID;
(2)在对应的EasyDLDemo中做如下图设置:
(3)(2)后会在手机上安装好对应APP,还需要在手机上`设置/通用/设备管理/开发者应用/信任appleID`,才能运行该 APP。