feat(plugins): add LiveKit audio switch patch plugin
Introduce withLivekitAudioswitchPatch plugin for handling LiveKit audio routing and switching functionality.
This commit is contained in:
1
app.json
1
app.json
@@ -68,6 +68,7 @@
|
||||
"plugins": [
|
||||
"./plugins/withCmakeJobLimit",
|
||||
"./plugins/withJcorePatch",
|
||||
"./plugins/withLivekitAudioswitchPatch",
|
||||
"./plugins/withSigning",
|
||||
"./plugins/withMainActivityConfigChange",
|
||||
[
|
||||
|
||||
40
plugins/withLivekitAudioswitchPatch.js
Normal file
40
plugins/withLivekitAudioswitchPatch.js
Normal file
@@ -0,0 +1,40 @@
|
||||
const { withDangerousMod } = require('@expo/config-plugins');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// @livekit/react-native depends on com.github.davidliu:audioswitch via JitPack.
|
||||
// That JitPack artifact returns 403 Forbidden (repo/commit no longer accessible).
|
||||
// The original upstream com.twilio:audioswitch is published on Maven Central.
|
||||
// This plugin patches livekit's build.gradle during prebuild to swap the
|
||||
// JitPack dependency for the Maven Central one.
|
||||
const withLivekitAudioswitchPatch = (config) =>
|
||||
withDangerousMod(config, [
|
||||
'android',
|
||||
async (config) => {
|
||||
const root = config.modRequest.projectRoot;
|
||||
const gradlePath = path.join(
|
||||
root,
|
||||
'node_modules',
|
||||
'@livekit',
|
||||
'react-native',
|
||||
'android',
|
||||
'build.gradle',
|
||||
);
|
||||
|
||||
if (!fs.existsSync(gradlePath)) return config;
|
||||
|
||||
let content = fs.readFileSync(gradlePath, 'utf-8');
|
||||
const oldDep = /api\s+'com\.github\.davidliu:audioswitch:[a-f0-9]+'/;
|
||||
const newDep = `api 'com.twilio:audioswitch:1.1.5'`;
|
||||
|
||||
if (oldDep.test(content)) {
|
||||
content = content.replace(oldDep, newDep);
|
||||
fs.writeFileSync(gradlePath, content);
|
||||
console.log('[withLivekitAudioswitchPatch] replaced davidliu JitPack audioswitch with com.twilio:audioswitch:1.1.5');
|
||||
}
|
||||
|
||||
return config;
|
||||
},
|
||||
]);
|
||||
|
||||
module.exports = withLivekitAudioswitchPatch;
|
||||
Reference in New Issue
Block a user