3 posts / 0 new
Last post
App for macOS was rejected from AppStore (issue with 'Spokes3GSDK.framework')
Hello. I'm using sdk for macOS and my app was rejected by AppStore because it uses or references non-public APIs: -/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP I checked it with 'grep -R '/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP' *' and it points at Spokes3GSDK.framework Rejection message from AppStore: Guideline 2.5.1 - Performance - Software Requirements Your app uses or references the following non-public APIs: -/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP 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. We are constantly reevaluating and identifying non-public APIs that you may have been using for an extended period of time. You should always use public APIs and frameworks and ensure they are up-to-date to prevent this issue in the future. Next Steps 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. Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store. Resources If there are no alternatives for providing the functionality your app requires, you can use Feedback Assistant to submit an enhancement request. If you are unable to reproduce this issue, ensure you are testing the exact version of the app that you submitted for review, and that you're doing so in a minimally privileged environment. See Technical Q&A QA1778: How to reproduce bugs reported against Mac App Store submissions. Best Regards Igor P

Hi, We have confirmed your finding that Spokes3GSDK framework references LDAP, thank you for bring it to our attention. The software team will investigate, as soon as there is an update we will let you know. In the meantime please hold off submitting app to App Store that embeds the Spokes3GSDK framework, in case this causes Apple to terminate your Developer Account as mentioned in the feedback from Apple in your forum post. I will send you a further direct message about this. Thanks, Lewis.

Hi again Igor, It's possible that we will not find a method to update the old Native Library that would allow apps to be accepted by Apple. To work in the future I would firmly recommend moving the integration to our REST API (Mac) or COM and REST (Windows). This may be achieved for example using any open source HTTP client library. For these recommended integration methods involving Hub on the desktop, your customer can also benefit from the Poly SaaS offer: Manager Pro, recommended for customer headset estates of >200. The only thing you need to code for is that Hub may not be running/installed. In which case you may retry periodically, back-off, etc., as the Java/C++ samples posted here on PDC do. If your HTTP request to Hub does not get a response you can assume Hub is not running/installed, and perhaps continue polling for it at a slower rate. This is the approach other development partners have taken. REST API provides a nice discreet way of receiving headset events (including QD) without any DLL/Library pre-requisites at all. Here is an example in Java: http://developer.plantronics.com/article/softphone-integration-code-samples (Java Tab). Example in C++: https://developer.plantronics.com/article/hubrestsample-new-c-rest-api-sample-pdc Hope it helps! Thanks, Lewis

Add new comment