このトピックでは、ARTC SDK のダウンロードリンク、統合プロセス、およびその他の関連情報について説明します。
SDK の統合
Android
環境要件
ARTC SDK を統合する前に、開発環境が次の要件を満たしていることを確認してください:
Android Studio 2020.3.1 以降。
Android 5.0 (API レベル 21) 以降を実行し、インターネットに接続されている物理デバイス。
ステップ 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.11.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 は依存関係をバージョンカタログに移行することを推奨します。詳細については、「バージョンカタログへの依存関係の移行」をご参照ください。
手動
「SDK のダウンロード」から、必要なバージョンの ARTC SDK の AAR ファイルをダウンロードします。最新バージョンは 7.11.0 です。ファイル名は
AliVCSDK_ARTC-x.y.z.aarのフォーマットです。ダウンロードした 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 のアプリの場合
プロジェクトの 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" />SDK には
BLUETOOTH_CONNECT権限の宣言が含まれています。これは Android 12 (API レベル 31) で導入され、requestPermissionsを使用してランタイムでリクエストする必要があります。一部のデバイスでは、アプリのマニフェストに
BLUETOOTH_CONNECT宣言が含まれている場合、システムはランタイムで権限をリクエストすることを要求します。これを怠るとSecurityExceptionが発生する可能性があります。この問題が発生した場合は、2 つのオプションがあります:オプション 1:
tools:node="remove"を使用して権限宣言を削除する。オプション 2:ランタイムで権限をリクエストする。
targetSdk >= 31 のアプリの場合
プロジェクトの targetSdk が 31 以上の場合、レガシーと新しい Bluetooth 権限の両方を処理する必要があります。メインアプリの AndroidManifest.xml ファイルで権限を宣言します:
<!-- レガシー Bluetooth 権限を宣言し、下位互換性のために android:maxSdkVersion を 30 に設定します -->
<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 に関連するクラッシュや権限ポップアップを避けるために、不要な 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 などの機能が使用されない場合は、対応する権限宣言を削除できます。たとえば、アプリが Android API 30 以下のデバイスでのみ実行される場合、targetSdkバージョンが 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
環境要件
ARTC SDK を統合する前に、開発環境が次の要件を満たしていることを確認してください:
Xcode 14.0 以降。最新の公式バージョンを推奨します。
CocoaPods 1.9.3 以降。
iOS 9.0 以降を実行している物理デバイス。
ステップ 1:SDK のインポート
CocoaPods (推奨)
ターミナルを開き、開発デバイスに CocoaPods をインストールします。CocoaPods が既にインストールされている場合は、このステップをスキップしてください。
sudo gem install cocoapodsターミナルを開き、プロジェクトのルートディレクトリに移動して、次のコマンドを実行して Podfile を作成します。
pod init生成された Podfile を開いて編集し、ARTC SDK の依存関係を追加します。最新バージョンは 7.11.0 です。
target 'MyApp' do
use_frameworks!
# ${latest version} を特定のバージョン番号に置き換えます。
pod 'AliVCSDK_ARTC', '~> ${latest version}'
endターミナルで、次のコマンドを実行してプロジェクトの CocoaPods 依存関係を更新します。
pod installコマンドが完了すると、プロジェクトフォルダに
.xcworkspace拡張子を持つプロジェクトファイルが生成されます。このファイルをダブルクリックして Xcode でプロジェクトを開きます。ワークスペースは自動的に CocoaPods の依存関係をロードします。
手動
最新の ARTC SDK パッケージをダウンロードして解凍します。
解凍したパッケージからフレームワークファイルをプロジェクトディレクトリにコピーします。
Xcode でプロジェクトを開き、
File -> Add Files to "xxx"を選択し、SDK ライブラリファイルをプロジェクトに追加します。
ターゲットを選択し、インポートされたフレームワークの Embed 属性を
"Embed & Sign"に設定します。

ステップ 2:権限の設定
カメラとマイクへのアクセスのための権限を追加する必要があります。
Info.plist ファイルに、プライバシー - カメラの利用目的の説明 と プライバシー - マイクの利用目的の説明 のキーと説明を追加します。

バックグラウンドオーディオモードを有効にします (任意)。
このモードを有効にするには、プロジェクトの capabilities で Audio, AirPlay, and Picture in Picture を選択します。

Windows
環境要件
ARTC SDK を統合する前に、開発環境が次の要件を満たしていることを確認してください:
Visual Studio 2015 以降。
Windows 7 以降。
SDK の統合
最新の ARTC SDK パッケージをダウンロードします。
パッケージを解凍し、ファイルをプロジェクトにコピーします。
プロジェクトのプロパティを構成します:
ソリューションエクスプローラー ウィンドウで、プロジェクトを右クリックし、プロパティを選択します。
インクルードディレクトリを追加します:構成プロパティ → C/C++ → 全般 に移動し、追加のインクルードディレクトリ にヘッダーファイルのパスを追加します。
ライブラリディレクトリを追加します。プロパティウィンドウで、構成プロパティ > リンカー > 全般 を選択します。追加のライブラリディレクトリ フィールドに、ライブラリファイル (.lib) のパス (例:
.../x64/Release) を追加します。リンクライブラリファイルを指定します:プロパティウィンドウで、構成プロパティ → リンカー → 入力 に移動し、追加の依存ファイル にライブラリファイル名 "AliRTCSdk.lib" を追加します。
macOS
環境要件
ARTC SDK を統合する前に、開発環境が次の要件を満たしていることを確認してください:
開発ツール: Xcode 14.0 以降。最新の公式バージョンを推奨します。
テストデバイス: macOS 10.13 以降を実行している Mac コンピュータ。
ネットワーク環境: 安定したネットワーク接続が必要です。
アプリケーションの準備: リアルタイム通信アプリケーションの AppID と AppKey を取得します。詳細については、「アプリケーションの作成」をご参照ください。
手動統合
最新の ARTC SDK パッケージをダウンロードして解凍します。
SDK パッケージからファイルをプロジェクトディレクトリにコピーします。音声エンコーディングに AAC を使用しない場合は、
PluginAAC.frameworkを省略してください。Xcode を開き、必要な動的ライブラリを追加します。追加した動的ライブラリの Embed 属性を Embed & Sign に設定します。
リリース履歴
バージョン | プラットフォーム | リリース日 | 説明 |
v7.11.0 | iOS | 2026-04-08 |
|
Android | |||
v7.10.0 | iOS | 2026-01-10 |
|
Android | |||
v7.9.1 | iOS | 2025-12-04 |
|
Android | |||
v7.8.1 | iOS | 2025-11-12 |
|
Android | |||
v7.8.0 | iOS | 2025-11-05 |
|
Android | |||
macOS | 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 |
|
Android | |||
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 ユースケースで、ウェルカムメッセージの完全な再生を保証するためにチャットルーム AudioProfile を追加しました。 |
Android | 2024-09-14 | ||
v6.11.2 | iOS | 2024-08-16 |
|
Android | |||
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 |