Перейти к основному содержимому

Установка

Установите AIBuds SDK через CocoaPods. Если точный набор возможностей приложения еще не определен, начните с полной установки.

Требования​

  • iOS 15.0 или новее
  • Xcode 26.0 или новее
  • CocoaPods 1.16.0 или новее

Выберите способ установки​

Меньше зависимостей

Модульная установка

Выберите только используемые в продукте возможности. Необходимые уровни SDK и сторонние зависимости CocoaPods установит автоматически.

Установка с помощью AI

Интеграция с AI-ассистентом

Выберите способ установки и вставьте короткий промпт в AI-ассистенте, открытом в рабочей папке проекта.

Установить полный SDK через AIBudsSDK/AllInOne.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/integrate-aibuds-sdk. Интегрируйте AIBudsSDK/AllInOne в этот iOS-проект и проверьте интеграцию.
Открыть AIBuds Skills

Шаг 1. Добавьте SDK в Podfile​

В каждом объявлении Pod AIBudsSDK укажите источник Git:

Ruby
:git => 'https://github.com/topstepsmart/AIBuds-SDK-iOS.git'

либо путь к локальной копии SDK:

Ruby
:path => '../AIBuds-SDK-iOS'

В следующих примерах источник не указан — добавьте подходящий для проекта вариант.

Ruby
platform :ios, '15.0'

target 'YourTargetName' do
  pod 'AIBudsSDK/AllInOne'
end
Показать полный список модулей
Ruby
# Installing only AIBudsSDK selects Core.
# It does not include ABMate, an AI provider, or optional features.
pod 'AIBudsSDK'

# Base SDK types, Bluetooth orchestration, models, and protocols.
# Includes: Foundation, Log/Core
pod 'AIBudsSDK/Core'

# ABMate BLE device communication.
# Includes: Core, GCDWebServer, libopus
pod 'AIBudsSDK/ABMate'

# Shared audio-session and voice-activity processing for AI.
# Includes: Core, tenVad
pod 'AIBudsSDK/Audio'

# Core logging without the XLFacility backend.
# Includes: zipzap
pod 'AIBudsSDK/Log/Core'

# Persistent logging and local log-browser integration.
# Includes: Log/Core, iOSLogBrowserSDK
pod 'AIBudsSDK/Log/XLFacility'
Ruby
# Optional OTA protocol plugins. Install only the implementations required by
# your devices, then register each plugin before connecting a device.
pod 'AIBudsSDK/FitCloudProOTA'
pod 'AIBudsSDK/JieliOTA'
Ruby
# AI facade, sessions, reports, and provider routing.
# Includes: AI/Foundation, Core, WCDB.swift
pod 'AIBudsSDK/AI/Core'

# StarBurst AI services.
# Includes: AI/Core, Audio, StarBurst SDK, LAME, libopus, libogg
pod 'AIBudsSDK/AI/StarBurst'

# MLTCloud AI services.
# Includes: AI/Core, Audio, MagicHelper, Microsoft Speech, LAME, libopus, libogg
pod 'AIBudsSDK/AI/MltCloud'

# Local AI diagnostic dashboard.
# Includes: AI/Core, WCDB.swift, GCDWebServer, YYWebImage, iOSLogBrowserSDK
pod 'AIBudsSDK/AI/Dashboard'
Ruby
# On-device voice assistant authentication bridge.
# Includes: Core, MZEncryptSDK, OpenSSL
pod 'AIBudsSDK/VoiceAssistant'

# Persisted crash-report capture and access.
# Includes: CrashReporter framework
pod 'AIBudsSDK/CrashReporter'

# Native RTSP playback and RTMP streaming.
# Includes: Log, FFmpeg, LiveStream resource bundle
pod 'AIBudsSDK/LiveStream'

# Post-processing for imported six-axis video.
# Includes: Core, bundled AWEISIMG implementation
pod 'AIBudsSDK/VideoStabilization'

Составные subspec

Ruby
# Log/Core + Log/XLFacility
pod 'AIBudsSDK/Log'

# AI/Foundation + AI/Core + both providers + AI/Dashboard
pod 'AIBudsSDK/AI'

# Log + ABMate + FitCloudProOTA + JieliOTA + AI + VoiceAssistant
# + CrashReporter + LiveStream + VideoStabilization
pod 'AIBudsSDK/AllInOne'

# Do not normally select these implementation layers directly:
# AIBudsSDK/Foundation
# AIBudsSDK/AI/Foundation
# AIBudsSDK/ThirdParty/*

