codebytere / node-mac-permissions

A native node module to manage system permissions on macOS.
MIT License
174 stars 40 forks source link

The Speech framework is not compatible with macOS < 10.15 #12

Open glawson opened 4 years ago

glawson commented 4 years ago

We build with a macOS 10.14 image on Travis, permissions.mm fails to build because Speech/Speech.h is not found.

Need to wrap with compiler directives:

if AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER

And remove ld flag, -frameworks Speech for anything less than 10.15

MaddHatters commented 4 years ago

I am also experiencing this issue on a Mac running macOS 10.14.6.

Speech/Speech.h is not found.

...
> node-gyp rebuild

  CC(target) Release/obj.target/nothing/../node-addon-api/src/nothing.o
  LIBTOOL-STATIC Release/nothing.a
  CXX(target) Release/obj.target/permissions/permissions.o
../permissions.mm:11:9: fatal error: 'Speech/Speech.h' file not found
#import <Speech/Speech.h>
...
codebytere commented 4 years ago

This shouldn't be mediated by the version of macOS - you need to be building against the 10.15 SDK. You can run this on any version of macOS as long as you built against the right SDK i'm fairly certain 🤔

MaddHatters commented 4 years ago

@codebytere Thanks for the tip! I'm having some trouble finding those SDKs. I did some searching and found developer.apple.com/download/more/ and can't seem to find any "SDKs". I also only see "Kernal Debug Kits" referencing version # "10.15". I also tried finding ways to update/add sdk's in Xcode but no luck. Maybe I'm missing something.

Any idea where to get the sdk?

EDIT: Acutally the Kernal Debug Kits might be what I'm looking for. I'm going to try this now.

EDIT #2: The Kernal Debug Kit did not work unfortunately.

mmaietta commented 3 years ago

Try setting this for targetting the latest MacOS SDK that is installed. Works locally for my electron mac universal builds

export SDKROOT="$(xcrun --show-sdk-path --sdk macosx)"

For Github actions, another potential route I've read of is:

env:
  DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer

I'd imagine a similar env setup would be possible on TravisCI