42 lines
2.0 KiB
TypeScript
42 lines
2.0 KiB
TypeScript
import type { ConfigContext, ExpoConfig } from 'expo/config';
|
||
|
||
// Версию проставляет CI из git-тега (scripts/version.mjs): PIPU_VERSION=1.2.3, PIPU_VERSION_CODE=1020399.
|
||
const version = process.env.PIPU_VERSION ?? '0.0.0';
|
||
const versionCode = Number(process.env.PIPU_VERSION_CODE ?? '1');
|
||
|
||
export default ({ config }: ConfigContext): ExpoConfig => ({
|
||
...config,
|
||
name: 'Pipu Music',
|
||
slug: 'pipu-music',
|
||
scheme: 'pipu',
|
||
version,
|
||
orientation: 'portrait',
|
||
userInterfaceStyle: 'automatic',
|
||
// react-native-track-player 4 не поддерживает New Architecture (React Native Directory) — фоновое
|
||
// воспроизведение и уведомление важнее; вернём, когда плеер её поддержит (docs/mobile.md).
|
||
newArchEnabled: false,
|
||
backgroundColor: '#05070D',
|
||
android: {
|
||
package: 'app.pipu.music',
|
||
versionCode,
|
||
edgeToEdgeEnabled: true,
|
||
allowBackup: false,
|
||
permissions: ['REQUEST_INSTALL_PACKAGES'],
|
||
},
|
||
platforms: ['android'],
|
||
plugins: [
|
||
// Маршруты — файлы в src/app (docs/mobile.md).
|
||
['expo-router', { root: './src/app' }],
|
||
'expo-secure-store',
|
||
// Сервер часто живёт в домашней сети без TLS (http://192.168.1.10:8080), а release-сборка
|
||
// Android по умолчанию запрещает незашифрованный HTTP.
|
||
// Распаковываем .so при установке: SoLoader на x86_64 с ARM-трансляцией ищет
|
||
// внутри APK lib/x86_64 вместо arm64-v8a и не находит libreactnative.so.
|
||
['expo-build-properties', { android: { usesCleartextTraffic: true, useLegacyPackaging: true } }],
|
||
// APK только под arm64-v8a — та же ABI, под которую собираются нативные модули (plugins/withArm64Only.js).
|
||
'./plugins/withArm64Only',
|
||
],
|
||
extra: { versionCode },
|
||
experiments: { typedRoutes: false },
|
||
});
|