newrelic / newrelic-ios-agent-spm

This repository hosts the Swift Package Manager deployment of the iOS agent
Apache License 2.0
15 stars 9 forks source link

Add Privacy Manifest #33

Open madsolar8582 opened 1 year ago

madsolar8582 commented 1 year ago

Summary

Xcode 15 introduces Privacy Manifests which will be required by Apple sometime in the future (presumably via App Store Connect). As a result, applications consuming New Relic will need to have an updated XCFramework with the privacy manifest implemented in order to continue using the agent.

Desired Behavior

A new release of the New Relic agent is available with the privacy manifest included such that consuming applications can continue to distribute to the App Store without issue.

shahzadmajeed commented 1 year ago

+1 to this.. Currently, we cannot build app with Xcode 15 as it throws following error:

Screenshot 2023-06-06 at 12 40 32 AM

madsolar8582 commented 1 year ago

Based on my understanding, the current blocker is #32. This should be a future blocker once App Store Connect enables this feature.

madsolar8582 commented 1 year ago

Per Apple Developer Relations and Get started with privacy manifests, App Store Connect will begin notifying apps in the Fall and it will be required (part of App Review) in Spring '24.

cdillard-NewRelic commented 1 year ago

We are working to add this for a future release, thanks.

isthisjoe commented 6 months ago

+1

bradwindy commented 3 months ago

Also looking for an answer to when this might be released. I scanned the repo I work on that uses New Relic with the following tool: https://github.com/bradwindy/iOS17-Required-Reason-API-Scanner

And you use lstat, stat, and NSUserDefaults, which requires you to include a privacy manifest explaining your use of this, as they fall under the NSPrivacyAccessedAPICategoryFileTimestamp and NSPrivacyAccessedAPICategoryUserDefaults API types respectively.

mbruin-NR commented 3 months ago

@bradwindy we added a privacy manifest to the iOS agent in version 7.4.7. If you are still seeing this issue can you verify that you are using a more recent version of the agent? We are not able to reproduce a warning from submitting our test app to the app store. Can you send us the warning and an example app that can reproduce it?

chaithanyakumarks commented 3 months ago

Hello @mbruin-NR ,

We were running the iOS 17 Required reason api scanner in our application with the help of https://github.com/bradwindy/iOS17-Required-Reason-API-Scanner

We found that the NRTimer.h file is using the mach_absolute_time() API which is mentioned in the privacy required reason document.

Found potentially required reason API usage 'mach_absolute_time()' in '/Users/xxxxxxx/Library/Developer/Xcode/DerivedData/{App}-cowdtqoedigbogedjivwuwgobkiw/Build/Products/Debug-iphonesimulator/NewRelic.framework/Headers/NRTimer.h' Line numbers: 33

Can you please add the System boot time APIs in the Privacy manifest file of New relic SDK.

mbruin-NR commented 3 months ago

An entry for system boot time should already be present in our xcprivacy file. You should be able to see the privacy manifest if you look in: NewRelic.xcframework/ios-arm64/NewRelic.framework/PrivacyInfo.xcprivacy Do you see the file and is the key for system boot time present? If not you might be on an old version of the agent. Our iOS repo is now open source so you can check out the xcprivacy file from source. https://github.com/newrelic/newrelic-ios-agent/blob/main/PrivacyInfo.xcprivacy

lukasz-szyszkowski commented 2 months ago

@cdillard-NewRelic when do you plan to release a version with Privacy Manifest support?