(For the record, if I remember correctly I had the same issues on vanilla Sierra too.)
Pre-built Lazarus install works, it's only when I try to rebuild it there are issues. However, I need to be able to rebuild in order to install design-time packages.
Setup:
- Late-2012 model Mac Mini
- Mac OS X High Sierra (the machine was reformatted with Sierra installed, then upgraded from there via App Store)
- XCode 9.2
- Lazarus 1.8.0
- FPC 3.0.4
- I also have access to Windows (10 Pro) and Linux (Ubuntu 16.04), so cross-compiling is an option if this might be more feasible
If I try to build with any widgetset with an i386 target, I get "Cannot find Interfaces unit used by Lazarus, incompatible ppu=[path to "interfaces.ppu" for relevant framework].
If I try to do the same with an x86_64 target, I instead get errors in CocoaGDIObjects.pas relating to identifiers not being found, specifically several that being with ATSU (eg. ATSUGetUnjustifiedBounds, ATSUCreateTextLayout, etc).
Once again, this happens no matter which widgetset I use.
I'm able to rebuild without issue on Windows (obviously, using the Win32/64 widgetset).
I've only tried so far to rebuild using the built-in "Build Lazarus" function; I haven't tried downloading the source code and building from scratch using only FPC, I'll try that if anyone thinks it'll be worthwhile.
Just to clarify, this happens regardless of whether it's an out-of-the-box build, or while trying to rebuild with extra packages installed.
Also, to clarify this as well - it is nothing to do with my own code. This will literally happen on a fresh install of Lazarus when I try to use the "Build Lazarus" option, no additional packages. (Saying this because while googling, I found another post where someone was mentioning a similar issue and one person insisted it must be a problem with the user's code.)
EDIT: Although I'd rather not, I am open to downgrading to an older version of Mac OS X if need be. I only use my Mac for development / testing and occasionally for some basic internet usage when I can't be bothered getting my Windows laptop out, so running an older version of the OS isn't a problem to me. I would need to know which one is best to use, though.