このトピックでは、Alibaba Cloud Real-Time Communication (ARTC) SDK のダウンロードリンクを提供し、プロジェクトへの統合方法を説明します。
SDK のダウンロード
開発元:Alibaba Cloud Computing Co., Ltd.
プラットフォーム | リンク | リリース日 |
Android |
| 2026-01-10 |
iOS |
| 2026-01-10 |
Windows |
| 2025-09-02 |
Mac |
| 2025-12-01 |
Web SDK については、「入門」をご参照ください。
SDK の統合
Android
環境要件
Android Studio 2020.3.1 以降。
Android 5.0 (API Level 21) 以降を実行し、インターネットに接続された Android デバイス。
ステップ 1:SDK のインポート
Maven による自動統合(推奨)
プロジェクトのルートディレクトリにある
settings.gradleファイルを開き、次の例のようにdependencyResolutionManagement/repositoriesフィールドに ARTC SDK の Maven リポジトリを追加します。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// ARTC SDK の Maven リポジトリを追加
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/public' }
}
}注記:Android Gradle Plugin バージョンが 7.1.0 より古い場合、settings.gradle ファイルに該当フィールドが存在しない可能性があります。詳細については、「Android Gradle Plugin 7.1」をご参照ください。その場合は、以下の代替ソリューションを使用してください。
app/build.gradleファイルを開き、dependenciesに ARTC SDK の依存関係を追加します。SDK のダウンロードで最新バージョンを確認し、${latest_version}を具体的なバージョン番号に置き換えてください。最新バージョンは 7.10.0 です。
dependencies {
// ARTC SDK の依存関係を追加
// ${latest_version} を具体的なバージョン番号に置き換えます。
implementation 'com.aliyun.aio:AliVCSDK_ARTC:${latest_version}'
// バージョン 7.4.0 以前の場合、keep 依存関係を追加
// implementation 'com.aliyun.aio.keep:keep:1.0.1'
} Android Gradle Plugin バージョン 8.1 以降を使用している場合、Android Studio では依存関係ライブラリ情報をバージョンカタログに移行することを推奨しています。詳細については、「依存関係の移行」をご参照ください。
手動統合
ダウンロードページから必要なバージョンの ARTC SDK AAR ファイル (
AliVCSDK_ARTC-x.y.z.aar) を取得します。最新バージョンは 7.10.0 です。ダウンロードした AAR ファイルをプロジェクトディレクトリ(例:
app/libs)にコピーします。フォルダが存在しない場合は作成してください。プロジェクトのルートディレクトリにある
settings.gradleファイルを開き、次の例のようにdependencyResolutionManagement/repositoriesに AAR ファイルを含むフォルダを追加します。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// ARTC SDK が配置されている相対ディレクトリを追加
flatDir {
dir 'app/libs'
}
}
}注記:Android Gradle Plugin バージョンが 7.1.0 より古い場合、settings.gradle ファイルに該当フィールドが存在しない可能性があります。詳細については、「Android Gradle Plugin 7.1」をご参照ください。その場合は、以下の代替ソリューションを使用してください。
プロジェクトのルートディレクトリにある build.gradle ファイルを開き、allprojects/repositories に次のフィールドを追加します。
allprojects {
repositories {
...
// ARTC SDK が配置されている相対ディレクトリを追加
flatDir {
dir 'app/libs'
}
}
}app/build.gradleファイルを開き、dependenciesに AAR ファイルの依存関係を追加します。サンプルコード:
// x.y.z を具体的なバージョン番号に置き換えます。
implementation(name:'AliVCSDK_ARTC', version: 'x.y.z', ext:'aar')External Librariesに該当の依存関係が生成されます。
ステップ 2:サポートする CPU アーキテクチャの構成
app/build.gradle ファイルを開き、次の例のように defaultConfig でプロジェクトがサポートする CPU アーキテクチャを指定します。利用可能なアーキテクチャには armeabi-v7a、arm64-v8a、x86、および x86_64 が含まれます。
android {
defaultConfig {
// ...その他のデフォルト設定
// armeabi-v7a および arm64-v8a アーキテクチャをサポート
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
} ステップ 3:権限の構成
アプリケーションに必要な権限を構成します。
app/src/main ディレクトリに移動し、AndroidManifest.xml ファイルを開いて必要な権限を追加します。
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 古いデバイスで従来の Bluetooth 権限を要求 -->
<uses-permission
android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<!-- すでにペアリング済みの Bluetooth デバイスとの通信が必要な場合のみ -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />Bluetooth 権限
ARTC SDK の AndroidManifest.xml ファイルにはいくつかの権限宣言が含まれていますが、ランタイム権限の要求ロジックは含まれていません。特に BLUETOOTH_CONNECT 権限は、Android 12 で導入されたランタイム権限です。
ARTC SDK をインポートすると、以下の権限が自動的にアプリのマニフェストにマージされます。アプリの具体的なユースケースに基づいて、権限要求を適切に処理することを推奨します。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />特定の権限が不要な場合は、メインプロジェクトの AndroidManifest.xml で明示的に削除できます。
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/>Bluetooth 権限に関するガイダンス:
シナリオ 1:Bluetooth 機能が必要
アプリの targetSdk が 31 未満の場合
Bluetooth 機能は従来の BLUETOOTH 権限によって制御されます。メインアプリのマニフェストに以下を宣言できます。
<!-- 従来の Bluetooth 権限を宣言 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- API 31+ 向けの新しい権限を上書きして削除 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />ARTC SDK には
BLUETOOTH_CONNECTの宣言が含まれており、これは Android 12 (API 31) で導入されたランタイム権限です。一部のデバイスでは、アプリのマニフェストに
BLUETOOTH_CONNECT宣言が含まれている場合、システムがランタイムでの要求を強制し、要求されない場合にSecurityExceptionが発生する可能性があります。この問題が発生した場合は、以下のいずれかの対応が可能です。オプション 1:
tools:node="remove"を使用して権限宣言を削除します。オプション 2:コード内で動的に権限を要求します。
アプリの targetSdk が 31 以上の場合
従来および新しい Bluetooth 権限の両方を処理する必要があります。AndroidManifest.xml に以下を宣言します。
<!-- 従来の Bluetooth 権限を宣言し、古いデバイス向けに maxSdkVersion を設定 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<!-- API 31+ 向けの新しい Bluetooth 権限を宣言 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- 必要に応じてその他の Bluetooth 権限を宣言 -->BLUETOOTH_CONNECT はランタイム権限であるため、コード内でも要求する必要があります。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
String[] permissions = {
android.Manifest.permission.BLUETOOTH_CONNECT
};
ActivityCompat.requestPermissions(activity, permissions, REQUEST_BLUETOOTH);
}シナリオ 2:Bluetooth 機能が不要
Bluetooth 関連のクラッシュや権限ポップアップを回避するため、不要な権限を削除することを推奨します。
メインプロジェクトの AndroidManifest.xml で tools:node="remove" を使用して権限を上書き・削除します。
<!-- ARTC SDK からの Bluetooth 権限を上書きして削除 -->
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" />その他のランタイム権限
Android 6.0 (API 23) 以降では、「危険」レベルの権限はランタイムで要求する必要があります。AndroidManifest.xml で静的に宣言するだけでなく、コード内でも要求する必要があります。
ランタイムで要求が必要な権限:
Manifest.permission.CAMERA
Manifest.permission.WRITE_EXTERNAL_STORAGE
Manifest.permission.RECORD_AUDIO
Manifest.permission.READ_EXTERNAL_STORAGE
Manifest.permission.READ_PHONE_STATE
Android 12 (API 31) 以降をターゲットにする場合、以下の権限もランタイムで要求する必要があります:
Manifest.permission.BLUETOOTH_CONNECT
権限の説明:
権限名 | 説明 | 目的 | 必須 | ランタイム要求 |
| カメラ権限。 | ビデオキャプチャ用にデバイスのカメラにアクセスするため。 | はい | Android >= 6.0 |
| マイク権限。 | 音声キャプチャ用にデバイスのマイクにアクセスするため。 | はい | Android >= 6.0 |
| ネットワーク権限。 | WebRTC などのネットワーク経由で音声/ビデオデータを送信するため。 | はい | いいえ |
| アプリがネットワーク状態にアクセスできるようにする。 | 再接続処理など、伝送品質の最適化のために接続性を監視するため。 | 必要に応じて | いいえ |
| アプリが Wi-Fi 状態にアクセスできるようにする。 | ネットワークパフォーマンスの最適化のために Wi-Fi 接続情報を取得するため。 | 必要に応じて | いいえ |
| アプリがオーディオ設定を変更できるようにする。 | システムボリュームの調整やオーディオ出力デバイスの切り替えを行うため。 | 必要に応じて | いいえ |
| 基本的な Bluetooth 権限。 | ヘッドセットなどの Bluetooth デバイスに接続するため。 | 必要に応じて | いいえ |
| Bluetooth 接続権限。 | ペアリング済みの Bluetooth デバイスと通信し、音声ストリーミングなどを実現するため。 | 必要に応じて | android >= 12 |
| 電話状態情報へのアクセスを許可する。 | 通話状態に基づいて音声の開始/停止を行うため。 | 必要に応じて | android >= 6.0 |
| アプリが外部ストレージから読み取れるようにする。 | ローカルの音楽ファイルを再生するため。 | 必要に応じて | android >= 6.0 |
| アプリが外部ストレージに書き込めるようにする。 | 音声/ビデオファイル、ログ、その他のデータを保存するため。 | 必要に応じて | android >= 6.0 |
ステップ 4:コード難読化の防止(任意)
app/proguard-rules.pro ファイルで SDK のルールを構成し、SDK が提供するインターフェイスが難読化されて関数呼び出しが正常に行われなくなることを防ぎます。
-keep class com.aliyun.allinone.** {
*;
}
-keep class com.aliyun.rts.network.AliHttpTool {
*;
}
-keep class com.aliyun.common.AlivcBase {
*;
}
-keep class com.huawei.multimedia.alivc.** {
*;
}
-keep class com.alivc.rtc.** {
*;
}
-keep class com.alivc.component.** {
*;
}
-keep class org.webrtc.** {
*;
}よくある質問
ARTC SDK は追加の権限を追加しますか?
はい。ARTC SDK をインポートすると、アプリのマニフェストに自動的に以下の Android 権限が追加されます。正確なリストは SDK バージョンによって異なる場合があります。確定的なリストについては、.aar ライブラリ内の AndroidManifest.xml ファイルをご確認ください。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />これらの権限は、主にネットワーク状態検出、Wi-Fi 情報アクセス、Bluetooth 接続、オーディオルーティングなどの機能に使用されます。
権限の競合や互換性の問題をどのように処理すればよいですか?
ARTC SDK には Android バージョンの互換性を処理する内部ロジック(例:Android 12+ での BLUETOOTH_CONNECT のランタイム権限要求)が含まれていますが、特定のシナリオでは問題が発生する可能性があります。
ランタイムの問題:ビルドプロセス中にマニフェストのマージに失敗するなど、予期しない動作が発生する可能性があります。
Google Play 審査のリスク:アプリが使用していない機能(例:Bluetooth)の権限を宣言している場合、最小権限の原則に違反し、Play ストアからアプリが拒否される可能性があります。
これらの問題を解決するには、以下の手順を推奨します。
権限の必要性を評価
まず、アプリが SDK によって宣言されたすべての権限を必要とするかどうかを評価します。機能(例:Bluetooth)を使用しない場合は、その権限宣言を削除します。たとえば、アプリのtargetSdkVersionが 30 以下の場合、BLUETOOTH_CONNECT権限は不要です。マニフェストマージルールを使用して競合を解決
複数のライブラリモジュールが同じ権限を異なる属性(例:maxSdkVersion)で宣言している場合、アプリのメインAndroidManifest.xmlファイルでtools名前空間を使用して動作を上書きできます。<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- 例:アプリで不要な SDK が宣言した権限を削除 --> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove" /> <!-- 例:権限属性を上書き --> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" tools:replace="android:maxSdkVersion" /> </manifest>
iOS
環境要件
Xcode 14.0 以降。最新の公式バージョンの使用を推奨します。
CocoaPods 1.9.3 以降。
iOS 9.0 以降を実行する物理デバイス。
ステップ 1:SDK のインポート
CocoaPods による自動統合(推奨)
ターミナルを開き、CocoaPods をインストールします。すでにインストール済みの場合は、この手順をスキップしてください。
sudo gem install cocoapodsターミナルを開き、プロジェクトのルートディレクトリに移動して、次のコマンドを実行して Podfile を作成します。
pod init生成された Podfile を開き編集し、RTC SDK の依存関係を追加します。最新バージョンは 7.10.0 です。
target 'MyApp' do
use_frameworks!
# ${latest version} を具体的なバージョン番号に置き換えます。
pod 'AliVCSDK_ARTC', '~> ${latest version}'
endターミナルで、次のコマンドを実行してプロジェクト内の CocoaPods 依存関係ライブラリを更新します。
pod install正常に実行されると、プロジェクトフォルダに拡張子が
.xcworkspaceのプロジェクトファイルが生成されます。このファイルをダブルクリックして Xcode でプロジェクトを開くと、ワークスペース内の CocoaPods 依存関係が自動的に読み込まれます。
手動統合
「SDK のダウンロード」から最新の ARTC SDK パッケージを取得し、解凍します。
解凍したパッケージからフレームワークファイルをプロジェクトディレクトリにコピーします。
Xcode でプロジェクトを開き、メニューから
File -> Add Files to "xxx"を選択し、SDK ライブラリファイルをプロジェクトに追加します。
ターゲットを選択し、インポートしたフレームワークファイルを
"Embed & Sign"に設定します。

