集成テンセントショートビデオ SDK の記録#
ビデオを録画してアップロードする要件があり、サーバー側で表示できるようにします。最終的にはテンセント SDK を統合する方法を取りましたが、いくつかの曲がり角がありましたので、ここに記録しておきます。
SDK の選択#
まず最初に SDK の選択です。iOS の場合、テンセントのショートビデオ SDKを使用します。
SDK の統合#
次に、SDK の統合です。上記のリンクの手順に従って、TXLiteAVSDK_UGC.framework
と依存するシステムライブラリをプロジェクトに統合し、その後、plist の権限を追加し、UGCKit モジュールを追加します。しかし、コンパイルエラーが発生しました。
私のプロジェクトでは、WCDB ライブラリの競合が原因でした。プロジェクトでは、WCDB をカプセル化したプライベートライブラリを使用しており、静的ライブラリの形式で使用しています。これが上記の SDK と競合しているため、個別に設定する必要があります。長い間修正を行い、コンパイルが成功した後、実行すると WCDB の初期化に失敗することがわかりました。さらに長い間トラブルシューティングを行い、最終的な解決策は次のとおりです:
Build Settings の Other Linker Flags で次のように設定します:
-force_load
"${PODS_CONFIGURATION_BUILD_DIR}/WCDBOptimizedSQLCipher/libWCDBOptimizedSQLCipher.a"
以下のようになります:
その後、上記の手順に従って統合した後、インストールパッケージのサイズが 27M から 156M に増えました... 再度トラブルシューティングを行った結果、UGCKit モジュール全体は追加する必要がないことがわかりました。なぜなら、私たちの録画には UGCKit で提供されているクラスを使用しておらず、カスタムクラスを使用しているため、TXLiteAVSDK_UGC.framework
の機能を使用しているからです。UGCKit モジュールを削除すると、パッケージサイズは再び 27M 程度になります。