Building in Xcode
The simplest way to build and run Izzy Music Player is directly from Xcode.Building from command line
You can also build Izzy usingxcodebuild from the command line:
Creating a DMG
To create a distributable DMG file, use the provided build script.Run the build script
Execute the build script:This script performs the following steps:
- Cleans previous builds
- Builds the app using xcodebuild
- Creates an archive
- Exports the app
- Bundles the Python backend and dependencies
- Creates a DMG file
Build process details
Thebuild_dmg.sh script automates the entire build and packaging process:
Archive creation
App export
Python backend bundling
The script bundles the Python backend into the app’s Resources directory:- Copies
ytmusic_service.py - Bundles the
music_envvirtual environment (if present) - Includes update files (
update.json,appcast.xml,release-notes.html)
DMG creation
The final DMG is created usinghdiutil:
- The Izzy.app bundle
- A symbolic link to the Applications folder for easy installation
- README file (if
DMG_README.mdexists)
Code signing
If you need to sign the app for distribution, set theCODESIGN_IDENTITY environment variable before running the build script:
- Re-sign the app bundle with your identity
- Verify the code signature
- Ensure the app is properly signed for distribution
Build configurations
Izzy supports two build configurations:- Debug - For development with debug symbols and verbose logging
- Release - Optimized build for distribution
build_dmg.sh script uses the Release configuration by default.
Troubleshooting
Build fails
If the build fails, check:- Xcode is properly installed and up to date
- Command Line Tools are installed:
xcode-select --install - All dependencies are installed:
pip install -r requirements.txt
App not found after build
Ifbuild/Release/Izzy.app is not found after building:
Code signing errors
If code signing fails:- Verify your signing identity:
security find-identity -v -p codesigning - Ensure
CODESIGN_IDENTITYmatches exactly - Check that your certificates are valid and not expired
DMG creation fails
Ifhdiutil fails to create the DMG:
Next steps
After building the app successfully:- Test the app thoroughly on your system
- Verify all features work as expected
- Consider adding your Gemini API key in Settings for AI features
- Report any issues on the GitHub repository