本文介绍如何安装 OSS iOS SDK。

运行环境要求

  • iOS系统版本:iOS 8.0及以上
  • MacOS版本:10.10及以上

直接引入Framework

如何获取 OSS iOS SDK Framework,请参见GitHub

在 Xcode 中,直接把 Framework 拖入您对应的 Target 下即可,在弹出框勾选Copy items if needed

Pod依赖

如果工程是通过 Pod 管理依赖,只需在 Podfile 中加入以下依赖,不需要再导入 Framework:

pod 'AliyunOSSiOS'
			
有关管理工具 Cocoapods 的更多详情,请参考文档CocoaPods安装和使用教程
说明 您可以选择直接引入 Framework 或者 Pod 依赖两种方式中的任意一种。

工程中引入头文件

#import <AliyunOSSiOS/OSSService.h>
			
注意 引入 Framework 后,需要在工程Build SettingsOther Linker Flags中加入-ObjC。如果工程已设置了-force_load选项,则需要加入-force_load <framework path>/AliyunOSSiOS

兼容IPv6-Only网络

为了解决无线网络下域名解析容易遭到劫持的问题,OSS 移动端 SDK 引入了 HTTPDNS 进行域名解析,直接使用 IP 请求 OSS 服务端。在 IPv6-Only 的网络下可能会遇到兼容性问题。苹果官方近期发布了关于 IPv6-only 网络环境兼容的 App 审核要求。为此,SDK 从 2.5.0 版本开始已经做了兼容性处理。在新版本中,除了 -ObjC 的设置,还需要引入两个系统库:

libresolv.tbd
CoreTelephony.framework
SystemConfiguration.framework
			

关于苹果ATS政策

WWDC 2016 开发者大会上,苹果宣布从 2017 年 1 月 1 日起,苹果 App Store 中的所有 App 都必须启用 App Transport Security(ATS) 安全功能。即所有新提交的 App 默认不允许使用NSAllowsArbitraryLoads来绕过 ATS 限制。此外,还需保证 App 的所有网络请求都必须通过 HTTPS 加密,否则可能会在应用审核时遇到麻烦。

OSS IOS SDK 在2.6.0以上版本中对此做出支持。SDK 不会自行发出任何非 HTTPS 请求,同时,SDK 支持https://前缀的Endpoint,只需要设置正确的 HTTPS Endpoint,就能保证发出的网络请求均符合要求。

注意
  • 设置Endpoint时,需使用https://前缀的 URL。
  • 在实现加签、获取STSToken等回调时,需确保不会发出非 HTTPS 的请求。