尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Your Lithuanian songbook, with lyrics, sheet music, recordings, chords, and more
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗This is an Expo project. As best as I understand it, Expo is a framework to make everything about developing with React Native easier. This project was created with create-expo-app.
ERR_PNPM_LOCKFILE_CONFIG_MISMATCH, and a plain npm i -g pnpm now gets a newer major.
Install it with npm i -g pnpm@10 or corepack prepare pnpm@10 --activate. (There is
deliberately no packageManager field; Vercel's handling of it broke the deployments.)pnpm install
This is a pnpm workspace: the root is the Expo app (and, built for the web, https://dainorelis.app) and
admin/ is the CMS (see admin/README.md). To refresh the bundled song data, copy
.env.example to .env, fill in ADMIN_EXPORT_TOKEN, and run pnpm update-songs.
pnpm dev:web
pnpm dev:ios
pnpm dev:android
For Android and iOS to work, you'll probably have to do some setup. Here's some reading to get you started:
If you don't want to deal with the Test Flight or Google Play Console to test a production build on your own device, try this:
# Android
npx expo run:android --variant release --device
# iOS
npx expo run:ios --configuration Release --device
Note that plugins/withIosReleaseScheme.js sets the Xcode scheme's Run action to Release, so
Run in Xcode also builds Release.
plugins/withAndroidReleaseSigning.js makes the release build type use an upload keystore read
from Gradle properties. Without them the release build is unsigned and can't be installed. Put
them in ~/.gradle/gradle.properties (not android/gradle.properties, which prebuild
generates):
MYAPP_UPLOAD_STORE_FILE=/absolute/path/to/upload-key.keystore
MYAPP_UPLOAD_STORE_PASSWORD=...
MYAPP_UPLOAD_KEY_ALIAS=...
MYAPP_UPLOAD_KEY_PASSWORD=...
A relative MYAPP_UPLOAD_STORE_FILE resolves against android/app/. Keystores are gitignored.
If you do want to deal with TestFlight or Google Play Console to test a production build on your device (or other peoples' devices)... or if you're just ready to release a new version of the app, check this out:
Run npx expo prebuild --clean right before every store build. app.config.ts generates
the build number (yymmdd##, used for both versionCode and CFBundleVersion) and reads the
version from package.json when prebuild generates ios/ and android/. expo run:* only
prebuilds when a folder is missing, and Gradle and Xcode reuse what is on disk, so an older folder
carries an old number and the stores reject a reused one. For a second build on the same
day, bump buildToday in app.config.ts first. Prebuilding iOS runs pod install, so do it on
a Mac.
Prebuild also pulls the latest songs from the admin (plugins/withSongSync.js runs
pnpm update-songs, so .env needs ADMIN_EXPORT_TOKEN) and fails if it can't. If it says the
song data changed, commit it. SKIP_SONG_SYNC=1 skips the sync for throwaway native builds, never
for a store build.
Routes live in the app directory. Those routes' components/hooks/utils/whatever live in the lib directory.
ios/ and android/ aren't committed: they are generated
(Continuous Native Generation)
from app.config.ts and the config plugins in plugins/. pnpm dev:ios / pnpm dev:android
generate them the first time. After an SDK bump, or changing app.config.ts, a plugin, assets
or a library with native code, regenerate them with
npx expo prebuild --clean
before continuing with the dev commands up above. Never hand-edit the generated folders (the
next prebuild wipes them); put native config in app.config.ts or a plugin in plugins/.
To learn more about developing your project with Expo, look at the following resources:
The forest photo on the home screen is by Sebastian Unrau on Unsplash.