Bitriseでオーディオ再生をテストする(iOS)
趣味で音楽プレーヤーアプリを作り始めたのでBitriseをセットアップしました。
初回テストを兼ねて最初にオーディオを再生する簡素なコードとテストを書いてCIを動かしたところテストが失敗しました。
(もちろんローカル環境でのテストはパスしている状態です。)
エラーログは下記の通り。
[AudioHAL_Client] AudioHardware.cpp:875:AudioObjectAddPropertyListenerBlock: AudioObjectAddPropertyListenerBlock: no object with given ID 0 [AudioHAL_Client] AudioHardware.cpp:875:AudioObjectAddPropertyListenerBlock: AudioObjectAddPropertyListenerBlock: no object with given ID 0 [DDAgg] DefaultDeviceAggregate.cpp:737:BuildAggregate: Error finding valid input or output devices! [AudioHAL_Client] AudioHardware.cpp:2682:AudioDeviceStop: AudioDeviceStop: no device with given ID [aqme] 318: error -66680 finding/initializing AQDefaultDevice [aurioc] 918: failed: -10851 (enable 2, outf< 2 ch, 44100 Hz, Int16, inter> inf< 2 ch, 0 Hz, Int16, inter>) [AudioHAL_Client] AudioHardware.cpp:2682:AudioDeviceStop: AudioDeviceStop: no device with given ID [aqme] 318: error -66680 finding/initializing AQDefaultDevice 108: * * * NULL AQIONode object 771: Can't make UISound Renderer
有効な入出力デバイスが見つからないと言っていますね。 Bitriseでオーディオ再生を伴うテストをする場合、audio input/output deviceを作る必要があるみたいです。
オーディオデバイスを作成する手順
Homebrewでインストールすることができます。
- Workflowに
Script
stepを追加 - Script contentを記入
#!/usr/bin/env bash set -ex brew install Caskroom/cask/soundflower brew install switchaudio-osx SwitchAudioSource -s "Soundflower (2ch)" -t input SwitchAudioSource -s "Soundflower (2ch)" -t output
この状態でリビルドすると失敗していたテストケースが全て成功するようになりました。