Skip to main content

Overview

While Steps 1-4 automate the build environment setup, Step 5 requires some manual configuration within Xcode itself. These steps ensure the Xcode project correctly references the compiled libraries and is configured for development.
This step involves manual changes to the Xcode project. Follow each instruction carefully to avoid build errors.

Opening the Project

1

Locate the Xcode project

The Xcode project is located in your Miele-LXIV source directory:
open $SRC/miele-easy-x.x.x/Miele_LXIV.xcodeproj
Replace x.x.x with your actual version number.
2

Select the miele-lxiv scheme

In Xcode’s toolbar:
  1. Click the scheme dropdown (next to the Run/Stop buttons)
  2. Select “miele-lxiv” Scheme selection
3

Set build configuration to Development

  1. Go to Product → Scheme → Edit Scheme…
  2. Select “Run” in the left sidebar
  3. Go to the “Info” tab
  4. Set “Build Configuration” to “Development”
  5. Click “Close”
The Development configuration builds without sandboxing, making debugging easier.

Update Dynamic Libraries

The Xcode project needs to reference the correct versions of dynamic libraries from your Binaries directory.
1

Remove old library references

In the Xcode project navigator, locate and delete the following 4 files (shown in red):
  • Old libpng dylib reference
  • Old libtiff dylib reference
  • Old libjpeg dylib reference
  • Old libcrypto dylib reference
Only remove the reference (right-click → Delete → “Remove Reference”). Do NOT move to trash.
Before updating dylibs
2

Add updated libraries

Drag and drop the following library files from Finder into your Xcode project:For targets: miele-lxiv AND Decompress
  • Binaries/libpng/lib/libpng16.16.37.0.dylib
  • Binaries/libtiff/lib/libtiff.5.4.0.dylib
For target: miele-lxiv only
  • Binaries/libjpeg/lib/libjpeg.9.dylib
  • Binaries/openssl-1.1.1d/lib/libcrypto.dylib
For targets: miele-lxiv, MieleAPI, Decompress, DICOMPrint
  • Binaries/libxml2/lib/libxml2.a
For targets: miele-lxiv, MieleAPI, Decompress
  • Binaries/zlib/lib/libz.a
For target: DICOMPrint only
  • Binaries/zlib/lib/libz.dylib
When dragging files, Xcode will ask about target membership. Ensure you select the correct targets as listed above.
3

Verify the result

After adding the libraries, your project should look like:After updating dylibs
4

Verify bundle inclusion

Make sure the dynamic libraries are included in the app bundle:
  1. Select the miele-lxiv target
  2. Go to Build Phases
  3. Expand “Copy Files” or “Embed Frameworks”
  4. Verify the dylib files are listed Bundle inclusion

Fix Compiler Issues

Update MACOSX_DEPLOYMENT_TARGET

1

Change deployment target

The project needs to target macOS 10.13 or later:
  1. Select the Miele_LXIV project in the navigator
  2. For each target (miele-lxiv, MieleAPI, Decompress, DICOMPrint, etc.)
  3. Go to Build Settings
  4. Search for “macOS Deployment Target”
  5. Change from 10.9 to 10.13
You’ll need to update this in approximately 8 places (once per target).

Fix NSObject Parameter Initialization

Modern Objective-C compilers require explicit observer parameters instead of using self as a class.
1

Edit WebPortal.h

Change line 61 from:
+(void)initializeWebPortalClass;
to:
+(void)initializeWebPortalClass:(id)observer;
2

Edit WebPortal.mm

Make the following changes:Line 133 - Change:
+(void)initialize
to:
+(void)initialize:(id)observer
Line 138 - Change:
addObserver:self
to:
addObserver:observer
Line 142 - Change:
+(void)initializeWebPortalClass
to:
+(void)initializeWebPortalClass:(id)observer
Lines 143-157 - Change all instances of:
addObserver:self
to:
addObserver:observer
3

Edit AppController.h

Change line 61 from:
+(void)initializeDicomDatabaseClass;
to:
+(void)initializeDicomDatabaseClass:(id)observer;
4

Edit AppController.mm

Line 3529 - Change:
[DicomDatabase initializeDicomDatabaseClass];
to:
[DicomDatabase initializeDicomDatabaseClass:self];
Line 3532 - Change:
[WebPortal initializeWebPortalClass];
to:
[WebPortal initializeWebPortalClass:self];
5

Edit DicomDatabase.h

Change line 61 from:
+(void)initializeDicomDatabaseClass;
to:
+(void)initializeDicomDatabaseClass:(id)observer;
6

Edit DicomDatabase.mm

Line 91 - Change:
+(void)initializeDicomDatabaseClass
to:
+(void)initializeDicomDatabaseClass:(id)observer
Line 92 - Change:
addObserver:self
to:
addObserver:observer

Update Linker Flags

Modern versions require additional WebP libraries:
1

Add libsharpyuv.a

  1. Select the miele-lxiv target
  2. Go to Build Settings
  3. Search for “Other Linker Flags”
  4. Verify /usr/local/lib/libwebp.a is in the list
  5. Add a new entry: /usr/local/lib/libsharpyuv.a

Additional Configuration (Optional)

If you encountered a “python: command not found” error during GLEW setup:
ln -s /usr/local/bin/python3 /usr/local/bin/python
Ensure Binaries/miele-lxiv-lite.zip exists in the project. This is needed for certain build phases.

Build and Test

1

Clean the build folder

In Xcode, go to Product → Clean Build Folder (or press Shift+Cmd+K)
2

Build the project

Go to Product → Build (or press Cmd+B)The build should complete without errors. Watch for warnings but they’re usually not critical.
3

Run the application

Click the Run button or press Cmd+R to launch Miele-LXIV.
The Development build configuration runs without sandboxing, making it easier to test file access and debugging.

Command Line Build (Alternative)

You can also build from the command line:
xcodebuild -configuration Development -target miele-lxiv
The Development configuration builds an un-sandboxed version for easier development.

Troubleshooting

  • Verify symbolic links in the Binaries directory point to the correct locations
  • Check that you added the correct dylib versions (version numbers must match)
  • Ensure target membership is set correctly for each library
Double-check that you made ALL the observer parameter changes listed above. Missing even one will cause compiler errors.
  • Ensure you added both /usr/local/lib/libwebp.a AND /usr/local/lib/libsharpyuv.a to Other Linker Flags
  • Verify all the collapsed libraries (libDCMTK.a, libVTK.a, libITK.a) were created in Step 3

Conclusion

Congratulations! You’ve successfully configured the Miele-LXIV Xcode project. You can now:
  • Build the application from Xcode
  • Make modifications to source files
  • Start your development cycle
  • Build from command line if preferred

Next: Development Workflow

Learn about the typical development workflow for Miele-LXIV

Build docs developers (and LLMs) love