[google_maps_flutter] update ios privacy manifest (#6511)

The installation instructions for Google Maps Platform SDKs for iOS now have download links and instructions for **manually** adding Privacy Manifest files for use with the latest versions of the SDKs. You can read more about this [here](https://github.com/googlemaps/google-maps-ios-utils/issues/463#issuecomment-2035734010).

This PR synchronizes the iOS privacy manifest with the file provided by Google for the Maps SDK for iOS. 
The privacy manifest was downloaded from: [https://developers.google.com/maps/documentation/ios-sdk/config#add-apple-privacy-manifest-file](https://developers.google.com/maps/documentation/ios-sdk/config#add-apple-privacy-manifest-file).

As you can see in the new **[PrivacyInfo.xcprivacy](packages/google_maps_flutter/google_maps_flutter_ios/ios/Resources/PrivacyInfo.xcprivacy)** file Google Maps SDK is using the following **NSPrivacyAccessedAPITypes**:

- **NSPrivacyAccessedAPICategoryDiskSpace**
- **NSPrivacyAccessedAPICategorySystemBootTime**
- **NSPrivacyAccessedAPICategoryFileTimestamp**
- **NSPrivacyAccessedAPICategoryUserDefaults**

*Related issues:*
- [flutter/flutter/issues/145269](https://github.com/flutter/flutter/issues/145269)
- [flutter/flutter/issues/143232](https://github.com/flutter/flutter/issues/143232)
- [flutter/flutter/issues/131940](https://github.com/flutter/flutter/issues/131940#issuecomment-2006965339)

Fixes https://github.com/flutter/flutter/issues/94491
This commit is contained in:
Rodolfo Ruiz
2024-04-16 11:55:59 -07:00
committed by GitHub
parent 90c876d376
commit 18c4ca4bcc
110 changed files with 331 additions and 3328 deletions

View File

@ -108,6 +108,21 @@ dev_dependencies:
###
''');
// iOS
final Directory iOS = package.platformDirectory(FlutterPlatform.ios);
iOS.childDirectory('Runner.xcodeproj').childFile('project.pbxproj')
..createSync(recursive: true)
..writeAsStringSync('''
97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
};
name = Release;
};
''');
// macOS
final Directory macOS = package.platformDirectory(FlutterPlatform.macos);
macOS.childDirectory('Runner.xcodeproj').childFile('project.pbxproj')
@ -434,6 +449,24 @@ android {
line.contains('10.15')));
});
test('iOS deployment target is modified in pbxproj', () async {
writeFakeFlutterCreateOutput(testRoot);
createFakePlugin('plugina', packagesDir);
await runCapturingPrint(runner, <String>['create-all-packages-app']);
final List<String> pbxproj = command.app
.platformDirectory(FlutterPlatform.ios)
.childDirectory('Runner.xcodeproj')
.childFile('project.pbxproj')
.readAsLinesSync();
expect(
pbxproj,
everyElement((String line) =>
!line.contains('IPHONEOS_DEPLOYMENT_TARGET') ||
line.contains('14.0')));
});
test('calls flutter pub get', () async {
writeFakeFlutterCreateOutput(testRoot);
createFakePlugin('plugina', packagesDir);