ステップ 2:権限の構成
録画およびカメラ権限を追加する必要があります。
Info.plist ファイルにカメラおよびマイク権限の Privacy - Camera Usage Description および Privacy - Microphone Usage Description を追加します。

オーディオのバックグラウンドモードを有効化(任意)。
図に示すように、Audio, AirPlay, and Picture in Picture をチェックします。

Windows
環境要件
Visual Studio 2015 以降。
Windows 7 以降。
SDK の統合
「SDK のダウンロード」から最新の ARTC SDK パッケージを取得します。
パッケージを解凍し、ディレクトリ内のファイルをプロジェクトにコピーします。
プロジェクトのプロパティを構成します。
Solution Explorer ウィンドウでプロジェクトを右クリックし、メニューから [Properties] を選択します。
インクルードディレクトリの追加:[Configuration Properties] > [C/C++] > [General] を選択し、[Additional Include Directories] にヘッダーファイルのパスを追加します。
ライブラリディレクトリの追加:[Properties] ウィンドウで [Configuration Properties] > [Linker] > [General] を選択し、[Additional Library Directories] にライブラリファイル (.lib) のパス(例:
.../x64/Release)を追加します。リンクライブラリファイルの指定:[Properties] ウィンドウで [Configuration Properties] > [Linker] > [Input] を選択し、[Additional Dependencies] にリンクするライブラリファイル名 "AliRTCSdk.lib" を追加します。
macOS
環境要件
開発ツール:Xcode 14.0 以降。最新の公式バージョンの使用を推奨します。
テストデバイス:macOS 10.13 以降を実行する Mac コンピュータ。
ネットワーク:安定した接続。
ARTC アプリケーション:ARTC アプリケーションの AppID および AppKey。「ARTC アプリケーションの作成」をご参照ください。
手動統合
「macOS 向け最新 ARTC SDK のダウンロード」からパッケージを取得し、解凍します。
ファイルをプロジェクトディレクトリにコピーします。音声エンコーディングに AAC を使用しない場合は、
PluginAAC.frameworkを省略できます。Xcode でプロジェクトを開き、必要なダイナミックライブラリを追加します。追加した各フレームワークの Embed 属性が Embed & Sign に設定されていることを確認してください。
リリース履歴
バージョン | プラットフォーム | リリース日 | 改訂内容 |
V7.10.0 | iOS | 2026-01-10 | 修正:
|
Android | |||
Linux | |||
V7.9.1 | iOS | 2025-12-04 |
|
Android | |||
V7.8.1 | iOS | 2025-11-12 |
|
Android | |||
V7.8.0 | iOS | 2025-11-05 |
|
Android | |||
Mac | 2025-12-01 | ||
V7.7.0 | iOS | 2025-09-30 |
|
Android | |||
V7.6.0 | iOS | 2025-09-02 |
|
Android | |||
Windows | |||
V7.5.0 | iOS | 2025-07-31 |
|
Android | |||
V7.4.0 | iOS | 2025-07-01 |
|
Android | |||
V7.3.0 | iOS | 2025-05-30 |
|
Android | |||
V7.2.1 | Windows | 2025-05-12 |
|
V7.2.0 | iOS | 2025-04-28 |
説明 V6.18.0 以降から V7.2.0 に SDK を更新した後は、ミュート関連のインターフェイスに注意してください。 |
Android | 2025-04-28 | ||
V7.1.0 | iOS | 2025-04-01 |
|
Android | 2025-04-01 | ||
V7.0.0 | iOS | 2025-02-28 |
|
Android | |||
Windows | 2025-03-31 |
| |
V6.21.0 | iOS | 2025-01-22 |
|
Android | |||
V6.20.0 | iOS | 2024-12-30 |
|
Android | |||
V6.19.0 | iOS | 2024-12-20 |
|
Android | |||
V6.18.0 | iOS | 2024-12-09 |
|
Android | |||
V6.17.0 | iOS | 2024-11-04 |
|
Android | |||
V6.15.0 | iOS | 2024-09-24 |
|
Android | |||
Windows |
| ||
V6.11.3 | iOS | 2024-09-14 | AI + RTC シナリオ向けに、音声チャットルーム用の音声プロファイルを提供し、完全なウェルカムメッセージがブロードキャストされることを保証します。 |
Android | 2024-09-14 | ||
V6.11.2 | iOS | 2024-08-16 |
|
Android | |||
V6.11.0-beta | HarmonyOS | 2024-10-24 |
|
V6.8.7 | iOS | 2024-06-03 |
|
Android | |||
V6.8.5 | iOS | 2024-04-01 |
|
Android | |||
V6.8.2 | iOS | 2024-03-04 |
|
Android | |||
V6.8.1 | Windows | 2024-03-19 |
|
V6.4.3 | iOS | 2023-12-04 |
|
Android |