Parvez Qureshi
03/29/2024, 12:32 PMPrivacyInfo.xcprivacy
file in the framework generated by KMP for iOS ? One need to include this file if the iOS App/SDK confirms that App/SDK's functionality dealing with privacy as mentioned by Apple.Jacob Rhoda
04/01/2024, 7:57 PMChris Athanas
04/02/2024, 1:27 AMJacob Rhoda
04/02/2024, 1:29 AMParvez Qureshi
04/02/2024, 2:26 AMPrivacyInfo.xcprivacy
file to Android Studio and then via build.gradle.kts
get it included in the framework/binary being generated ?Chris Athanas
04/02/2024, 2:32 AMParvez Qureshi
04/02/2024, 2:37 AMPrivacyInfo.xcprivacy
file in KMP iOS framework? It will be helpful for others as well.
ThanksJacob Rhoda
04/02/2024, 1:59 PMFor each executable or dynamic library in an app that uses a required reason API, the bundle that includes the executable or dynamic library needs to include a privacy manifest file that reports the API.https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api
Jacob Rhoda
04/02/2024, 2:00 PMParvez Qureshi
04/02/2024, 2:01 PMPrivacyInfo.xcprivacy
inside the Android Studio project and get it copied in the framework bundle via build.gradle.kts
if I am understanding it correctly.Jacob Rhoda
04/02/2024, 2:02 PMJacob Rhoda
04/02/2024, 2:02 PMChris Athanas
04/02/2024, 8:07 PM.xcprivacy
inside XCode. All new iOS-specific files must be added inside XCode.
Make a new file at the root level, look for “privacy” type, then set the options as I have shown above. Or read the documentation and check mine as an example.Michael Krussel
04/02/2024, 8:17 PMJacob Rhoda
04/02/2024, 8:23 PM.framework
file. We need some way to add resources to the framework bundle. In Xcode, you'd do this with a "Copy Bundle Resources" but we don't really have that in Gradle (to my knowledge).Chris Athanas
04/02/2024, 8:25 PMChris Athanas
04/02/2024, 8:26 PM.xcprivacy
file is specifically for xcode, and must be added inside xcode to be able to create an archive from within xcode to push to the App store.Jacob Rhoda
04/02/2024, 8:27 PM.xcprivacy
file in it?Parvez Qureshi
04/03/2024, 1:37 AMJakub Sieprawski
04/05/2024, 12:34 PMJacob Rhoda
04/05/2024, 1:38 PMParvez Qureshi
04/05/2024, 1:40 PMJacob Rhoda
04/05/2024, 1:41 PMJacob Rhoda
04/05/2024, 1:43 PMJacob Rhoda
04/05/2024, 1:44 PM.xcpricacy
file.Parvez Qureshi
04/05/2024, 1:46 PMJacob Rhoda
04/05/2024, 1:53 PM.framework
bundle in the app, where the .xcprivacy
file is. Static frameworks now have the ability to include a .bundle
bundle in the app, where its resources (including .xcprivacy
) are located. However, I'm postulating that it might still be a workaround. 🤷♂️Jakub Sieprawski
04/06/2024, 3:20 PMParvez Qureshi
04/07/2024, 4:18 AMJakub Sieprawski
04/07/2024, 11:15 AMParvez Qureshi
04/07/2024, 3:05 PMJakub Sieprawski
04/08/2024, 9:03 AMJakub Sieprawski
04/08/2024, 9:05 AMJakub Sieprawski
04/08/2024, 3:08 PMJacob Rhoda
04/08/2024, 3:11 PMParvez Qureshi
04/08/2024, 3:13 PMpost install
phase? It is for the case when KMP iOS framework is included via a cocoapods POD
either locally created or through a remote source, right ?Jacob Rhoda
04/08/2024, 5:13 PMJacob Rhoda
04/11/2024, 9:17 PMrusshwolf
04/12/2024, 3:32 AMParvez Qureshi
04/12/2024, 5:21 AMJacob Rhoda
04/12/2024, 11:48 PMPrivacyInfo.xcprivacy
file from your shared project directory into the bundle. For me that was in $REPO_ROOT/shared/PrivacyInfo.xcprivacy
project.afterEvaluate {
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink>().forEach { linkTask ->
val frameworkDestinationDir = linkTask.outputFile
linkTask.doLast {
project.copy {
val sharedDir = project.file("PrivacyInfo.xcprivacy")
from(sharedDir)
into(frameworkDestinationDir.get())
}
}
}
}
Parvez Qureshi
04/13/2024, 1:07 AMPrivacyInfo.xcprivacy
under Android Studio project ?Jacob Rhoda
04/13/2024, 3:12 AMChris Athanas
04/14/2024, 1:24 AMPrivacyInfo.xcprivacy
into my XCode project. Everything built and verified, but I just got an app rejection notice from Apple saying the privacy info was missing.
I will be trying out @Jacob Rhoda’s suggestion and submitting again to Apple. Will let this thread know my outcomes.Chris Athanas
04/19/2024, 8:07 PM.privacy
notice as a plain file inside my iOS project.
I was NOT sent a notice of “Missing API declarations” for this build.
I did NOT add the custom code that @Jacob Rhoda posted.
Before this I was getting a notice for each build about the missing privacy notice. I don’t know if they send the notice out for each non-complying build or not.
Note: I am not an iOS dev, this is only my second app I’ve put in the Apple store, and the other one is a simpler KMM project. I am primarily and Android and Web developer, so please forgive my ignorance about the Apple app-release processes.Jacob Rhoda
04/19/2024, 8:09 PMChris Athanas
04/19/2024, 8:09 PMJacob Rhoda
04/19/2024, 8:12 PMParvez Qureshi
04/22/2024, 12:48 PMPrivacyInfo.xcprivacy
file available in it.Jacob Rhoda
04/22/2024, 1:44 PMStanislav Tsyganov
04/23/2024, 4:01 PMJacob Rhoda
04/23/2024, 4:51 PMrusshwolf
04/23/2024, 5:03 PMChris Athanas
04/24/2024, 4:47 AMParvez Qureshi
04/24/2024, 5:07 AMStanislav Tsyganov
04/24/2024, 10:02 AMJacob Rhoda
04/24/2024, 1:36 PMChris Athanas
04/24/2024, 6:36 PMParvez Qureshi
04/25/2024, 5:05 AMPrivacyInfo.xcprivacy
in the framework as the app target's corresponding .xcprivacy
file will be taking care of it.Chris Athanas
04/25/2024, 9:38 PM