shajz opened a new issue, #1418: URL: https://github.com/apache/cordova-ios/issues/1418
# Bug Report ## Problem ### What is expected to happen? The `<privacy-manifest>` element must be included in the generated `PrivacyInfo.xcprivacy` file, and the order of its properties must be the same. ### What does actually happen? When running `cordova prepare ios`, the order of properties is messed up and the mess is exported to the generated `PrivacyInfo.xcprivacy` file. ## Information <!-- Include all relevant information that might help understand and reproduce the problem --> `config.xml`, before running `cordova prepare ios` ```xml <privacy-manifest> <key>NSPrivacyTracking</key> <true /> <key>NSPrivacyCollectedDataTypes</key> <array /> <key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryDiskSpace</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>E174.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA92.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>3B52.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategorySystemBootTime</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>35F9.1</string> </array> </dict> </array> <key>NSPrivacyTrackingDomains</key> <array /> </privacy-manifest> ``` `config.xml`, after running `cordova prepare ios` ```xml <privacy-manifest> <key>NSPrivacyTracking</key> <key>NSPrivacyCollectedDataTypes</key> <key>NSPrivacyAccessedAPITypes</key> <key>NSPrivacyTrackingDomains</key> <true/> <array/> <array> <dict> <key>NSPrivacyAccessedAPIType</key> <key>NSPrivacyAccessedAPITypeReasons</key> <string>NSPrivacyAccessedAPICategoryDiskSpace</string> <array> <string>E174.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <key>NSPrivacyAccessedAPITypeReasons</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <array> <string>CA92.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <key>NSPrivacyAccessedAPITypeReasons</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <array> <string>3B52.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <key>NSPrivacyAccessedAPITypeReasons</key> <string>NSPrivacyAccessedAPICategorySystemBootTime</string> <array> <string>35F9.1</string> </array> </dict> </array> <array/> </privacy-manifest> ``` This is then outputed to the `PrivacyInfo.xcprivacy` file : ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"><dict><key>NSPrivacyTracking</key><key>NSPrivacyCollectedDataTypes</key><key>NSPrivacyAccessedAPITypes</key><key>NSPrivacyTrackingDomains</key><true /><array /><array><dict><key>NSPrivacyAccessedAPIType</key><key>NSPrivacyAccessedAPITypeReasons</key><string>NSPrivacyAccessedAPICategoryDiskSpace</string><array><string>E174.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><key>NSPrivacyAccessedAPITypeReasons</key><string>NSPrivacyAccessedAPICategoryUserDefaults</string><array><string>CA92.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><key>NSPrivacyAccessedAPITypeReasons</key><string>NSPrivacyAccessedAPICategoryFileTimestamp</string><array><string>3B52.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><key>NSPrivacyAccessedAPITypeReasons</key><string>NSPrivacyAccessedAPICategorySystemBootTime</string><array><string>35F9.1</string></array></dict></array><array /></dict></plist> ``` The correct output (that works well in XCode) is this one : ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"><dict><key>NSPrivacyTracking</key><true /><key>NSPrivacyCollectedDataTypes</key><array /><key>NSPrivacyAccessedAPITypes</key><array><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategoryDiskSpace</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>E174.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategoryUserDefaults</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>CA92.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategoryFileTimestamp</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>3B52.1</string></array></dict><dict><key>NSPrivacyAccessedAPIType</key><string>NSPrivacyAccessedAPICategorySystemBootTime</string><key>NSPrivacyAccessedAPITypeReasons</key><array><string>35F9.1</string></array></dict></array><key>NSPrivacyTrackingDomains</key><array /></dict></plist> ``` ### Command or Code <!-- What command or code is needed to reproduce the problem? --> `cordova prepare ios` ### Environment, Platform, Device <!-- In what environment, on what platform or on which device are you experiencing the issue? --> Mac OS 14.4.1 ### Version information <!-- What are relevant versions you are using? For example: Cordova: Cordova CLI, Cordova Platforms, Cordova Plugins Other Frameworks: Ionic Framework and CLI version Operating System, Android Studio, Xcode etc. --> "cordova": "^12.0.0" "cordova-ios": "^7.1.0" ## Checklist <!-- Please check the boxes by putting an x in the [ ] like so: [x] --> - [x] I searched for existing GitHub issues - [x] I updated all Cordova tooling to most recent version - [x] I included all the necessary information above -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org