From 20c9917d35eb73878341d2ec5a9b9816360fb685 Mon Sep 17 00:00:00 2001 From: Paul Solt Date: Fri, 23 May 2025 12:00:13 -0400 Subject: [PATCH] Migrated to using Swift Package Manager (SPM) for GeoPackage, GARS, and MGRS (and their dependencies). * Fixed C enum issue by using NS_ENUM in all NGA dependencies (i.e. sf-ios - SimpleFeatures 5.0.0) * Re-enabled Optimizations in builds with the fixes above * Archiving works on Release builds again * Fixed unit test that had incorrect date logic based on UIDatePicker behavior * Update Podfile to remove bitcode set tings --- MAGE.xcodeproj/project.pbxproj | 206 ++++++++++++++---- .../xcshareddata/xcschemes/MAGE.xcscheme | 2 +- .../xcshareddata/swiftpm/Package.resolved | 138 +++++++++++- .../GeoPackage/GeoPackageImporterTests.swift | 2 +- .../GeoPackageImporterUITests.swift | 2 +- .../Map/GeoPackage/GeoPackageTests.swift | 2 +- MAGEGeoPackageTests/TestingAppDelegate.m | 3 +- Mage/AppDelegate.m | 2 +- Mage/BaseMapOverlay.swift | 2 +- Mage/CoordinateDisplayType.swift | 4 +- Mage/CoreData/GPSLocation.swift | 2 +- Mage/CoreData/Location.swift | 2 +- Mage/CoreData/Observation.swift | 4 +- Mage/Extensions/MKShapeExtensions.swift | 4 +- Mage/GeoPackage/GeoPackage.h | 25 --- Mage/GeoPackage/GeoPackage.swift | 10 +- Mage/GeoPackage/GeoPackageImporter.swift | 2 +- Mage/Geocoder.swift | 4 +- Mage/GeometryEditCoordinator.h | 2 +- Mage/GeometryEditCoordinator.m | 2 +- Mage/GeometryEditMapDelegate.m | 2 +- Mage/GeometryEditViewController.m | 15 +- Mage/GridSystems.swift | 4 +- Mage/HasMapSearchMixin.swift | 4 +- Mage/LocationAnnotation.m | 2 +- Mage/MAGE-Bridging-Header.h | 11 - Mage/MageMapView.swift | 2 +- .../GeoPackageFeatureTableCacheOverlay.swift | 2 +- .../GeoPackageTileTableCacheOverlay.swift | 2 +- Mage/Map/MapObservationManager.h | 3 +- Mage/Map/MapObservationManager.m | 4 +- Mage/Map/MapPolygonObservation.m | 2 +- Mage/Map/MapPolylineObservation.m | 3 +- Mage/Map/MapShapeObservation.h | 2 +- Mage/Map/MapShapeObservation.m | 2 +- Mage/Map/MapShapePointsObservation.h | 2 +- Mage/Map/MapUtils.h | 2 +- Mage/Map/MapUtils.m | 4 +- Mage/Mixins/FilteredObservationsMap.swift | 4 +- Mage/Mixins/GeoPackageLayerMap.swift | 2 +- Mage/Mixins/SFGeometryMap.swift | 4 +- Mage/Mixins/SingleObservationMap.swift | 2 +- Mage/Mixins/StaticLayerMap.swift | 2 +- .../GeoPackage/GeoPackageFeatureItem.swift | 2 +- .../Observation/ObservationMapItem.swift | 2 +- Mage/OfflineMapTableViewController.swift | 2 +- .../GeoPackage/GeoPackageRepository.swift | 2 +- Mage/Repository/MapFeatureRepository.swift | 2 +- ...eoPackageFeatureBottomSheetViewModel.swift | 7 +- MageTests/MageCoreDataFixtures.swift | 2 +- MageTests/Map/Cache/CacheOverlaysTests.swift | 2 +- .../Mocks/MockGeometryEditCoordinator.swift | 2 +- .../GeometryEditViewControllerTests.swift | 6 +- .../ObservationEditCoordinatorTests.swift | 2 +- .../Edit/ObservationFormViewTests.swift | 2 +- .../Observation/Fields/DateViewTests.swift | 13 +- .../Fields/GeometryViewTests.swift | 2 +- MageTests/SDK/GeometryDeserializerTests.swift | 2 +- MageTests/SDK/GeometrySerializerTests.swift | 2 +- MageTests/TestingAppDelegate.m | 3 +- Podfile | 57 +---- Podfile.lock | 73 +------ sdk/GeometryDeserializer.swift | 4 +- sdk/GeometrySerializer.swift | 4 +- 64 files changed, 402 insertions(+), 293 deletions(-) delete mode 100644 Mage/GeoPackage/GeoPackage.h diff --git a/MAGE.xcodeproj/project.pbxproj b/MAGE.xcodeproj/project.pbxproj index 8b9006dfd..77da255c3 100644 --- a/MAGE.xcodeproj/project.pbxproj +++ b/MAGE.xcodeproj/project.pbxproj @@ -164,6 +164,17 @@ 8474FD9726FB8B220041891A /* EmailBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 8474FD9626FB8B220041891A /* EmailBuilder.m */; }; 8474FD9A26FB8B890041891A /* LinkGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8474FD9926FB8B890041891A /* LinkGenerator.m */; }; 8474FD9D26FB8C410041891A /* ContactInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8474FD9C26FB8C410041891A /* ContactInfo.m */; }; + BD6C27F82DE10EE70086F310 /* GeoPackage in Frameworks */ = {isa = PBXBuildFile; productRef = BD6C27F72DE10EE70086F310 /* GeoPackage */; }; + BD6C27FB2DE110FA0086F310 /* MGRS in Frameworks */ = {isa = PBXBuildFile; productRef = BD6C27FA2DE110FA0086F310 /* MGRS */; }; + BD6C27FE2DE111190086F310 /* GARS in Frameworks */ = {isa = PBXBuildFile; productRef = BD6C27FD2DE111190086F310 /* GARS */; }; + BD6E578C2DE0D3A000C046FD /* MGRS in Frameworks */ = {isa = PBXBuildFile; productRef = BD6E578B2DE0D3A000C046FD /* MGRS */; }; + BD6E578F2DE0D3C000C046FD /* GARS in Frameworks */ = {isa = PBXBuildFile; productRef = BD6E578E2DE0D3C000C046FD /* GARS */; }; + BD6E57922DE0D3D700C046FD /* GeoPackage in Frameworks */ = {isa = PBXBuildFile; productRef = BD6E57912DE0D3D700C046FD /* GeoPackage */; }; + BDB16FA22DF770F900FDD03B /* SimpleFeatures in Frameworks */ = {isa = PBXBuildFile; productRef = BDB16FA12DF770F900FDD03B /* SimpleFeatures */; }; + BDB16FA52DF7713300FDD03B /* Projections in Frameworks */ = {isa = PBXBuildFile; productRef = BDB16FA42DF7713300FDD03B /* Projections */; }; + BDB16FA82DF7715400FDD03B /* SimpleFeaturesWKT in Frameworks */ = {isa = PBXBuildFile; productRef = BDB16FA72DF7715400FDD03B /* SimpleFeaturesWKT */; }; + BDB16FAB2DF7717700FDD03B /* SimpleFeaturesProjections in Frameworks */ = {isa = PBXBuildFile; productRef = BDB16FAA2DF7717700FDD03B /* SimpleFeaturesProjections */; }; + BDB16FAE2DF7719600FDD03B /* SimpleFeaturesGeoJSON in Frameworks */ = {isa = PBXBuildFile; productRef = BDB16FAD2DF7719600FDD03B /* SimpleFeaturesGeoJSON */; }; BFC94C4360074DCC5E09B8EA /* libPods-MAGE.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B61E70D96990B16652014926 /* libPods-MAGE.a */; }; F70039442006BA1700E6E660 /* apiSuccess.json in Resources */ = {isa = PBXBuildFile; fileRef = F7614DA92006902000676366 /* apiSuccess.json */; }; F70039462006CCA400E6E660 /* apiFail.json in Resources */ = {isa = PBXBuildFile; fileRef = F70039452006CB0700E6E660 /* apiFail.json */; }; @@ -1824,7 +1835,6 @@ F7EBAEBE2762400800650F4F /* MapNotifications.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapNotifications.swift; sourceTree = ""; }; F7EBAEC02762537100650F4F /* BottomSheetEnabled.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetEnabled.swift; sourceTree = ""; }; F7ECDC9927A5A37200D0AF92 /* GeoPackageLayerMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeoPackageLayerMap.swift; sourceTree = ""; }; - F7ECDC9C27A83C8600D0AF92 /* GeoPackage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeoPackage.h; sourceTree = ""; }; F7ECDC9D27A83C8600D0AF92 /* GeoPackage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeoPackage.swift; sourceTree = ""; }; F7ED5CF11FFBF736007BD768 /* fontawesome-webfont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "fontawesome-webfont.ttf"; sourceTree = ""; }; F7ED5D0D1FFD4879007BD768 /* GondolaMage-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "GondolaMage-Regular.otf"; sourceTree = ""; }; @@ -1907,20 +1917,30 @@ files = ( F734C1F42BC84C8300B2E8C8 /* MaterialViews in Frameworks */, F70688832BA37ECE00D8E2EA /* Kingfisher in Frameworks */, + BD6E578F2DE0D3C000C046FD /* GARS in Frameworks */, 2FF74A4D1BEBFAD900416090 /* WebKit.framework in Frameworks */, F76FAE861A5C797400BD8443 /* CoreAudio.framework in Frameworks */, + BD6E57922DE0D3D700C046FD /* GeoPackage in Frameworks */, F70EAF3D199D052D00909C8A /* MediaPlayer.framework in Frameworks */, F706888F2BA3A85600D8E2EA /* DataSourceDefinition in Frameworks */, + BDB16FA82DF7715400FDD03B /* SimpleFeaturesWKT in Frameworks */, F7DE98932C1B3B9B005372F8 /* DebugUtilities in Frameworks */, F776AC902BC9E178000FAFB4 /* MapFramework in Frameworks */, 4C390F4A197DB7B000AB3CCB /* MessageUI.framework in Frameworks */, F7A94DA118ADBD5400CB9EE0 /* MapKit.framework in Frameworks */, + BDB16FA52DF7713300FDD03B /* Projections in Frameworks */, F776AC952BCD9DE3000FAFB4 /* Alamofire in Frameworks */, + BD6C27FB2DE110FA0086F310 /* MGRS in Frameworks */, + BD6C27F82DE10EE70086F310 /* GeoPackage in Frameworks */, + BDB16FA22DF770F900FDD03B /* SimpleFeatures in Frameworks */, + BDB16FAB2DF7717700FDD03B /* SimpleFeaturesProjections in Frameworks */, F70688932BA3A85600D8E2EA /* StringExtensions in Frameworks */, F7A94DAB18B5100B00CB9EE0 /* QuartzCore.framework in Frameworks */, + BDB16FAE2DF7719600FDD03B /* SimpleFeaturesGeoJSON in Frameworks */, F7A94D6C18AD9CB000CB9EE0 /* CoreGraphics.framework in Frameworks */, F7A94D7018AD9CB000CB9EE0 /* CoreData.framework in Frameworks */, F70688C12BB7400C00D8E2EA /* MKMapViewExtensions in Frameworks */, + BD6C27FE2DE111190086F310 /* GARS in Frameworks */, F70688912BA3A85600D8E2EA /* DataSourceTileOverlay in Frameworks */, F706889C2BA49CB100D8E2EA /* NSManagedObjectContextExtensions in Frameworks */, F70688952BA3A85700D8E2EA /* UIImageExtensions in Frameworks */, @@ -1930,6 +1950,7 @@ F734C1F12BC84B2000B2E8C8 /* ViewExtensions in Frameworks */, F7E079462C2223B80029C88D /* ExceptionCatcher in Frameworks */, BFC94C4360074DCC5E09B8EA /* libPods-MAGE.a in Frameworks */, + BD6E578C2DE0D3A000C046FD /* MGRS in Frameworks */, F7BFB8D72C4F074E00901479 /* SwiftUIKitView in Frameworks */, F706888D2BA3A85600D8E2EA /* CLLocationCoordinate2DExtensions in Frameworks */, ); @@ -4131,7 +4152,6 @@ F7ECDC9B27A83AC500D0AF92 /* GeoPackage */ = { isa = PBXGroup; children = ( - F7ECDC9C27A83C8600D0AF92 /* GeoPackage.h */, F7ECDC9D27A83C8600D0AF92 /* GeoPackage.swift */, F7F08E9327E0EB7100640D89 /* GeoPackageImporter.swift */, ); @@ -4259,6 +4279,17 @@ F7DE98922C1B3B9B005372F8 /* DebugUtilities */, F7E079452C2223B80029C88D /* ExceptionCatcher */, F7BFB8D62C4F074E00901479 /* SwiftUIKitView */, + BD6E578B2DE0D3A000C046FD /* MGRS */, + BD6E578E2DE0D3C000C046FD /* GARS */, + BD6E57912DE0D3D700C046FD /* GeoPackage */, + BD6C27F72DE10EE70086F310 /* GeoPackage */, + BD6C27FA2DE110FA0086F310 /* MGRS */, + BD6C27FD2DE111190086F310 /* GARS */, + BDB16FA12DF770F900FDD03B /* SimpleFeatures */, + BDB16FA42DF7713300FDD03B /* Projections */, + BDB16FA72DF7715400FDD03B /* SimpleFeaturesWKT */, + BDB16FAA2DF7717700FDD03B /* SimpleFeaturesProjections */, + BDB16FAD2DF7719600FDD03B /* SimpleFeaturesGeoJSON */, ); productName = Mage; productReference = F7A94D6618AD9CB000CB9EE0 /* MAGE.app */; @@ -4358,6 +4389,14 @@ F776AC932BCD9DE3000FAFB4 /* XCRemoteSwiftPackageReference "Alamofire" */, F7E079442C2223B80029C88D /* XCRemoteSwiftPackageReference "ExceptionCatcher" */, F7BFB8D52C4F074E00901479 /* XCRemoteSwiftPackageReference "SwiftUIKitView" */, + BD6C27F62DE10EE70086F310 /* XCRemoteSwiftPackageReference "geopackage-ios" */, + BD6C27F92DE110FA0086F310 /* XCRemoteSwiftPackageReference "mgrs-ios" */, + BD6C27FC2DE111190086F310 /* XCRemoteSwiftPackageReference "gars-ios" */, + BDB16FA02DF770F900FDD03B /* XCRemoteSwiftPackageReference "simple-features-ios" */, + BDB16FA32DF7713300FDD03B /* XCRemoteSwiftPackageReference "projections-ios" */, + BDB16FA62DF7715400FDD03B /* XCRemoteSwiftPackageReference "simple-features-wkt-ios" */, + BDB16FA92DF7717700FDD03B /* XCRemoteSwiftPackageReference "simple-features-proj-ios" */, + BDB16FAC2DF7719600FDD03B /* XCRemoteSwiftPackageReference "simple-features-geojson-ios" */, ); productRefGroup = F7A94D6718AD9CB000CB9EE0 /* Products */; projectDirPath = ""; @@ -4612,11 +4651,6 @@ "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_radio_button_unchecked.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_reorder.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_settings.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/PROJ/PROJ.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/gars-ios/gars-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/geopackage-ios/geopackage-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/mgrs-ios/mgrs-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/proj-ios/proj-ios.bundle", "${PODS_ROOT}/zxcvbn-ios/Zxcvbn/generated/adjacency_graphs.json", "${PODS_ROOT}/zxcvbn-ios/Zxcvbn/generated/frequency_lists.json", ); @@ -4643,11 +4677,6 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_radio_button_unchecked.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_reorder.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_settings.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PROJ.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gars-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/geopackage-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mgrs-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/proj-ios.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/adjacency_graphs.json", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/frequency_lists.json", ); @@ -4724,11 +4753,6 @@ "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_radio_button_unchecked.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_reorder.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_settings.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/PROJ/PROJ.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/gars-ios/gars-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/geopackage-ios/geopackage-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/mgrs-ios/mgrs-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/proj-ios/proj-ios.bundle", "${PODS_ROOT}/zxcvbn-ios/Zxcvbn/generated/adjacency_graphs.json", "${PODS_ROOT}/zxcvbn-ios/Zxcvbn/generated/frequency_lists.json", ); @@ -4755,11 +4779,6 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_radio_button_unchecked.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_reorder.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_settings.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PROJ.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gars-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/geopackage-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mgrs-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/proj-ios.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/adjacency_graphs.json", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/frequency_lists.json", ); @@ -4796,11 +4815,6 @@ "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_radio_button_unchecked.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_reorder.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents/MaterialIcons_ic_settings.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/PROJ/PROJ.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/gars-ios/gars-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/geopackage-ios/geopackage-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/mgrs-ios/mgrs-ios.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/proj-ios/proj-ios.bundle", "${PODS_ROOT}/zxcvbn-ios/Zxcvbn/generated/adjacency_graphs.json", "${PODS_ROOT}/zxcvbn-ios/Zxcvbn/generated/frequency_lists.json", ); @@ -4827,11 +4841,6 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_radio_button_unchecked.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_reorder.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons_ic_settings.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PROJ.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gars-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/geopackage-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mgrs-ios.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/proj-ios.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/adjacency_graphs.json", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/frequency_lists.json", ); @@ -5625,7 +5634,7 @@ GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 1; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -5640,6 +5649,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 16.6; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -5680,7 +5690,7 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 1; + GCC_OPTIMIZATION_LEVEL = s; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -5690,6 +5700,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 16.6; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-Osize"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -5714,15 +5725,14 @@ GCC_PREFIX_HEADER = "Mage/MAGE-Prefix.pch"; INFOPLIST_FILE = "Mage/MAGE-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 16.0; - MARKETING_VERSION = 4.1.0; + MARKETING_VERSION = 4.2.0; OTHER_LDFLAGS = "$(inherited)"; - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/AFNetworking/AFNetworking.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/DateTools/DateTools.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/HexColors/HexColors.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MDFInternationalization/MDFInternationalization.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MDFTextAccessibility/MDFTextAccessibility.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MagicalRecord/MagicalRecord.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MaterialComponents/MaterialComponents.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MotionAnimator/MotionAnimator.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MotionInterchange/MotionInterchange.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/PureLayout/PureLayout.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/geopackage_ios/geopackage-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/libPhoneNumber_iOS/libPhoneNumber-iOS.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/ogc_api_features_json_ios/ogc-api-features-json-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/sf_geojson_ios/sf-geojson-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/sf_ios/sf-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/sf_proj_ios/sf-proj-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/sf_wkb_ios/sf-wkb-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/sf_wkt_ios/sf-wkt-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/tiff_ios/tiff-ios.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/zxcvbn_ios/zxcvbn-ios.modulemap\""; + OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/AFNetworking/AFNetworking.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/DateTools/DateTools.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/HexColors/HexColors.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MDFInternationalization/MDFInternationalization.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MDFTextAccessibility/MDFTextAccessibility.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MagicalRecord/MagicalRecord.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MaterialComponents/MaterialComponents.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MotionAnimator/MotionAnimator.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/MotionInterchange/MotionInterchange.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/PureLayout/PureLayout.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/libPhoneNumber_iOS/libPhoneNumber-iOS.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/zxcvbn_ios/zxcvbn-ios.modulemap\""; PRODUCT_BUNDLE_IDENTIFIER = mil.nga.mage; PRODUCT_NAME = MAGE; PROVISIONING_PROFILE = ""; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Mage/MAGE-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_STRICT_CONCURRENCY = minimal; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = NO; SWIFT_VERSION = 5.0; @@ -5749,14 +5759,13 @@ GCC_PREFIX_HEADER = "Mage/MAGE-Prefix.pch"; INFOPLIST_FILE = "Mage/MAGE-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 16.0; - MARKETING_VERSION = 4.1.0; + MARKETING_VERSION = 4.2.0; OTHER_LDFLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = mil.nga.mage; PRODUCT_NAME = MAGE; PROVISIONING_PROFILE = ""; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Mage/MAGE-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_STRICT_CONCURRENCY = minimal; SWIFT_UPCOMING_FEATURE_GLOBAL_CONCURRENCY = NO; SWIFT_VERSION = 5.0; @@ -5784,7 +5793,6 @@ DEVELOPMENT_TEAM = ZL8G5D9G2H; ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_OPTIMIZATION_LEVEL = 0; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GENERATE_INFOPLIST_FILE = YES; HEADER_SEARCH_PATHS = ( @@ -5833,7 +5841,6 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_OBJC_BRIDGING_HEADER = "MageGeoPackageTests/MAGEGeoPackageTests-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MAGE.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MAGE"; @@ -5955,7 +5962,6 @@ PRODUCT_BUNDLE_IDENTIFIER = mil.nga.mage.MAGETests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "MageTests/MAGETests-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUNDLE_LOADER)"; @@ -6056,6 +6062,70 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + BD6C27F62DE10EE70086F310 /* XCRemoteSwiftPackageReference "geopackage-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/geopackage-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 9.0.0; + }; + }; + BD6C27F92DE110FA0086F310 /* XCRemoteSwiftPackageReference "mgrs-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/mgrs-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 2.0.0; + }; + }; + BD6C27FC2DE111190086F310 /* XCRemoteSwiftPackageReference "gars-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/gars-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 2.0.0; + }; + }; + BDB16FA02DF770F900FDD03B /* XCRemoteSwiftPackageReference "simple-features-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/simple-features-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 5.0.0; + }; + }; + BDB16FA32DF7713300FDD03B /* XCRemoteSwiftPackageReference "projections-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/projections-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 3.0.0; + }; + }; + BDB16FA62DF7715400FDD03B /* XCRemoteSwiftPackageReference "simple-features-wkt-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/simple-features-wkt-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 3.0.0; + }; + }; + BDB16FA92DF7717700FDD03B /* XCRemoteSwiftPackageReference "simple-features-proj-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/simple-features-proj-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 7.0.0; + }; + }; + BDB16FAC2DF7719600FDD03B /* XCRemoteSwiftPackageReference "simple-features-geojson-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/ngageoint/simple-features-geojson-ios"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 5.0.0; + }; + }; F70688812BA37ECE00D8E2EA /* XCRemoteSwiftPackageReference "Kingfisher" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/onevcat/Kingfisher.git"; @@ -6091,6 +6161,58 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + BD6C27F72DE10EE70086F310 /* GeoPackage */ = { + isa = XCSwiftPackageProductDependency; + package = BD6C27F62DE10EE70086F310 /* XCRemoteSwiftPackageReference "geopackage-ios" */; + productName = GeoPackage; + }; + BD6C27FA2DE110FA0086F310 /* MGRS */ = { + isa = XCSwiftPackageProductDependency; + package = BD6C27F92DE110FA0086F310 /* XCRemoteSwiftPackageReference "mgrs-ios" */; + productName = MGRS; + }; + BD6C27FD2DE111190086F310 /* GARS */ = { + isa = XCSwiftPackageProductDependency; + package = BD6C27FC2DE111190086F310 /* XCRemoteSwiftPackageReference "gars-ios" */; + productName = GARS; + }; + BD6E578B2DE0D3A000C046FD /* MGRS */ = { + isa = XCSwiftPackageProductDependency; + productName = MGRS; + }; + BD6E578E2DE0D3C000C046FD /* GARS */ = { + isa = XCSwiftPackageProductDependency; + productName = GARS; + }; + BD6E57912DE0D3D700C046FD /* GeoPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = GeoPackage; + }; + BDB16FA12DF770F900FDD03B /* SimpleFeatures */ = { + isa = XCSwiftPackageProductDependency; + package = BDB16FA02DF770F900FDD03B /* XCRemoteSwiftPackageReference "simple-features-ios" */; + productName = SimpleFeatures; + }; + BDB16FA42DF7713300FDD03B /* Projections */ = { + isa = XCSwiftPackageProductDependency; + package = BDB16FA32DF7713300FDD03B /* XCRemoteSwiftPackageReference "projections-ios" */; + productName = Projections; + }; + BDB16FA72DF7715400FDD03B /* SimpleFeaturesWKT */ = { + isa = XCSwiftPackageProductDependency; + package = BDB16FA62DF7715400FDD03B /* XCRemoteSwiftPackageReference "simple-features-wkt-ios" */; + productName = SimpleFeaturesWKT; + }; + BDB16FAA2DF7717700FDD03B /* SimpleFeaturesProjections */ = { + isa = XCSwiftPackageProductDependency; + package = BDB16FA92DF7717700FDD03B /* XCRemoteSwiftPackageReference "simple-features-proj-ios" */; + productName = SimpleFeaturesProjections; + }; + BDB16FAD2DF7719600FDD03B /* SimpleFeaturesGeoJSON */ = { + isa = XCSwiftPackageProductDependency; + package = BDB16FAC2DF7719600FDD03B /* XCRemoteSwiftPackageReference "simple-features-geojson-ios" */; + productName = SimpleFeaturesGeoJSON; + }; F70688822BA37ECE00D8E2EA /* Kingfisher */ = { isa = XCSwiftPackageProductDependency; package = F70688812BA37ECE00D8E2EA /* XCRemoteSwiftPackageReference "Kingfisher" */; diff --git a/MAGE.xcodeproj/xcshareddata/xcschemes/MAGE.xcscheme b/MAGE.xcodeproj/xcshareddata/xcschemes/MAGE.xcscheme index 13b8dc110..c4a26f9a6 100644 --- a/MAGE.xcodeproj/xcshareddata/xcschemes/MAGE.xcscheme +++ b/MAGE.xcodeproj/xcshareddata/xcschemes/MAGE.xcscheme @@ -137,7 +137,7 @@ buildConfiguration = "Debug"> diff --git a/MAGE.xcworkspace/xcshareddata/swiftpm/Package.resolved b/MAGE.xcworkspace/xcshareddata/swiftpm/Package.resolved index 0af8f6304..132a7c154 100644 --- a/MAGE.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/MAGE.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "207c6ed47e45e25f40d2ab20afcc890a28577e7ad35a49d3145f40980c999e56", + "originHash" : "ef6625289e51aefb73813613aa0ec36b02c43ab547fb3815c8dc0c494a068963", "pins" : [ { "identity" : "alamofire", @@ -10,6 +10,24 @@ "version" : "5.10.2" } }, + { + "identity" : "color-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/color-ios", + "state" : { + "revision" : "1c588dafaf599a32d9adc29880264281dfbf286f", + "version" : "2.0.0" + } + }, + { + "identity" : "coordinate-reference-systems-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/coordinate-reference-systems-ios.git", + "state" : { + "revision" : "d0d8cd34710aa78adb1bef3cdb2bf09a18356fa0", + "version" : "2.0.0" + } + }, { "identity" : "exceptioncatcher", "kind" : "remoteSourceControl", @@ -19,7 +37,33 @@ "version" : "2.1.0" } }, - + { + "identity" : "gars-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/gars-ios", + "state" : { + "revision" : "475c819730e97cb2608f071ae999aaae7018a6b5", + "version" : "2.0.0" + } + }, + { + "identity" : "geopackage-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/geopackage-ios", + "state" : { + "revision" : "55ef7d9221dd4c7bf8eef30fff9d65482e19e8ec", + "version" : "9.0.0" + } + }, + { + "identity" : "grid-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/grid-ios", + "state" : { + "revision" : "9370e0042a6c78588486d345ab1133f450889508", + "version" : "2.0.0" + } + }, { "identity" : "kingfisher", "kind" : "remoteSourceControl", @@ -29,6 +73,87 @@ "version" : "7.12.0" } }, + { + "identity" : "mgrs-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/mgrs-ios", + "state" : { + "revision" : "8080304310058507e2818fd9f8138bc26a2567e3", + "version" : "2.0.0" + } + }, + { + "identity" : "ogc-api-features-json-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/ogc-api-features-json-ios", + "state" : { + "revision" : "fb7c085c30205d86dba22fdad38c4b63de1171de", + "version" : "5.0.0" + } + }, + { + "identity" : "proj", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/PROJ.git", + "state" : { + "revision" : "336fced3634f438f81e0d435ad99658688d1cf71", + "version" : "9.4.2" + } + }, + { + "identity" : "projections-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/projections-ios", + "state" : { + "revision" : "f05c424664072bbc9bd177c62f82368b08414253", + "version" : "3.0.0" + } + }, + { + "identity" : "simple-features-geojson-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/simple-features-geojson-ios", + "state" : { + "revision" : "fec8acaee9b793e402c3e4a7660883b9259a1c75", + "version" : "5.0.0" + } + }, + { + "identity" : "simple-features-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/simple-features-ios", + "state" : { + "revision" : "615127133c83122077dcf71daa53a9a93f05a347", + "version" : "5.0.0" + } + }, + { + "identity" : "simple-features-proj-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/simple-features-proj-ios", + "state" : { + "revision" : "61a4291a61dd60a1b17e804c68e1ad90ce078ebb", + "version" : "7.0.0" + } + }, + { + "identity" : "simple-features-wkb-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/simple-features-wkb-ios", + "state" : { + "revision" : "5e33516668372d8c3b130e8f38237b65ae6b042a", + "version" : "5.0.0" + } + }, + { + "identity" : "simple-features-wkt-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/simple-features-wkt-ios", + "state" : { + "revision" : "b17eba292f15742853b604e3de2fa178f9eedeba", + "version" : "3.0.0" + } + }, { "identity" : "swiftuikitview", "kind" : "remoteSourceControl", @@ -37,6 +162,15 @@ "revision" : "56f2a1f8e35d5c258f633e8472cd59345ed5ae59", "version" : "2.0.0" } + }, + { + "identity" : "tiff-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ngageoint/tiff-ios", + "state" : { + "revision" : "2e019be5231352eef1854492bd25f80174b0f902", + "version" : "5.0.0" + } } ], "version" : 3 diff --git a/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterTests.swift b/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterTests.swift index fb2082fdb..1554ea65d 100644 --- a/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterTests.swift +++ b/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterTests.swift @@ -9,7 +9,7 @@ import XCTest import OHHTTPStubs import Nimble -import geopackage_ios +import GeoPackage import OSLog @testable import MAGE diff --git a/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterUITests.swift b/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterUITests.swift index be6096825..505382061 100644 --- a/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterUITests.swift +++ b/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageImporterUITests.swift @@ -9,7 +9,7 @@ import XCTest import Nimble import Quick -import geopackage_ios +import GeoPackage import OHHTTPStubs @testable import MAGE diff --git a/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageTests.swift b/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageTests.swift index fb89a570f..28c495de3 100644 --- a/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageTests.swift +++ b/MAGEGeoPackageTests/Map/GeoPackage/GeoPackageTests.swift @@ -8,7 +8,7 @@ import XCTest import OHHTTPStubs -import geopackage_ios +import GeoPackage import OSLog @testable import MAGE diff --git a/MAGEGeoPackageTests/TestingAppDelegate.m b/MAGEGeoPackageTests/TestingAppDelegate.m index c3135bdf4..56a3a3bf9 100644 --- a/MAGEGeoPackageTests/TestingAppDelegate.m +++ b/MAGEGeoPackageTests/TestingAppDelegate.m @@ -9,8 +9,7 @@ #import #import "TestingAppDelegate.h" #import "MagicalRecord+MAGE.h" -#import "GPKGGeoPackageManager.h" -#import "GPKGGeoPackageFactory.h" +@import GeoPackage; #import "MAGE-Swift.h" @interface TestingAppDelegate () diff --git a/Mage/AppDelegate.m b/Mage/AppDelegate.m index 989b85712..78efa7467 100644 --- a/Mage/AppDelegate.m +++ b/Mage/AppDelegate.m @@ -12,7 +12,7 @@ #import #import "MageSessionManager.h" #import "MagicalRecord+MAGE.h" -#import "GPKGGeoPackageFactory.h" +@import GeoPackage; #import "MageConstants.h" #import "MageOfflineObservationManager.h" #import "MageAppCoordinator.h" diff --git a/Mage/BaseMapOverlay.swift b/Mage/BaseMapOverlay.swift index 072b05966..e9090a439 100644 --- a/Mage/BaseMapOverlay.swift +++ b/Mage/BaseMapOverlay.swift @@ -8,7 +8,7 @@ import Foundation import MapFramework -import geopackage_ios +import GeoPackage @objc class BaseMapOverlay: GPKGFeatureOverlay, OverlayRenderable { var renderer: MKOverlayRenderer { diff --git a/Mage/CoordinateDisplayType.swift b/Mage/CoordinateDisplayType.swift index f9d4d4c22..3f385b80c 100644 --- a/Mage/CoordinateDisplayType.swift +++ b/Mage/CoordinateDisplayType.swift @@ -7,8 +7,8 @@ import Foundation import MapKit -import gars_ios -import mgrs_ios +import GARS +import MGRS import CLLocationCoordinate2DExtensions enum CoordinateDisplayType: Int, CustomStringConvertible { diff --git a/Mage/CoreData/GPSLocation.swift b/Mage/CoreData/GPSLocation.swift index 27220622b..0b922beb5 100644 --- a/Mage/CoreData/GPSLocation.swift +++ b/Mage/CoreData/GPSLocation.swift @@ -11,7 +11,7 @@ import CoreData import UIKit import CoreTelephony import AFNetworking -import sf_ios +import SimpleFeatures @objc public class GPSLocation: NSManagedObject { diff --git a/Mage/CoreData/Location.swift b/Mage/CoreData/Location.swift index 8eb6a1035..64c35612f 100644 --- a/Mage/CoreData/Location.swift +++ b/Mage/CoreData/Location.swift @@ -9,7 +9,7 @@ import Foundation import CoreData import CoreLocation -import sf_ios +import SimpleFeatures import MagicalRecord @objc public class Location: NSManagedObject, Navigable { diff --git a/Mage/CoreData/Observation.swift b/Mage/CoreData/Observation.swift index 81e0f471a..71b960756 100644 --- a/Mage/CoreData/Observation.swift +++ b/Mage/CoreData/Observation.swift @@ -8,10 +8,10 @@ import Foundation import CoreData -import sf_ios +import SimpleFeatures import UIKit import MagicalRecord -import geopackage_ios +import GeoPackage enum ObservationState: Int, CustomStringConvertible { case Archive, Active diff --git a/Mage/Extensions/MKShapeExtensions.swift b/Mage/Extensions/MKShapeExtensions.swift index 7ce8084c3..dc97a9bdc 100644 --- a/Mage/Extensions/MKShapeExtensions.swift +++ b/Mage/Extensions/MKShapeExtensions.swift @@ -7,9 +7,9 @@ import Foundation import MapKit -import sf_wkt_ios +import SimpleFeaturesWKT import MapFramework -import geopackage_ios +import GeoPackage extension MKShape { static func fromWKT(wkt: String, distance: Double?) -> MKShape? { diff --git a/Mage/GeoPackage/GeoPackage.h b/Mage/GeoPackage/GeoPackage.h deleted file mode 100644 index 353f81b3f..000000000 --- a/Mage/GeoPackage/GeoPackage.h +++ /dev/null @@ -1,25 +0,0 @@ -//// -//// GeoPackage.h -//// MAGE -//// -//// Created by Daniel Barela on 1/31/22. -//// Copyright © 2022 National Geospatial Intelligence Agency. All rights reserved. -//// -// -//#import -//#import "GeoPackageTileTableCacheOverlay.h" -// -//@class GeoPackageFeatureItem; -//@class GeoPackageFeatureKey; -// -//NS_ASSUME_NONNULL_BEGIN -// -//@interface GeoPackage : NSObject -// -//- (id) initWithMapView: (MKMapView *) mapView; -//- (void) updateCacheOverlaysSynchronized:(NSArray *) cacheOverlays; -//- (NSArray*) getFeatureKeysAtTap: (CLLocationCoordinate2D) tapCoord; -// -//@end -// -//NS_ASSUME_NONNULL_END diff --git a/Mage/GeoPackage/GeoPackage.swift b/Mage/GeoPackage/GeoPackage.swift index 9076a7292..0c739c5be 100644 --- a/Mage/GeoPackage/GeoPackage.swift +++ b/Mage/GeoPackage/GeoPackage.swift @@ -14,9 +14,9 @@ import Foundation import ExceptionCatcher -import geopackage_ios -import sf_ios -import sf_proj_ios +import GeoPackage +import SimpleFeatures +import SimpleFeaturesProjections @objc actor GeoPackage: NSObject { @@ -323,7 +323,7 @@ import sf_proj_ios if featureTableCacheOverlay.indexed { let featureTiles = GPKGFeatureTiles(geoPackage: geoPackage, andFeatureDao: featureDao) var maxFeaturesPerTile = UserDefaults.standard.geoPackageFeatureTilesMaxFeaturesPerTile - if featureDao.geometryType() == SF_POINT { + if featureDao.geometryType() == .POINT { maxFeaturesPerTile = UserDefaults.standard.geoPackageFeatureTilesMaxPointsPerTile } featureTiles?.maxFeaturesPerTile = NSNumber(value: maxFeaturesPerTile) @@ -354,7 +354,7 @@ import sf_proj_ios } else { // Not indexed, add the features to the map var maxFeaturesPerTable = UserDefaults.standard.geoPackageFeaturesMaxFeaturesPerTable - if featureDao.geometryType() == SF_POINT { + if featureDao.geometryType() == .POINT { maxFeaturesPerTable = UserDefaults.standard.geoPackageFeaturesMaxPointsPerTable } if let projection = featureDao.projection, diff --git a/Mage/GeoPackage/GeoPackageImporter.swift b/Mage/GeoPackage/GeoPackageImporter.swift index c5568f82f..0e1ddcf47 100644 --- a/Mage/GeoPackage/GeoPackageImporter.swift +++ b/Mage/GeoPackage/GeoPackageImporter.swift @@ -7,7 +7,7 @@ // import Foundation -import geopackage_ios +import GeoPackage import ExceptionCatcher import SSZipArchive diff --git a/Mage/Geocoder.swift b/Mage/Geocoder.swift index 8a2dc18c2..d8ebef689 100644 --- a/Mage/Geocoder.swift +++ b/Mage/Geocoder.swift @@ -8,8 +8,8 @@ import Foundation -import gars_ios -import mgrs_ios +import GARS +import MGRS enum SearchResponseType { case mgrs diff --git a/Mage/GeometryEditCoordinator.h b/Mage/GeometryEditCoordinator.h index bf65a5089..29934c454 100644 --- a/Mage/GeometryEditCoordinator.h +++ b/Mage/GeometryEditCoordinator.h @@ -8,7 +8,7 @@ #import #import -#import "SFGeometry.h" +@import SimpleFeatures; #import @protocol GeometryEditDelegate diff --git a/Mage/GeometryEditCoordinator.m b/Mage/GeometryEditCoordinator.m index 5d5206b02..db5029202 100644 --- a/Mage/GeometryEditCoordinator.m +++ b/Mage/GeometryEditCoordinator.m @@ -9,7 +9,7 @@ #import "GeometryEditCoordinator.h" #import "GeometryEditViewController.h" #import "LocationService.h" -#import "SFPoint.h" +@import SimpleFeatures; #import "MAGE-Swift.h" @interface GeometryEditCoordinator() diff --git a/Mage/GeometryEditMapDelegate.m b/Mage/GeometryEditMapDelegate.m index 6cc1d5638..9a7f5e8a4 100644 --- a/Mage/GeometryEditMapDelegate.m +++ b/Mage/GeometryEditMapDelegate.m @@ -7,7 +7,7 @@ // #import "GeometryEditMapDelegate.h" -#import "GPKGMapPoint.h" +@import GeoPackage; #import "MapShapePointAnnotationView.h" #import "MAGE-Swift.h" diff --git a/Mage/GeometryEditViewController.m b/Mage/GeometryEditViewController.m index 5c8219894..293ee07a4 100644 --- a/Mage/GeometryEditViewController.m +++ b/Mage/GeometryEditViewController.m @@ -6,19 +6,16 @@ #import "GeometryEditViewController.h" #import "LocationService.h" -#import "SFPoint.h" -#import "SFGeometryUtils.h" +@import SimpleFeatures; +@import GeoPackage; +@import Projections; #import "MapObservation.h" #import "MapObservationManager.h" -#import "GPKGMapShapeConverter.h" #import "MapShapePointsObservation.h" #import "MapAnnotationObservation.h" #import "MapShapePointAnnotationView.h" -#import "PROJProjectionConstants.h" -#import "SFGeometryEnvelopeBuilder.h" #import "UINavigationItem+Subtitle.h" #import "MapUtils.h" -#import "GPKGGeoPackageFactory.h" #import "AppDelegate.h" #import #import "MAGE-Swift.h" @@ -1126,7 +1123,7 @@ -(void) changeShapeType: (enum SFGeometryType) selectedType andRectangle: (BOOL) } break; default: - [NSException raise:@"Unsupported Geometry" format:@"Unsupported Geometry Type: %u", selectedType]; + [NSException raise:@"Unsupported Geometry" format:@"Unsupported Geometry Type: %ld", selectedType]; } } } @@ -1213,7 +1210,7 @@ -(void) changeShapeType: (enum SFGeometryType) selectedType andRectangle: (BOOL) break; default: - [NSException raise:@"Unsupported Geometry" format:@"Unsupported Geometry Type: %u", selectedType]; + [NSException raise:@"Unsupported Geometry" format:@"Unsupported Geometry Type: %ld", selectedType]; } } } @@ -1487,7 +1484,7 @@ -(void) longPressGesture:(UILongPressGestureRecognizer *) longPressGestureRecogn } break; default: - [NSException raise:@"Unsupported Geometry Type" format:@"Unsupported Geometry Type: %u", self.shapeType]; + [NSException raise:@"Unsupported Geometry Type" format:@"Unsupported Geometry Type: %ld", self.shapeType]; } [self addMapShape:geometry]; [self updateGeometry]; diff --git a/Mage/GridSystems.swift b/Mage/GridSystems.swift index 5368487a7..e02951c35 100644 --- a/Mage/GridSystems.swift +++ b/Mage/GridSystems.swift @@ -8,8 +8,8 @@ import Foundation -import gars_ios -import mgrs_ios +import GARS +import MGRS /** * Grid Systems support for GARS and MGRS grid tile overlays and coordinates diff --git a/Mage/HasMapSearchMixin.swift b/Mage/HasMapSearchMixin.swift index 358e4198a..379dae638 100644 --- a/Mage/HasMapSearchMixin.swift +++ b/Mage/HasMapSearchMixin.swift @@ -10,8 +10,8 @@ import Foundation import MapKit import MapFramework -import mgrs_ios -import gars_ios +import MGRS +import GARS protocol HasMapSearch { var mapView: MKMapView? { get set } diff --git a/Mage/LocationAnnotation.m b/Mage/LocationAnnotation.m index 9739146d5..a13f22b59 100644 --- a/Mage/LocationAnnotation.m +++ b/Mage/LocationAnnotation.m @@ -8,7 +8,7 @@ @import MaterialComponents; #import "LocationAnnotation.h" -#import "SFGeometryUtils.h" +@import SimpleFeatures; #import #import "MAGE-Swift.h" diff --git a/Mage/MAGE-Bridging-Header.h b/Mage/MAGE-Bridging-Header.h index b1795c036..f3f9a89ed 100644 --- a/Mage/MAGE-Bridging-Header.h +++ b/Mage/MAGE-Bridging-Header.h @@ -12,11 +12,6 @@ #import "MapObservation.h" #import "MapObservationManager.h" -// Not sure why this isn't getting added via the geopackage pod... -#import "GPKGMapShapeConverter.h" -#import "GPKGFeatureRowData.h" -#import "GPKGFeatureOverlay.h" - #import "MAGERoutes.h" #import "NotificationRequester.h" #import "FadeTransitionSegue.h" @@ -26,7 +21,6 @@ #import "NSDate+display.h" #import "Locations.h" #import "Observations.h" -#import "SFGeometryUtils.h" #import "ExternalDevice.h" #import "MageSessionManager.h" #import "MapSettings.h" @@ -37,7 +31,6 @@ #import "SignUpViewController_Server5.h" #import "ChangePasswordViewController.h" #import "LocalLoginView.h" -//#import "DeviceUUID.h" #import "Authentication.h" #import "FormDefaults.h" #import "AttachmentCollectionDataStore.h" @@ -66,7 +59,3 @@ #import "WMSTileOverlay.h" #import "TMSTileOverlay.h" #import "XYZTileOverlay.h" -//#import "XYZDirectoryCacheOverlay.h" -//#import "GeoPackageCacheOverlay.h" -//#import "GeoPackageFeatureTableCacheOverlay.h" -//#import "CacheOverlayTypes.h" diff --git a/Mage/MageMapView.swift b/Mage/MageMapView.swift index ee31e523d..e75498f83 100644 --- a/Mage/MageMapView.swift +++ b/Mage/MageMapView.swift @@ -7,7 +7,7 @@ // import UIKit -import geopackage_ios +import GeoPackage import MapKit import MapFramework diff --git a/Mage/Map/Cache/GeoPackageFeatureTableCacheOverlay.swift b/Mage/Map/Cache/GeoPackageFeatureTableCacheOverlay.swift index 9864aeea8..b829d8b6c 100644 --- a/Mage/Map/Cache/GeoPackageFeatureTableCacheOverlay.swift +++ b/Mage/Map/Cache/GeoPackageFeatureTableCacheOverlay.swift @@ -7,7 +7,7 @@ // // -import geopackage_ios +import GeoPackage import ExceptionCatcher extension GPKGFeatureIndexResults: Sequence { diff --git a/Mage/Map/Cache/GeoPackageTileTableCacheOverlay.swift b/Mage/Map/Cache/GeoPackageTileTableCacheOverlay.swift index b4974687a..62a47e427 100644 --- a/Mage/Map/Cache/GeoPackageTileTableCacheOverlay.swift +++ b/Mage/Map/Cache/GeoPackageTileTableCacheOverlay.swift @@ -6,7 +6,7 @@ // Copyright © 2015 National Geospatial Intelligence Agency. All rights reserved. // -import geopackage_ios +import GeoPackage class GeoPackageTileTableCacheOverlay: GeoPackageTableCacheOverlay { public var featureOverlayQueries: [GPKGFeatureOverlayQuery] = [] diff --git a/Mage/Map/MapObservationManager.h b/Mage/Map/MapObservationManager.h index c90bed00a..fd80f2406 100644 --- a/Mage/Map/MapObservationManager.h +++ b/Mage/Map/MapObservationManager.h @@ -9,7 +9,8 @@ #import #import "MapObservation.h" #import "MapAnnotation.h" -#import "SFGeometry.h" +@import SimpleFeatures; + /** * Handles adding Observations to the map as markers or shapes * diff --git a/Mage/Map/MapObservationManager.m b/Mage/Map/MapObservationManager.m index 240b603e2..0811dbc2a 100644 --- a/Mage/Map/MapObservationManager.m +++ b/Mage/Map/MapObservationManager.m @@ -7,8 +7,8 @@ // #import "MapObservationManager.h" -#import "SFGeometryUtils.h" -#import "GPKGMapShapeConverter.h" +@import SimpleFeatures; +@import GeoPackage; #import "MapShapeObservation.h" #import "MapAnnotationObservation.h" #import "MAGE-Swift.h" diff --git a/Mage/Map/MapPolygonObservation.m b/Mage/Map/MapPolygonObservation.m index e66810412..bdf81b336 100644 --- a/Mage/Map/MapPolygonObservation.m +++ b/Mage/Map/MapPolygonObservation.m @@ -7,7 +7,7 @@ // #import "MapPolygonObservation.h" -#import "GPKGMapUtils.h" +@import GeoPackage; @interface MapPolygonObservation () diff --git a/Mage/Map/MapPolylineObservation.m b/Mage/Map/MapPolylineObservation.m index e150721fe..0909ecfbe 100644 --- a/Mage/Map/MapPolylineObservation.m +++ b/Mage/Map/MapPolylineObservation.m @@ -7,8 +7,7 @@ // #import "MapPolylineObservation.h" -#import "GPKGMapShapeConverter.h" -#import "GPKGMapUtils.h" +@import GeoPackage; @interface MapPolylineObservation () diff --git a/Mage/Map/MapShapeObservation.h b/Mage/Map/MapShapeObservation.h index f501ff89c..c8895c14f 100644 --- a/Mage/Map/MapShapeObservation.h +++ b/Mage/Map/MapShapeObservation.h @@ -7,7 +7,7 @@ // #import "MapObservation.h" -#import "GPKGMapShape.h" +@import GeoPackage; /** * Observation represented by a shape on the map diff --git a/Mage/Map/MapShapeObservation.m b/Mage/Map/MapShapeObservation.m index 2aa82a844..14dcd0f6e 100644 --- a/Mage/Map/MapShapeObservation.m +++ b/Mage/Map/MapShapeObservation.m @@ -9,7 +9,7 @@ #import "MapShapeObservation.h" #import "MapPolylineObservation.h" #import "MapPolygonObservation.h" -#import "PROJProjectionConstants.h" +@import Projections; @interface MapShapeObservation () diff --git a/Mage/Map/MapShapePointsObservation.h b/Mage/Map/MapShapePointsObservation.h index 9649955f9..b8f6daef6 100644 --- a/Mage/Map/MapShapePointsObservation.h +++ b/Mage/Map/MapShapePointsObservation.h @@ -7,7 +7,7 @@ // #import "MapShapeObservation.h" -#import "GPKGMapShapePoints.h" +@import GeoPackage; @interface MapShapePointsObservation : MapShapeObservation diff --git a/Mage/Map/MapUtils.h b/Mage/Map/MapUtils.h index f1a76187d..94e9d44ef 100644 --- a/Mage/Map/MapUtils.h +++ b/Mage/Map/MapUtils.h @@ -8,7 +8,7 @@ #import #import -#import "SFPolygon.h" +@import SimpleFeatures; /** * Map utilities diff --git a/Mage/Map/MapUtils.m b/Mage/Map/MapUtils.m index 568a3495d..a335e87de 100644 --- a/Mage/Map/MapUtils.m +++ b/Mage/Map/MapUtils.m @@ -7,8 +7,8 @@ // #import "MapUtils.h" -#import "GPKGMapShapePoints.h" -#import "SFLineString.h" +@import SimpleFeatures; +@import GeoPackage; @implementation MapUtils diff --git a/Mage/Mixins/FilteredObservationsMap.swift b/Mage/Mixins/FilteredObservationsMap.swift index 8b401e702..b51abfe0a 100644 --- a/Mage/Mixins/FilteredObservationsMap.swift +++ b/Mage/Mixins/FilteredObservationsMap.swift @@ -8,7 +8,7 @@ import Foundation import MapKit -import geopackage_ios +import GeoPackage import MapFramework protocol FilteredObservationsMap { @@ -162,7 +162,7 @@ class FilteredObservationsMapMixin: NSObject, MapMixin { func updateObservation(observation: Observation, animated: Bool = false, zoom: Bool = false) { deleteObservation(observation: observation) if let geometry = observation.geometry { - if geometry.geometryType == SF_POINT { + if geometry.geometryType == .POINT { let annotation = ObservationAnnotation(observation: observation, geometry: geometry) // annotation.view.layer.zPosition = CGFloat(observation.timestamp?.timeIntervalSinceReferenceDate ?? 0) annotation.animateDrop = animated diff --git a/Mage/Mixins/GeoPackageLayerMap.swift b/Mage/Mixins/GeoPackageLayerMap.swift index 70463bff1..5bd6ff72f 100644 --- a/Mage/Mixins/GeoPackageLayerMap.swift +++ b/Mage/Mixins/GeoPackageLayerMap.swift @@ -9,7 +9,7 @@ import Foundation import MapKit import MapFramework -import geopackage_ios +import GeoPackage protocol GeoPackageLayerMap { var mapView: MKMapView? { get set } diff --git a/Mage/Mixins/SFGeometryMap.swift b/Mage/Mixins/SFGeometryMap.swift index 6ea8148d4..5dcb56a57 100644 --- a/Mage/Mixins/SFGeometryMap.swift +++ b/Mage/Mixins/SFGeometryMap.swift @@ -9,8 +9,8 @@ import Foundation import MapKit import MapFramework -import geopackage_ios -import sf_ios +import GeoPackage +import SimpleFeatures protocol SFGeometryMap { var mapView: MKMapView? { get set } diff --git a/Mage/Mixins/SingleObservationMap.swift b/Mage/Mixins/SingleObservationMap.swift index 10f67fd93..58f595b23 100644 --- a/Mage/Mixins/SingleObservationMap.swift +++ b/Mage/Mixins/SingleObservationMap.swift @@ -8,7 +8,7 @@ import Foundation import MapKit -import geopackage_ios +import GeoPackage //protocol SingleObservationMap { // var mapView: MKMapView? { get set } diff --git a/Mage/Mixins/StaticLayerMap.swift b/Mage/Mixins/StaticLayerMap.swift index 705fec554..827991a76 100644 --- a/Mage/Mixins/StaticLayerMap.swift +++ b/Mage/Mixins/StaticLayerMap.swift @@ -10,7 +10,7 @@ import Foundation import MapKit import MapFramework import CoreData -import geopackage_ios +import GeoPackage import DataSourceDefinition protocol StaticLayerMap { diff --git a/Mage/Model/GeoPackage/GeoPackageFeatureItem.swift b/Mage/Model/GeoPackage/GeoPackageFeatureItem.swift index 7a9a7fa53..2680402c1 100644 --- a/Mage/Model/GeoPackage/GeoPackageFeatureItem.swift +++ b/Mage/Model/GeoPackage/GeoPackageFeatureItem.swift @@ -6,7 +6,7 @@ // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. // -import geopackage_ios +import GeoPackage import ExceptionCatcher @objc class GeoPackageFeatureItem: NSObject { diff --git a/Mage/Model/Observation/ObservationMapItem.swift b/Mage/Model/Observation/ObservationMapItem.swift index 1aa311407..72ff6e299 100644 --- a/Mage/Model/Observation/ObservationMapItem.swift +++ b/Mage/Model/Observation/ObservationMapItem.swift @@ -7,7 +7,7 @@ // import Foundation -import sf_ios +import SimpleFeatures struct ObservationMapItem: Equatable, Hashable { var observationId: URL? diff --git a/Mage/OfflineMapTableViewController.swift b/Mage/OfflineMapTableViewController.swift index f3dbdff10..017861774 100644 --- a/Mage/OfflineMapTableViewController.swift +++ b/Mage/OfflineMapTableViewController.swift @@ -7,7 +7,7 @@ import Foundation import UIKit import MagicalRecord -import geopackage_ios +import GeoPackage @objc class OfflineMapTableViewController: UITableViewController, CacheOverlayListener { diff --git a/Mage/Repository/GeoPackage/GeoPackageRepository.swift b/Mage/Repository/GeoPackage/GeoPackageRepository.swift index 24e9c03a5..ab103e882 100644 --- a/Mage/Repository/GeoPackage/GeoPackageRepository.swift +++ b/Mage/Repository/GeoPackage/GeoPackageRepository.swift @@ -7,7 +7,7 @@ // import Foundation -import geopackage_ios +import GeoPackage import ExceptionCatcher private struct GeoPackageRepositoryProviderKey: InjectionKey { diff --git a/Mage/Repository/MapFeatureRepository.swift b/Mage/Repository/MapFeatureRepository.swift index 181743cff..fc2667cab 100644 --- a/Mage/Repository/MapFeatureRepository.swift +++ b/Mage/Repository/MapFeatureRepository.swift @@ -8,7 +8,7 @@ import Foundation import MapKit -import geopackage_ios +import GeoPackage import DataSourceDefinition import MapFramework diff --git a/Mage/ViewModel/GeoPackage/GeoPackageFeatureBottomSheetViewModel.swift b/Mage/ViewModel/GeoPackage/GeoPackageFeatureBottomSheetViewModel.swift index 3cbe7b22b..9cfd28530 100644 --- a/Mage/ViewModel/GeoPackage/GeoPackageFeatureBottomSheetViewModel.swift +++ b/Mage/ViewModel/GeoPackage/GeoPackageFeatureBottomSheetViewModel.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import GeoPackage class GeoPackageFeatureBottomSheetViewModel: ObservableObject { @Published var itemKey: String @@ -60,9 +61,9 @@ class GeoPackageFeatureBottomSheetViewModel: ObservableObject { if let dataType = featureItem.featureDataTypes?[key] { let gpkgDataType = GPKGDataTypes.fromName(dataType) - if (gpkgDataType == GPKG_DT_BOOLEAN) { + if (gpkgDataType == .DT_BOOLEAN) { valueString = "\((value as? Int) == 0 ? "true" : "false")" - } else if (gpkgDataType == GPKG_DT_DATE) { + } else if (gpkgDataType == .DT_DATE) { let dateDisplayFormatter = DateFormatter(); dateDisplayFormatter.dateFormat = "yyyy-MM-dd"; dateDisplayFormatter.timeZone = TimeZone(secondsFromGMT: 0); @@ -70,7 +71,7 @@ class GeoPackageFeatureBottomSheetViewModel: ObservableObject { if let date = value as? Date { valueString = "\(dateDisplayFormatter.string(from: date))" } - } else if (gpkgDataType == GPKG_DT_DATETIME) { + } else if (gpkgDataType == .DT_DATETIME) { valueString = "\((value as? NSDate)?.formattedDisplay() ?? value)"; } else { valueString = "\(value)" diff --git a/MageTests/MageCoreDataFixtures.swift b/MageTests/MageCoreDataFixtures.swift index d467a542d..f7db59ab0 100644 --- a/MageTests/MageCoreDataFixtures.swift +++ b/MageTests/MageCoreDataFixtures.swift @@ -8,7 +8,7 @@ import Foundation import MagicalRecord -import sf_ios +import SimpleFeatures import Quick import Nimble import OHHTTPStubs diff --git a/MageTests/Map/Cache/CacheOverlaysTests.swift b/MageTests/Map/Cache/CacheOverlaysTests.swift index 32a2042a1..b07ee89a8 100644 --- a/MageTests/Map/Cache/CacheOverlaysTests.swift +++ b/MageTests/Map/Cache/CacheOverlaysTests.swift @@ -7,7 +7,7 @@ // import XCTest -import geopackage_ios +import GeoPackage @testable import MAGE diff --git a/MageTests/Mocks/MockGeometryEditCoordinator.swift b/MageTests/Mocks/MockGeometryEditCoordinator.swift index 36790d7c6..6f0344080 100644 --- a/MageTests/Mocks/MockGeometryEditCoordinator.swift +++ b/MageTests/Mocks/MockGeometryEditCoordinator.swift @@ -7,7 +7,7 @@ // import Foundation -import sf_ios +import SimpleFeatures class MockGeometryEditCoordinator : GeometryEditCoordinator { var _currentGeometry: SFGeometry! = SFPoint(x: 1.0, andY: 1.0); diff --git a/MageTests/Observation/Edit/GeometryEditViewControllerTests.swift b/MageTests/Observation/Edit/GeometryEditViewControllerTests.swift index 7a1f15ab7..b30e3cab3 100644 --- a/MageTests/Observation/Edit/GeometryEditViewControllerTests.swift +++ b/MageTests/Observation/Edit/GeometryEditViewControllerTests.swift @@ -62,7 +62,7 @@ class GeometryEditViewControllerTests: AsyncMageCoreDataTestCase { window.rootViewController = nil; } - + @MainActor func testGeometryEditCoordinatorLaunch() async { let point: SFPoint = SFPoint(x: -105.2678, andY: 40.0085); @@ -77,7 +77,7 @@ class GeometryEditViewControllerTests: AsyncMageCoreDataTestCase { return mockMapDelegate.finishedRendering == true } let delegateExpectation = XCTNSPredicateExpectation(predicate: predicate, object: .none) - await fulfillment(of: [delegateExpectation], timeout: 2) + await fulfillment(of: [delegateExpectation], timeout: 2) // FLAKEY TEST, 2 seconds not always long enough... } @MainActor @@ -138,6 +138,6 @@ class GeometryEditViewControllerTests: AsyncMageCoreDataTestCase { expect(mockGeometryEditDelegate.geometryEditCompleteCalled).to(beTrue()); let geometry: SFGeometry? = mockGeometryEditDelegate.geometryEditCompleteGeometry; expect(geometry).toNot(beNil()); - expect(geometry?.geometryType).to(equal(SF_POINT)) + expect(geometry?.geometryType).to(equal(.POINT)) } } diff --git a/MageTests/Observation/Edit/ObservationEditCoordinatorTests.swift b/MageTests/Observation/Edit/ObservationEditCoordinatorTests.swift index 3ceb44b3f..a37f35711 100644 --- a/MageTests/Observation/Edit/ObservationEditCoordinatorTests.swift +++ b/MageTests/Observation/Edit/ObservationEditCoordinatorTests.swift @@ -9,7 +9,7 @@ import Foundation import Quick import Nimble -import sf_ios +import SimpleFeatures import MagicalRecord diff --git a/MageTests/Observation/Edit/ObservationFormViewTests.swift b/MageTests/Observation/Edit/ObservationFormViewTests.swift index 84c506037..236f017e5 100644 --- a/MageTests/Observation/Edit/ObservationFormViewTests.swift +++ b/MageTests/Observation/Edit/ObservationFormViewTests.swift @@ -9,7 +9,7 @@ import Foundation import Quick import Nimble -import sf_ios +import SimpleFeatures @testable import MAGE diff --git a/MageTests/Observation/Fields/DateViewTests.swift b/MageTests/Observation/Fields/DateViewTests.swift index 8ec33349f..820c32cde 100644 --- a/MageTests/Observation/Fields/DateViewTests.swift +++ b/MageTests/Observation/Fields/DateViewTests.swift @@ -204,9 +204,16 @@ class DateViewTests: XCTestCase { formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; formatter.locale = Locale(identifier: "en_US_POSIX"); - let date = formatter.date(from: "2020-11-02T14:00:00.000Z")!; - - let expectedFormattedDate = formatDateToLocal(date) // Convert to UI time zone + var components = DateComponents() + components.year = 2020 + components.month = 11 + components.day = 2 + components.hour = 8 + components.minute = 0 + components.second = 0 + let expectedDate = Calendar.current.date(from: components)! + + let expectedFormattedDate = formatDateToLocal(expectedDate) // Convert to UI time zone expect(self.dateFieldView.textField.text).to(equal(expectedFormattedDate)) } diff --git a/MageTests/Observation/Fields/GeometryViewTests.swift b/MageTests/Observation/Fields/GeometryViewTests.swift index a56d06b70..e72fda88a 100644 --- a/MageTests/Observation/Fields/GeometryViewTests.swift +++ b/MageTests/Observation/Fields/GeometryViewTests.swift @@ -9,7 +9,7 @@ import Foundation import Quick import Nimble -import sf_ios +import SimpleFeatures //import Nimble_Snapshots @testable import MAGE diff --git a/MageTests/SDK/GeometryDeserializerTests.swift b/MageTests/SDK/GeometryDeserializerTests.swift index c9d942270..a7dd3732a 100644 --- a/MageTests/SDK/GeometryDeserializerTests.swift +++ b/MageTests/SDK/GeometryDeserializerTests.swift @@ -9,7 +9,7 @@ import Foundation import Quick import Nimble -import sf_ios +import SimpleFeatures @testable import MAGE diff --git a/MageTests/SDK/GeometrySerializerTests.swift b/MageTests/SDK/GeometrySerializerTests.swift index 6acba9907..6fe8492a4 100644 --- a/MageTests/SDK/GeometrySerializerTests.swift +++ b/MageTests/SDK/GeometrySerializerTests.swift @@ -9,7 +9,7 @@ import Foundation import Quick import Nimble -import sf_ios +import SimpleFeatures @testable import MAGE diff --git a/MageTests/TestingAppDelegate.m b/MageTests/TestingAppDelegate.m index b22f1b4a2..8e1050d86 100644 --- a/MageTests/TestingAppDelegate.m +++ b/MageTests/TestingAppDelegate.m @@ -8,8 +8,7 @@ #import "TestingAppDelegate.h" #import "MagicalRecord+MAGE.h" -#import "GPKGGeoPackageManager.h" -#import "GPKGGeoPackageFactory.h" +@import GeoPackage; #import "MAGE-Swift.h" @interface TestingAppDelegate () diff --git a/Podfile b/Podfile index 66374ae6a..76f04fc93 100644 --- a/Podfile +++ b/Podfile @@ -16,10 +16,6 @@ def common_pods pod 'PureLayout' pod "AFNetworking", "~> 4.0.1" pod "MagicalRecord", "~> 2.3.2" - pod 'geopackage-ios', '~> 8.0.6' - pod 'PROJ', :modular_headers => false - pod 'mgrs-ios', '~> 1.1.6' - pod 'gars-ios', '~> 1.1.5' pod 'SSZipArchive', '~> 2.2.2' end @@ -49,53 +45,14 @@ end post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| - config.build_settings.delete 'ARCHS' + # config.build_settings.delete 'ARCHS' config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' - config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' - config.build_settings['ENABLE_BITCODE'] = 'YES' - # Fix Xcode 14 bundle code signing issue - if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" - target.build_configurations.each do |config| - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - end - end + # REMOVE? Fix Xcode 14 bundle code signing issue + # if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" + # target.build_configurations.each do |config| + # config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' + # end + # end end end end - -# This is a workaround for having tests work without useframeworks set -# it needs more work -# post_install do |installer| -# def merge_and_link_dirs(source, destination) -# system "echo source #{source}" -# system "echo dest #{destination}" - -# system "echo source is symlink check" -# if File.symlink?(source) then -# system "echo source is symlink" -# return -# end - -# if File.directory?(source) then -# system "echo source is a directory" -# system "echo #{source}/* #{destination}" -# system "mv #{source}/* #{destination}" -# system "rmdir #{source}" -# end -# system "echo ln -s ../#{destination} #{source}" -# # system "echo ln -s ../#{destination} #{source}" -# File.symlink("../#{destination}", source) -# end - -# headers_dir = installer.config.project_pods_root + 'Headers/' - -# # Work around for FBSnapshotTestCase with static linking. -# # This is needed because of buggy handling of the differing module and project names. -# # NOTE: Uncomment to resolve the build failure -# system "echo headers dir" -# system "echo #{headers_dir}" -# Dir.chdir(headers_dir) do -# merge_and_link_dirs('Public/FBSnapshotTestCase', 'Public/iOSSnapshotTestCase') -# merge_and_link_dirs('Private/FBSnapshotTestCase', 'Private/iOSSnapshotTestCase') -# end -# end diff --git a/Podfile.lock b/Podfile.lock index 2ed3b6ccc..80ed2ad8f 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -14,21 +14,7 @@ PODS: - AFNetworking/Serialization (4.0.1) - AFNetworking/UIKit (4.0.1): - AFNetworking/NSURLSession - - color-ios (1.0.2) - - crs-ios (1.0.5) - DateTools (2.0.0) - - gars-ios (1.1.5): - - grid-ios (~> 1.0.7) - - geopackage-ios (8.0.6): - - color-ios (~> 1.0.2) - - ogc-api-features-json-ios (~> 4.2.5) - - sf-proj-ios (~> 6.0.3) - - sf-wkb-ios (~> 4.1.4) - - sf-wkt-ios (~> 2.1.4) - - tiff-ios (~> 4.0.2) - - grid-ios (1.0.7): - - color-ios (~> 1.0.2) - - sf-ios (~> 4.1.4) - HexColors (4.0.0) - KIF (3.8.9): - KIF/Core (= 3.8.9) @@ -679,15 +665,11 @@ PODS: - MDFTextAccessibility - MDFInternationalization (3.0.0) - MDFTextAccessibility (2.0.1) - - mgrs-ios (1.1.6): - - grid-ios (~> 1.0.7) - MotionAnimator (4.0.1): - MotionInterchange (~> 3.0) - MotionInterchange (3.0.0) - Nimble (9.2.1) - OCMock (3.9.3) - - ogc-api-features-json-ios (4.2.5): - - sf-geojson-ios (~> 4.2.5) - OHHTTPStubs (9.1.0): - OHHTTPStubs/Default (= 9.1.0) - OHHTTPStubs/Core (9.1.0) @@ -703,45 +685,24 @@ PODS: - OHHTTPStubs/OHPathHelpers (9.1.0) - OHHTTPStubs/Swift (9.1.0): - OHHTTPStubs/Default - - PROJ (9.4.0): - - PROJ-include (~> 9.4.0) - - PROJ-include (9.4.0) - - proj-ios (2.0.3): - - crs-ios (~> 1.0.5) - - PROJ (~> 9.4.0) - PureLayout (3.1.9) - Quick (6.1.0) - - sf-geojson-ios (4.2.5): - - sf-ios (~> 4.1.4) - - sf-ios (4.1.4) - - sf-proj-ios (6.0.3): - - proj-ios (~> 2.0.3) - - sf-ios (~> 4.1.4) - - sf-wkb-ios (4.1.4): - - sf-ios (~> 4.1.4) - - sf-wkt-ios (2.1.4): - - sf-ios (~> 4.1.4) - SSZipArchive (2.2.3) - - tiff-ios (4.0.2) - zxcvbn-ios (1.0.4) DEPENDENCIES: - AFNetworking (~> 4.0.1) - DateTools (~> 2.0.0) - - gars-ios (~> 1.1.5) - - geopackage-ios (~> 8.0.6) - HexColors (~> 4.0.0) - KIF - libPhoneNumber-iOS (~> 0.9.15) - MagicalRecord (~> 2.3.2) - MaterialComponents - MDFInternationalization - - mgrs-ios (~> 1.1.6) - Nimble (~> 9) - OCMock - OHHTTPStubs - OHHTTPStubs/Swift - - PROJ - PureLayout - Quick (~> 6) - SSZipArchive (~> 2.2.2) @@ -750,12 +711,7 @@ DEPENDENCIES: SPEC REPOS: https://github.com/CocoaPods/Specs.git: - AFNetworking - - color-ios - - crs-ios - DateTools - - gars-ios - - geopackage-ios - - grid-ios - HexColors - KIF - libPhoneNumber-iOS @@ -763,35 +719,19 @@ SPEC REPOS: - MaterialComponents - MDFInternationalization - MDFTextAccessibility - - mgrs-ios - MotionAnimator - MotionInterchange - Nimble - OCMock - - ogc-api-features-json-ios - OHHTTPStubs - - PROJ - - PROJ-include - - proj-ios - PureLayout - Quick - - sf-geojson-ios - - sf-ios - - sf-proj-ios - - sf-wkb-ios - - sf-wkt-ios - SSZipArchive - - tiff-ios - zxcvbn-ios SPEC CHECKSUMS: AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58 - color-ios: 77715f5f4c5944b3c85396e9263bfa17a1bf2cfd - crs-ios: cd52ed8ad551387cf12bfd4903d503fa1dff48f9 DateTools: 933ac9c490f21f92127cf690ccd8c397e0126caf - gars-ios: e0d3f6dd775864f42ef7869fef0b3a1b80038695 - geopackage-ios: 8a61864c1f6e7433ddcd00854a27e23f78267b20 - grid-ios: 4aa398fd164bb8acac9d587cf61016cc6523defb HexColors: 5f95843ef89aff6a72e1fd3a8ebabf205cc43379 KIF: 7660c626b0f2d4562533590960db70a36d640558 libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75 @@ -799,27 +739,16 @@ SPEC CHECKSUMS: MaterialComponents: 1a9b2d9d45b1601ae544de85089adc4c464306d4 MDFInternationalization: d697c55307816222a55685c4ccb1044ffb030c12 MDFTextAccessibility: f4bb4cc2194286651b59a215fdeaa0e05dc90ba5 - mgrs-ios: ab6bc20f8c8d34f182a25bfb164e97a19a7492da MotionAnimator: 5f99d7c9592928c0f28a66283eda9c3b657dc480 MotionInterchange: 13adae439b377e31d1674cc165539d50e1d1566a Nimble: e7e615c0335ee4bf5b0d786685451e62746117d5 OCMock: 300b1b1b9155cb6378660b981c2557448830bdc6 - ogc-api-features-json-ios: b53280f9036da5a7dc1699ea3a6cd90cdff0bfc9 OHHTTPStubs: 90eac6d8f2c18317baeca36698523dc67c513831 - PROJ: ca410c9aed8a01baf99746dad3d7c535a2dddaf0 - PROJ-include: e7438fba489ea7c636495dc05d197840cdac04da - proj-ios: 2a8ea337e1b728e669bb0845a1bd12fabce6609d PureLayout: 5fb5e5429519627d60d079ccb1eaa7265ce7cf88 Quick: 6676ffb409bf04abba2ff23902af2407bfc6ac90 - sf-geojson-ios: 94a1409bbc463ff5fabf8235815c3d7422d26de2 - sf-ios: 03cc989b70b11d80ab80afc9db2086a621fa4703 - sf-proj-ios: 6cd46b6b9c4bdefa2a8fb8bc65c3b9fd434eedad - sf-wkb-ios: 1f77406c680545b348803c70e4ddc2dde73a37ff - sf-wkt-ios: 85faef2380a4fd47e6237f692d13273d641ab4eb SSZipArchive: 62d4947b08730e4cda640473b0066d209ff033c9 - tiff-ios: 1ad6750cd8bb3db75bd2977e40145813389786b9 zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c -PODFILE CHECKSUM: 6bf6e8beed482c01a9482c97a00981e88ede0c74 +PODFILE CHECKSUM: 771b6bac50259936f169031e9d2429e3a753f5c2 COCOAPODS: 1.16.2 diff --git a/sdk/GeometryDeserializer.swift b/sdk/GeometryDeserializer.swift index bd6315d1c..7a926fe93 100644 --- a/sdk/GeometryDeserializer.swift +++ b/sdk/GeometryDeserializer.swift @@ -6,8 +6,8 @@ // Copyright © 2017 National Geospatial-Intelligence Agency. All rights reserved. // -import sf_ios -import sf_geojson_ios +import SimpleFeatures +import SimpleFeaturesGeoJSON @objc public class GeometryDeserializer: NSObject { diff --git a/sdk/GeometrySerializer.swift b/sdk/GeometrySerializer.swift index ab74e46ec..673ce2ad2 100644 --- a/sdk/GeometrySerializer.swift +++ b/sdk/GeometrySerializer.swift @@ -6,8 +6,8 @@ // Copyright © 2017 National Geospatial-Intelligence Agency. All rights reserved. // -import sf_ios -import sf_geojson_ios +import SimpleFeatures +import SimpleFeaturesGeoJSON @objc public class GeometrySerializer: NSObject {