feat: Android
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { execSync } from 'child_process';
|
||||
import fs from 'fs';
|
||||
import https from 'https';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const url =
|
||||
'https://github.com/tomhula/JecnaAPI/releases/download/v10.3.5/JecnaapiIOS-v10.3.5-xcframework.zip';
|
||||
const iosDir = path.join(__dirname, '..', 'ios');
|
||||
const zipPath = path.join(iosDir, 'framework.zip');
|
||||
|
||||
if (fs.existsSync(path.join(iosDir, 'JecnaapiIOS.xcframework'))) {
|
||||
console.log('JecnaapiIOS XCFramework already exists.');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
console.log('Downloading JecnaapiIOS XCFramework...');
|
||||
|
||||
function download(url, dest) {
|
||||
return new Promise((resolve, reject) => {
|
||||
https
|
||||
.get(url, (res) => {
|
||||
if (res.statusCode === 301 || res.statusCode === 302) {
|
||||
return download(res.headers.location, dest).then(resolve).catch(reject);
|
||||
}
|
||||
if (res.statusCode !== 200) {
|
||||
return reject(new Error(`Server responded with status code ${res.statusCode}`));
|
||||
}
|
||||
const file = fs.createWriteStream(dest);
|
||||
res.pipe(file);
|
||||
file.on('finish', () => {
|
||||
file.close(resolve);
|
||||
});
|
||||
})
|
||||
.on('error', reject);
|
||||
});
|
||||
}
|
||||
|
||||
download(url, zipPath)
|
||||
.then(() => {
|
||||
console.log('Unzipping framework...');
|
||||
execSync(`unzip -o -q "${zipPath}" -d "${iosDir}"`);
|
||||
fs.unlinkSync(zipPath);
|
||||
console.log('iOS framework successfully linked.');
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('Failed to download framework:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user