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

Установка

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

Требования

  • iOS 13.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, '13.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.