OSS SDK for iOS を使用すると、Object Storage Service (OSS) のリソースをプログラムで管理できます。たとえば、バケットの管理、オブジェクトのアップロード、オブジェクトのダウンロード、イメージの処理などが可能です。このトピックでは、OSS SDK for iOS のインストール方法について説明します。
前提条件
iOS:iOS 8.0 以降を使用していること。
macOS:macOS 10.10 以降を使用していること。
フレームワークの直接インポート
OSS SDK for iOS のフレームワークを生成する方法の詳細については、GitHub をご参照ください。
Xcode で、フレームワークをターゲットの必要なセクションにドラッグします。表示されるダイアログボックスで、[Copy Items If Needed] を選択します。
Pod の依存関係
プロジェクトで Cocoapods を使用して依存関係を管理している場合は、Podfile に次の依存関係を追加します。この場合、OSS SDK for iOS フレームワークをインポートする必要はありません。
pod 'AliyunOSSiOS' フレームワークを追加するか、Pod の依存関係を追加することができます。
プロジェクトへのヘッダーファイルのインポート
#import <AliyunOSSiOS/OSSService.h> フレームワークをインポートした後、プロジェクトの Build Settings の Other Linker Flags に -ObjC を追加します。プロジェクトに -force_load オプションが設定されている場合は、-force_load <framework path>/AliyunOSSiOS を追加します。
Swift プロジェクトでの SDK の使用
OSS は、Objective-C 版の OSS SDK for iOS を提供しています。Swift プロジェクトでは、Objective-C 版の SDK を使用してハイブリッドプログラミングが可能です。OSS は、Swift プロジェクトで SDK を使用する方法を示すデモを提供しています。詳細については、GitHub をご参照ください。
IPv6 のみのネットワークとの互換性
ワイヤレスネットワークでの名前解決は、ハイジャックされやすい傾向があります。この問題に対処するため、モバイルデバイス向けの OSS SDK は、名前解決に HTTPDNS をサポートし、IP アドレスを直接使用して OSS サーバーにリクエストを送信します。IPv6 のみのネットワークでは、互換性の問題が発生する可能性があります。Apple は App Store Review Guidelines を更新し、アプリに IPv6 互換性を提供することを義務付けました。OSS SDK for iOS は、V2.5.0 から IPv6 のサポートを開始しました。OSS SDK for iOS V2.5.0 以降では、Objective-C の設定に加えて、次のシステムライブラリをインポートする必要があります:
libresolv.tbd
CoreTelephony.framework
SystemConfiguration.framework ATS について
WWDC 2016 で、Apple は 2017 年 1 月 1 日以降、App Store のすべてのアプリで App Transport Security (ATS) 機能を有効にする必要があると発表しました。これは、デフォルトでは、新しいアプリの申請で NSAllowsArbitraryLoads を使用して ATS の制限をバイパスできないことを意味します。さらに、アプリからのすべてのネットワークリクエストは HTTPS を使用して暗号化する必要があります。そうしないと、アプリが審査プロセスに合格しない可能性があります。
OSS SDK for iOS は、バージョン 2.6.0 以降でこれをサポートしています。SDK は HTTPS 以外のリクエストを送信しません。また、https:// プレフィックスを持つ エンドポイント もサポートしています。すべてのネットワークリクエストが要件を満たすように、正しい HTTPS エンドポイント を設定する必要があります。
エンドポイントを設定する際は、https://プレフィックス付きの URL を使用してください。署名の生成や Security Token Service (STS) からのトークン取得などのコールバックを実装する際は、HTTPS リクエストのみが開始されるようにしてください。