結論
審査員のネットワーク環境が原因で接続を確立できないのが原因。
対処法としては...
- レビュワーと交渉して別のネットワーク環境での接続を試してもらう
- 動作時の動画を送って問題なく動作することを証明する etc...
問題の発生
ClubHouse等で使われているAgoraSDKを使ったビデオ通話アプリの申請中、
Apple審査員から「通話機能が使えません」とのことでリジェクトされる。
→ ちなみに他の接続を要する機能は使えてました。
調査
原因の特定
カメラや音声設定の可能性もあるので、ひとまず該当箇所にログを仕込んで原因箇所を特定。
通話処理部分の各ステップごとに自社サーバー側へログを送信する処理を実装。
SDKで用意している関数内で通話接続の確立に失敗していることが判明。
社内Wifiや4G、LTE等の通信環境、端末やOSのバージョンを変えて試してみるも再現できず...
審査員側の端末内に出力されるAgoraSDKのログを取得してサポートに解析を依頼。
ログを解析してもらったところ、「通話接続の試行時にタイムアウトが発生しており、通話機能で必要なポートが相手方ネットワーク環境で開放されていない可能性がある」とのこと。
類似の問題がないか
色々調べているとAppleの開発者フォーラムに類似の質問を発見。
UDPやらTCPやら使う際に稀に発生している問題らしいです。
Apple reviewer can't connect - Apple Developer Forums
対処した方法
審査員に「ネットワーク環境が問題とのログが出ています。具体的には〜。ネットワーク環境を変えてお試しください。」と送って再度レビューしてもらうよう依頼。
→ 通りました!
参考リンクまとめ
Apple reviewer can't connect - Apple Developer Forums
Agora ビデオ通話・ライブ配信SDK - ブイキューブ