Шаг 2. Добавьте обязательные hook в Podfile​

Один раз добавьте следующий блок в Podfile. Он настраивает необходимые dynamic framework, удаляет неподдерживаемый import private header и включает совместимость с бинарным распространением.

Ruby
dynamic_frameworks = ['AFNetworking', 'WCDB.swift', 'WCDBOptimizedSQLCipher', 'SocketRocket']
pre_install do |installer|
  installer.pod_targets.each do |pod|
    if dynamic_frameworks.include?(pod.name)
      def pod.static_framework?; false; end
      def pod.build_type; Pod::BuildType.dynamic_framework; end
    end
  end
end

def patch_private_header(installer, pod_subdir_pairs)
  pod_subdir_pairs.each do |pod_name, sub_dir|
    target_dir = sub_dir ? File.join(installer.sandbox.pod_dir(pod_name), sub_dir) : installer.sandbox.pod_dir(pod_name)
    puts target_dir
    next unless Dir.exist?(target_dir)

    private_header_import = '#import <netinet6/in6.h>'
    Dir.glob(File.join(target_dir, '**', '*.{h,m}')).each do |file_path|
      puts file_path
      next unless File.exist?(file_path)

      file_content = File.read(file_path)
      next unless file_content.include?(private_header_import)

      original_mode = File.stat(file_path).mode
      File.chmod(original_mode | 0o200, file_path)
      File.write(file_path, file_content.gsub(private_header_import, ''))
      File.chmod(original_mode, file_path)
      puts "patched #{pod_name} private header import: #{File.basename(file_path)}"
    end
  end
end

post_install do |installer|
  patch_private_header(installer, {'AFNetworking' => 'AFNetworking', 'Reachability' => nil })
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
    end
  end
end

Шаг 3. Установите зависимости и откройте workspace​

Запустите CocoaPods, затем откройте созданный workspace, а не файл .xcodeproj:

BASH
pod install
open YourProject.xcworkspace

Шаг 4. Добавьте разрешения​

Обязательно для подключения устройств​

Добавьте в Info.plist оба описания использования Bluetooth:

XML
<key>NSBluetoothWhileInUseUsageDescription</key>
<string>Your app needs Bluetooth access while in use to connect to AIBuds devices.</string>

<key>NSBluetoothAlwaysUsageDescription</key>
<string>Your app needs Bluetooth access to communicate with AIBuds devices.</string>

Если отсутствует хотя бы один Bluetooth key, AIBudsSDK.initialize возвращает false.

Добавляйте только для используемых функций​

ФункцияДополнительная настройка
Запись аудио на iPhoneОписание использования микрофона
Прямая трансляция, Camera OTA или загрузка медиа через hotspot устройстваОписание использования локальной сети, Bonjour service, Access WiFi Information и Hotspot Configuration
Работа Bluetooth или AI-диалога в фонеBackground Modes, необходимые выбранному сценарию
Показать примеры дополнительных разрешений и entitlement

Микрофон

XML
<key>NSMicrophoneUsageDescription</key>
<string>Your app needs microphone access for simultaneous interpretation and conversation translation.</string>

Локальная сеть и Bonjour

XML
<key>NSLocalNetworkUsageDescription</key>
<string>Your app needs local network access to stream live video, perform device updates, and download recordings and photos.</string>

<key>NSBonjourServices</key>
<array>
  <string>_dummy._tcp</string>
</array>

Фоновые режимы

XML
<key>UIBackgroundModes</key>
<array>
  <string>bluetooth-central</string>
  <string>push-to-talk</string>
  <string>audio</string>
</array>

Entitlement для hotspot

Включите Access WiFi Information и Hotspot Configuration на вкладке Signing & Capabilities целевого приложения:

XML
<key>com.apple.developer.networking.wifi-info</key>
<true/>

<key>com.apple.developer.networking.HotspotConfiguration</key>
<true/>

Шаг 5. Проверьте установку​

  • Соберите созданный .xcworkspace.
  • Убедитесь, что target импортирует установленные framework AIBuds.
  • После добавления обязательных Bluetooth key убедитесь, что AIBudsSDK.initialize возвращает true.
  • Перейдите к разделу Быстрый старт, чтобы инициализировать SDK и подключить устройство.

Если установка или инициализация завершилась ошибкой, сначала выполните проверки из раздела Частые проблемы и только затем изменяйте cache Pod или lockfile.