sentry-native icon indicating copy to clipboard operation
sentry-native copied to clipboard

Non-public or deprecated APIs prevent Mac App Store submission

Open MartinDelille opened this issue 3 years ago • 6 comments

Description

After submitting my application to the Mac App Store, it is not accepted because of some non-public or deprecated APIs. See Apple validation message below:

Your app uses or references the following non-public or deprecated APIs:

• Contents/MacOS/crashpad_handler/__CFCopySystemVersionDictionary
• Contents/MacOS/crashpad_handler/__kCFSystemVersionBuildVersionKey
• Contents/MacOS/crashpad_handler/__kCFSystemVersionProductNameKey
• Contents/MacOS/crashpad_handler/__kCFSystemVersionProductVersionExtraKey
• Contents/MacOS/crashpad_handler/__CFCopyServerVersionDictionary
• Contents/MacOS/crashpad_handler/__kCFSystemVersionProductVersionKey

When does the problem happen

  • [ ] During build
  • [ ] During run-time
  • [ ] When capturing a hard crash
  • [x] During Apple Store validation

Environment

  • OS: MacOS 10.15
  • Compiler: apple-clang
  • CMake version and config: 3.21.2

I used the conan with the CCI recipe to handle sentry-native dependency.

Steps To Reproduce

Log output

MartinDelille avatar Dec 27 '21 17:12 MartinDelille

Thanks for the report!

All this comes directly from crashpad here: https://github.com/getsentry/crashpad/blob/getsentry/util/mac/mac_util.cc That file indeed mentions this as internal unstable API. I think that is mostly the reason why I avoided using that when porting over OS Context for the SDK and opted to just use sysctl.

We already maintain a few patches on top of crashpad, so it might be possible to just rip out that usage and replace it with sysctl as well if that is necessary.

Is this a blocking issue for you?

Swatinem avatar Jan 03 '22 09:01 Swatinem

No I changed my backend to breakpad and my last submission passed without issue.

MartinDelille avatar Jan 03 '22 10:01 MartinDelille

Hi any workground?

toby20130333 avatar Feb 12 '22 08:02 toby20130333

As I said, I switch from crashpad to breakpad to fix the issue.

MartinDelille avatar Feb 13 '22 14:02 MartinDelille

As I said, I switch from crashpad to breakpad to fix the issue.

how to do?

toby20130333 avatar Feb 14 '22 04:02 toby20130333

Adding -DSENTRY_BACKEND=breakpad to your cmake call overrides the default backend.

MartinDelille avatar Feb 14 '22 14:02 MartinDelille

For various reasons, using breakpad is recommended for App Store submissions. See https://github.com/getsentry/sentry-native/discussions/881#discussioncomment-8640854 and https://github.com/getsentry/sentry-docs/pull/9299 for more context. Closing this for now, feel free to reply if you have additional context.

kahest avatar Mar 14 '24 15:03 kahest

yes you'll noticed I was the originator of the thread #881 ! 😅

MartinDelille avatar Mar 14 '24 19:03 MartinDelille