We just got my rejection from Apple about some non-public API "contectId". The only thing I have done since I upgraded to the latest Xcode and Titanium SDK (Also with the newest macOS), this became a problem.
I know that there's steps here in the message, but is this an Titanium bug or something?
Hello,
Thank you for your resubmission.
Performance - 2.5.1
Your app still uses or references the following non-public APIs:
contextId
The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.
Next Steps
Please revise your app to remove any non-public APIs. If you have defined methods in your source code with the same names as the above-mentioned APIs, we suggest altering your method names so that they no longer collide with Apple's private APIs to avoid your application being flagged in future submissions.
Additionally, if you are using third party libraries, please update to the most recent version of those libraries. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These tools can help you narrow down where the problematic code resides. You could also use the "nm" tool to verify if any third-party libraries are calling these APIs.
Resources
For information on the "nm" tool, please see the "nm tool" Xcode manual page.
If there are no alternatives for providing the functionality your app requires, you may wish to file an enhancement request.
If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.
If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
- symbolicated crash logs - if your issue results in a crash log
Best regards,
App Store Review
I've also had two App updates rejected due to this reason.
Over the same period I've had others approved.
One common item between the two App updates that were rejected is the use of the following property set in my project:
<property name="run-on-main-thread" type="bool">true</property>