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で、フレームワークをTargetの必要なセクションにドラッグします。 表示されるダイアログボックスで、[必要に応じてアイテムをコピー] を選択します。
ポッドの依存関係
プロジェクトでCocoapodsを使用して依存関係を管理する場合は、次の依存関係をPodfileに追加します。 この場合、OSS SDK for iOSフレームワークをインポートする必要はありません。
ポッド 'AliyunOSSiOS'
フレームワークを追加するか、ポッドの依存関係を追加できます。
ヘッダーファイルをプロジェクトにインポートする
#import <AliyunOSSiOS/OSSService.h>
フレームワークをインポートしたら、プロジェクトの [ビルド設定]
の [その他のリンカーフラグ]
に -ObjC
を追加します。 プロジェクトに -force_load
オプションが設定されている場合は、-force_load <framework path>/AliyunOSSiOS
を追加します。
SwiftプロジェクトでSDKを使用します。
OSSは、Objective-CバージョンのOSS SDK for iOSを提供します。 Swiftプロジェクトでは、ハイブリッドプログラミング用のSDKのObjective-Cバージョンを使用できます。 OSSは、SwiftプロジェクトでSDKを使用する方法を示すデモを提供します。 詳細については、『GitHub』をご参照ください。
IPv6-onlyネットワークに対応
無線ネットワークにおけるドメイン名解決は、ハイジャックを起こしやすい。 この問題に対処するために、モバイルデバイス用のOSS SDKはドメイン名解決用のHTTPDNSをサポートし、IPアドレスを直接使用してOSSサーバーにリクエストを送信します。 IPv6-onlyネットワークでは、互換性の問題が発生する可能性があります。 Appleは、App Store Review Guidelinesを更新して、アプリにIPv6互換性を提供するよう要求しました。 iOS用OSS SDKがV2.5.0からIPv6サポートの提供を開始します。 iOS V2.5.0以降のOSS SDKでは、Objective-C設定とは別に、次のシステムライブラリをインポートする必要があります。
libresolv.tbd
CoreTelephony.framework
SystemConfiguration.framework
ATSについて
Worldwide Developers Conference (WWDC) の2016で、AppleはApp Storeのすべてのアプリが2017年1月1日からApp Transport Security (ATS) をサポートする必要があると発表しました。 つまり、前述の日付以降にApp Storeに送信されたすべてのアプリは、ATS制限を回避するためにNSAllowsArbitraryLoads
を使用することはできません。 さらに、アプリはHTTPS経由でサーバーに接続する必要があります。 アプリがこれらの要件を満たしていない場合、アプリのレビューは失敗します。
iOS 2.6.0
以降のOSS SDKはATSをサポートしています。 OSS SDK for iOSは、HTTPS以外のプロトコルでリクエストを送信しません。 さらに、OSS SDK for iOSは、https://
プレフィックスで始まるエンドポイントをサポートしています。 有効なHTTPSエンドポイントが設定されている場合、送信されるリクエストは準拠します。
エンドポイントを指定するときは、エンドポイントが
https://
で始まることを確認してください。署名の生成やSecurity Token Service (STS) からのトークンの取得などのコールバックを実装する場合は、HTTPSリクエストのみが開始されるようにしてください。