Wow.
Congratulations on the App Store acceptance. I'm not in a position to help, but I find it a bit creepy that they are poking around looking for "non-public APIs". I'm not clear what they mean, non-Apple I guess.
Why do you think that's creepy? They only need to check what symbols are imported by the binary and that can be compared to a white or black list which can (and will) be done automatically.
I don't know about Apple, but Microsoft even provides a tool that you can use to check your app for validity with the store regarding unsupported APIs.
I can also understand their intention: if you use unsupported, non-public APIs then things can essentially go two ways:
- Apple/Microsoft decides to drop or change the non-public function and now your app no longer works (or no longer works correctly if the change is subtle enough)
- Apple/Microsoft keeps supporting the non-public function, because apps now depend on it.
It's rather well known that Apple usually goes the first route while Microsoft goes the latter (they even kept supporting a functionality that was only used in the *beta* of - I think - Windows 95 by four programs). While one could criticize Apple for their way the one from Microsoft is not hassle free either, especially if programs rely on buggy behaviour for which Microsoft introduced their shim system that transparently loads "buggy" versions of their APIs for programs that need them while those that don't rely on some bug get the normal version.