-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Not detecting expected APIs #2
Comments
Yes, try to either point the Let me know if the tool detects those missing SDKs. If not, you can post those 4 missing API declarations and I will check if I need to add them to the internal list or make the tool look deeper into the source code. |
I did originally do The declarations are:
Thank you |
Oh wow, taking an hour to process the workspace is indeed a really long time. The tool works concurrently to speed up the process to a few seconds, but over an hour probably means that something is going wrong with the parsing or that there are a lot of dependencies to go through in the Pods project. The declarations that you posted are exactly the ones configured to be detected by the tool. You don't have any references to I will have to investigate why the process takes so much time to complete. Unless the CocoaPods dependencies result into too many source files for processing, then there's probably a thread-locking issue lurking somewhere I haven't found yet. |
I just used my code IDE to search this directory, and no references to "UserDefaults" could be found. |
Interesting; then those "Missing API declarations" that Apple reports were found in the Pods project. Do you maintain parts of your application's logic in separate Pods, or do you use CocoaPods only for third part libs? If it's the latter, and you don't have an issue sharing your Podfile, you can post it here so that I can try and recreate the issue when I can? |
I think I have found the issue! I will issue a fix in a while and will ping you to test it! |
Oh, great, thank you. I can certainly provide my Podfile if you need it, although I'd prefer not to post it publicly. |
@stelabouras I'm having the same issue when trying to use the tool for the entire workspace, it infinitely runs. |
@stelabouras Also, as noted by apple here https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests
Would this tool be generating the declarations for 3rd party libraries? While adding the reasons to your app's manifest fixes the warning as of now, that does not seem complaint/may be an issue if apple starts checking who's declaring the reasons. An example: |
The problem is from Apple's email there's no way to actually know which third party library is using the permissions that are listed which needs declaring. I've got no idea which library(s) are using the 4 listed in the emails I've got from Apple. As it's then up to that third party to update their code to declare the reasons for the permissions they're using, and they may not do that before the deadline, we could be in a situation where we have to declare it in our own app's privacy file for the time being otherwise we can't update our app. |
@gavrichards Right, but I suspect apple will soon start to detect when you're declaring for 3rd party libraries. See the bolded part of the text. Looking at the docs for the RequiredReasonAPI closer, I see
If I'm understanding it correctly, it's saying 3rd party SDK's cannot rely on the manifest from the app using it. If that's the case, as soon as they can detect that we're doing that, we'll see these issues again. Reading this, it seems the actual way to become "complaint" is to add/update the manifest to each 3rd party SDK. But obviously, this is not sustainable, nor really something we can really know the reasons without being a maintainer of the SDK |
No need! I have just pushed 0.0.17 that hopefully fixes the stalling issue. Let me know how that goes. Same for @Maker-Mark.
Nice one! I had no idea that such tool existed for so long! I will give it a try as well.
I think that falls under the "third-party SDK requirements" document that Apple posted here where only for the listed SDKs (that the tool checks against) you are required to update them to a version where a Privacy Manifest file exists. But to answer your initial question, my tool does not generate declarations for 3rd party libraries, but it does provide a warning so that the developer can use to check the affected libraries more closely, like the following:
|
@stelabouras Ahh okay thanks. Trying the update now. |
It seems to be working for me now, running:
I'm just at a point where I need to make a selection. I don't understand this yet but there's some reading to do. |
@Maker-Mark Does this path exist? Is the |
@gavrichards I have tried to provide relevant links in the output of the CLI so that you can open them in a browser and check the Apple documentation on those APIs. Note that for the APIs covered here such as location data, personal data, contacts, crashes etc, even though the tool attempts to detect as many as it can, the logic does not set any values on the generated Privacy Manifest file. |
@stelabouras No, that path does not exist! I got that issue when running
However, running the command @gavrichards did is working for me now and showing what I expect, thanks 🙏 |
@Maker-Mark That's strange. When you run the command with |
@stelabouras Yes, it shows the repo's full directory |
Ah ok, so what happens is that when you pass The parser error is still baffling though: I would assume that this |
Closing the issue as both of you have reported that the tool now works. |
Hey - thank you for your work on this tool.
I've been receiving emails from Apple after submitting my app recently, regarding "Missing API declaration", so I'm hopeful this tool will help me to resolve it.
I've installed it and run it, but it's not giving me the output I would expect. Apple's email lists 4 missing API declarations, but when I run this script I'm told there were no reasons provided. I suspect it's not scanning my Pods files perhaps?
Do you have any advice? Thank you.
The text was updated successfully, but these errors were encountered: