mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 09:12:09 +10:00
Refactor/maven (#889)
* mavenize * mavenization * mavenization * mavenization * mavenization * mavenization * mavenization * mavenization * mavenization * fix * app framework update * fix lib * lib * fix mavenized * fix mavenized * fix mavenized * fix mavenized * fix mavenized * fix mavenized * fix mavenized * fix mavenized * building for win and linux * Create run.bat * fixes for netlist * cleanup * unit tests * unit tests * configurable high dpi * performance upgrade * performance upgrade * rotate bug * Omit boards, wires, traces, terminals, etc from Spice netlist output * splash version update * optimize libs * optimize libs * updates * mac build maven * ruler optimization, moved images * cleanup * notarization * test workflow * build * Update pom.xml * Update pom.xml * Create README.md * Create test.yml * maven * build
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,166 @@
|
||||
# Setting up macOS Build Environment for DIYLC
|
||||
|
||||
This document describes how to set up a macOS machine for building and signing DIYLC application bundles.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. **macOS System**
|
||||
- macOS 11 (Big Sur) or later
|
||||
- Xcode Command Line Tools installed
|
||||
```bash
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
2. **Java Development Kit**
|
||||
- Install JDK 17 (recommended to use SDKMAN!)
|
||||
```bash
|
||||
# Install SDKMAN!
|
||||
curl -s "https://get.sdkman.io" | bash
|
||||
source "$HOME/.sdkman/bin/sdkman-init.sh"
|
||||
|
||||
# Install JDK 17
|
||||
sdk install java 17.0.14-tem
|
||||
```
|
||||
|
||||
3. **Maven**
|
||||
- Install Maven 3.9 or later
|
||||
```bash
|
||||
sdk install maven
|
||||
```
|
||||
|
||||
## Apple Developer Account Setup
|
||||
|
||||
1. **Apple Developer Account**
|
||||
- Enroll in the [Apple Developer Program](https://developer.apple.com/programs/)
|
||||
- You need a paid membership ($99/year) for distribution signing
|
||||
|
||||
2. **Developer Certificate**
|
||||
- Open Keychain Access
|
||||
- Go to Certificate Assistant → Request a Certificate from a Certificate Authority
|
||||
- Fill in your email and name
|
||||
- Save to disk
|
||||
- Go to [Apple Developer Certificates](https://developer.apple.com/account/resources/certificates/list)
|
||||
- Create a new Developer ID Application certificate
|
||||
- Download and double-click to install in Keychain
|
||||
|
||||
3. **Notarization Setup**
|
||||
- Create an app-specific password:
|
||||
1. Go to [Apple ID Account](https://appleid.apple.com/)
|
||||
2. Security → App-Specific Passwords → Generate Password
|
||||
3. Save this password securely
|
||||
|
||||
- Create a keychain profile for notarization:
|
||||
```bash
|
||||
xcrun notarytool store-credentials "AC_PASSWORD" \
|
||||
--apple-id "your.email@example.com" \
|
||||
--team-id "YOUR_TEAM_ID" \
|
||||
--password "app-specific-password"
|
||||
```
|
||||
|
||||
## Environment Configuration
|
||||
|
||||
1. **Set Developer Identity**
|
||||
- Find your Developer ID in Keychain Access
|
||||
```bash
|
||||
security find-identity -v -p codesigning
|
||||
```
|
||||
- Set the environment variable (add to your ~/.zshrc):
|
||||
```bash
|
||||
export APPLE_DEVELOPER_IDENTITY="Developer ID Application: Your Name (TEAM_ID)"
|
||||
```
|
||||
|
||||
2. **Verify Setup**
|
||||
```bash
|
||||
# Verify codesign is available
|
||||
codesign --version
|
||||
|
||||
# Verify notarytool is available
|
||||
xcrun notarytool --version
|
||||
|
||||
# Verify your identity is set
|
||||
echo $APPLE_DEVELOPER_IDENTITY
|
||||
```
|
||||
|
||||
## Building DIYLC
|
||||
|
||||
1. **Clone the Repository**
|
||||
```bash
|
||||
git clone https://github.com/bancika/diy-layout-creator.git
|
||||
cd diy-layout-creator/diylc
|
||||
```
|
||||
|
||||
2. **Build for Intel Macs**
|
||||
```bash
|
||||
mvn clean package -P mac-x86
|
||||
```
|
||||
|
||||
3. **Build for Apple Silicon Macs**
|
||||
```bash
|
||||
mvn clean package -P mac-arm
|
||||
```
|
||||
|
||||
4. **Build Both Architectures**
|
||||
```bash
|
||||
mvn clean package -P mac-x86,mac-arm
|
||||
```
|
||||
|
||||
## Output Files
|
||||
|
||||
After successful builds, you'll find these files in the `diylc-swing/target` directory:
|
||||
|
||||
**Signed and Notarized Builds:**
|
||||
- `diylc-<version>-osx-x86.zip` - Signed and notarized Intel build
|
||||
- `diylc-<version>-osx-arm.zip` - Signed and notarized ARM build
|
||||
|
||||
**Unsigned Builds:**
|
||||
- `diylc-<version>-osx-x86-unsigned.zip` - Unsigned Intel build
|
||||
- `diylc-<version>-osx-arm-unsigned.zip` - Unsigned ARM build
|
||||
|
||||
The unsigned builds are created before the signing and notarization process and can be useful for testing or in environments where code signing is not required.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
1. **Signing Issues**
|
||||
- Verify your certificate is valid:
|
||||
```bash
|
||||
security find-identity -v -p codesigning
|
||||
```
|
||||
- Check certificate expiration in Keychain Access
|
||||
|
||||
2. **Notarization Issues**
|
||||
- Check notarization status:
|
||||
```bash
|
||||
xcrun notarytool log <submission-id> --keychain-profile "AC_PASSWORD"
|
||||
```
|
||||
- Verify entitlements are correct in `deploy/mac/entitlements.plist`
|
||||
|
||||
3. **Build Issues**
|
||||
- Clear Maven cache:
|
||||
```bash
|
||||
rm -rf ~/.m2/repository/org/diylc
|
||||
```
|
||||
- Verify JDK version:
|
||||
```bash
|
||||
java -version
|
||||
```
|
||||
|
||||
## Common Issues
|
||||
|
||||
1. **"The specified item could not be found in the keychain"**
|
||||
- Solution: Verify your Developer ID certificate is in the keychain
|
||||
- Check the exact name matches `APPLE_DEVELOPER_IDENTITY`
|
||||
|
||||
2. **"No account for team found"**
|
||||
- Solution: Verify your Apple Developer membership is active
|
||||
- Check team ID in notarytool credentials
|
||||
|
||||
3. **"The binary is not signed"**
|
||||
- Solution: Check that the signing process isn't being skipped
|
||||
- Verify all dependencies are properly signed
|
||||
|
||||
## Support
|
||||
|
||||
For additional help:
|
||||
- Check the [Apple Code Signing Documentation](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution)
|
||||
- File an issue on the DIYLC GitHub repository
|
||||
- Contact the development team
|
||||
@@ -0,0 +1,17 @@
|
||||
Thank you for downloading DIY Layout Creator!
|
||||
|
||||
This app bundle is fully functional but not officially notarized by Apple.
|
||||
To run it on your Mac, you'll need to approve it in the 'Privacy & Security' settings.
|
||||
|
||||
Without this approval, macOS will mark it as potentially damaged and prevent it from opening.
|
||||
|
||||
A notarized version is available, but due to Apple Developer Program costs and additional requirements,
|
||||
it is exclusively offered to DIYLC Patreon supporters. For a small monthly membership fee,
|
||||
you'll receive several benefits:
|
||||
|
||||
- Access to the notarized version
|
||||
- Early access to upcoming features
|
||||
- Voting rights to influence the development roadmap
|
||||
- Direct developer support
|
||||
|
||||
Join our community at http://www.diy-fever.com/patreon
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
<key>com.apple.security.get-task-allow</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.user-selected.read-write</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.downloads.read-write</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user