MAS app rejected because "uses non-public APIs: Symbols: _getsectiondata"

Starting a new thread for new problems.
It’s still the same application (see other post here).

App is rejected again, now for using or referencing non-public API ??!

[quote]Guideline 2.5.1 - Performance - Software Requirements
Your app uses or references the following non-public APIs:
Symbols: _getsectiondata
[/quote]

I don’t know why this is coming out now as I’m removing features and not adding new ones…

I don’t have a clue about this non-public API, and don’t know how to find out where it’s coming from.
The app is developed using

  • Xojo 2019r3.1 (macOS 10.15.6)
  • App is wrapped and signed for AppStore using AppWrapper 3
  • MBS StoreKit
  • Ohanaware AppKit 2020

Reviewer suggestion [quote]is you may be able to search the compiled binary using the “strings” or “otool” command line tools.[/quote]
But I don’t see how to use these commands.

Does someone know what’s _getsectiondata, what it does and how to get rid of it ?

Thanks !

Can you go and just do a folder search with BBEdit and look for _getsectiondata there?

Also you can use nm in terminal to list symbols in a file and look which dylib or the app itself may refer to this function.

doesn’t find the string ‘getsectiondata’ in the build folder

generate a huge list but the string ‘getsectiondata’ is not in it
I ran it against /Contents/MacOS/appname as nm doesn’t accept a directory/bundle

it can be in a framework folder

Did you check against each dylib file?

Problem may be that some open source app uses same name for a function as Apple in their framework.

Shameless plug: Or use my Find Any File (shareware, i.e. free to try), as it is faster and searches everywhere, for both UTF-8 and UTF-16 formats (though, this symbol will be utf8, not 16, of course) :slight_smile:

To search, drag the folder onto FAF’s search “where” popup menu, and then use the rule “File Content” to search in all files.

Get it here: findanyfile.app

Google returns >6000 hits when searching for _GetSectionData

My gut is telling me its a false positive, especially on a such a generic function name.

But I used Find Any File and it showed me that the XojoFramework contains the string “_getsectiondata”.

From Xojo 2019r3.2 btw and Xojo 2018r3.

Seems Xojo will need to find this and remove it :frowning:

Didn’t see the other posts, but I also found it here /Contents/Frameworks/XojoFramework.framework/Versions/A/XojoFramework: U _getsectiondata

And I don’t have other libraries than the one mentioned before.
So it’s Xojo …

And now ?
Does that mean that MAS review will reject all Xojo apps ?

Thanks Olivier. I just got my app rejected for the same reason.

I’m trying to create a feedback case, opening Feedback from Xojo 2019r3.1 IDE, but feedback Xojo version is forced to 2020r1 and allows only ‘beta bug’ ??
My Feedback version is 2018r1.1, seems to be the last one.

Opening ‘manually’ Feedback has the same issue, only 2020 and beta bugs.

Can someone here try to create a feedback case for _getsectiondata? This will soon become quite urgent …

Seems that this function has been used by malware, so my guess is Apple is locking this down.

Irony is the Mach-O format is pretty well documented, and the data can be manually extracted.

I get the same thing!, I’ve been filing them against r3.2, and writing Xojo 2019r3.2 in the first line.

Feedback 61025 case created but is not yet public due to Feedback app problem.

I see 2019r3.3 in the near future.

…and it will remove 10.12 support :wink:

1 Like

You could try to just submit again and see whether it just goes through on a different testing server.

I was curious about this since I’m prepping a new version of an App Store app. I created a simple app with a Hello World window and a Quit button - Flagged for _getsectiondata in less than 45 minutes …

Cute, sounds like no Xojo built app can be submitted.
QuickTimeGate again.

This happened me with my plugins a few times already.
you may be able to just write a little Xojo app to open the framework binary, change the function by one character in the name and see if it still works. e.g. _getsectiondatx

If it’s never called, it may not hurt to try.

Its defined in one of the macOS headers
In my Xcode 11.6 set up its in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach-o/getsect.h