Say goodbye to iTunes sync!
ByeTunes is a native iOS app that lets you inject music (MP3, M4A, FLAC, WAV) and ringtones directly into your device's media library—without needing a computer connection for every sync. It communicates directly with the iOS media database, giving you the power to manage your music on your terms.
- Direct Music Injection: Add songs to your Apple Music library without a PC.
- Ringtone Manager: Inject custom ringtones (
.m4rand.mp3auto-conversion). - Playlist Support: Create and manage playlists on the fly.
- No Computer Needed (after setup): Once paired, you're free!
- Metadata Editing: Auto-fetched from iTunes or Deezer.
To build ByeTunes yourself, you'll need a Mac with Xcode.
- Xcode: Version 15+ recommended.
- iOS Device: Running iOS 17.0 or later.
ByeTunes relies on idevice (a libimobiledevice alternative) to talk to the iOS internal file system. These files are NOT included in this repository for licensing/size reasons.
To compile the app, you need to obtain these two files and place them in the MusicManager/ directory:
libidevice_ffi.a(Static Library)idevice.h(Header File)
You can find idevice and compile it from here: https://github.com/jkcoxson/idevice
If you don't have these files, the project will not compile.
-
Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Add the ios Arch:
rustup target add aarch64-apple-ios
-
Install Xcode Command Line Tools if you don't have it already installed:
xcode-select --install
-
Clone the repo:
git clone https://github.com/jkcoxson/idevice
-
Set a deployment target:
export IPHONEOS_DEPLOYMENT_TARGET=xx.x -
Run the cargo build:
cargo build --release --package idevice-ffi --target aarch64-apple-ios
Inside the idevice folder find: idevice.h and libidevice_ffi.a. Move them inside the project in Xcode, make sure you create Bridging-Header.h Inside your Xcode project and make sure you add:
#import "idevice.h"In Project Settings > Build Phases > Link Binary With Libraries, make sure libidevice_ffi.a is listed.
-
LocalDevVPN:
- Download LocalDevVPN from the App Store/Altstore PAL https://apps.apple.com/us/app/localdevvpn/id6755608044.
- Open it and tap Connect, you will need an active connection to import the pairing file inside the app.
-
Pairing:
- On first launch, you'll see an "Import Pairing File" screen.
- You need to get a
pairing file. - Download idevice_pair refer to https://github.com/jkcoxson/idevice_pair .
- Generate you
pairing file. - Export it from your computer and Airdrop/Save it to your iPhone.
- Import it into ByeTunes.
-
Add Music:
- Tap "Add Songs" and select files from your Files app.
- Hit "Inject to Device" and watch the magic happen.
-
Ringtones:
- Go to the Ringtones tab, add your file, and inject!
- Signed Apps: If you install this via a signing service (Signulous, AltStore, etc.), the app includes a fix (
asCopy: true) to ensure file importing works correctly without crashing. - Backup: Always good to have a backup of your music library before messing with database injection!
Found a bug? We'd love to fix it!
- Report Issues: Open a ticket on GitHub Issues.
- Join the Community: Chat with us on Discord.
- Attach Debug Logs:
- If you are experiencing injection failures, please use the Debug Release provided in the GitHub Releases.
- This version includes a "Debug Logs" screen in Settings where you can copy the app logs.
- Please attach these logs to your issue report—they help us solve problems much faster!
Created with ❤️ by EduAlexxis