ci / mobile / mobile (Metro-бандл Android) (push) Successful in 2m30s
ci / ts / ts (packages + web) (push) Successful in 3m29s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 2m10s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 56s
ci / desktop / rust (desktop proxy) (push) Successful in 3m15s
48 lines
2.2 KiB
TypeScript
48 lines
2.2 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',
|
||
icon: './assets/icon.png',
|
||
version,
|
||
orientation: 'portrait',
|
||
userInterfaceStyle: 'automatic',
|
||
// react-native-track-player 4 не поддерживает New Architecture (React Native Directory) — фоновое
|
||
// воспроизведение и уведомление важнее; вернём, когда плеер её поддержит (docs/mobile.md).
|
||
newArchEnabled: false,
|
||
backgroundColor: '#05070D',
|
||
android: {
|
||
adaptiveIcon: {
|
||
foregroundImage: './assets/adaptive-icon.png',
|
||
monochromeImage: './assets/monochrome-icon.png',
|
||
backgroundColor: '#05070D',
|
||
},
|
||
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 },
|
||
});
|