Hi, My app was recently rejected with the following message:
The app references non-public symbols in App: _BIO_s_socket, _OPENSSL_cleanse
The confusing part is that these symbols do not come from iOS system libraries. They are defined inside a third-party static library (gRPC/OpenSSL) that my app links. I am not calling any Apple private API, only linking against the third-party code where those symbols are defined.
Questions: Why does App Review treat these symbols as “non-public” when they are provided by my own bundled third-party library, not by the system?
What is Apple’s recommended approach in this situation — should I rebuild the third-party library with symbol renaming / hidden visibility, or is there another supported method?
It would help to understand the official reasoning here, because it seems strange that a vendor-namespaced or self-built OpenSSL would cause a rejection even though I am not using Apple’s internal/private APIs.
Thanks for any clarification.