本文介绍如何OSS iOS SDK。

直接引入Framework

如何获取OSS iOS SDK framework参见链接

在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的网络下,可能会遇到兼容性问题。而APP官方近期发布了关于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 加密的,否则可能会在应用审核时遇到麻烦。

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

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