Skip to content

Comments

Swift Package Manager and Release Builds Fix#136

Merged
paulsolt-ofsw merged 1 commit intodevelopfrom
psolt/Mage-Release
Jun 18, 2025
Merged

Swift Package Manager and Release Builds Fix#136
paulsolt-ofsw merged 1 commit intodevelopfrom
psolt/Mage-Release

Conversation

@paulsolt-ofsw
Copy link
Contributor

@paulsolt-ofsw paulsolt-ofsw commented May 23, 2025

Adds Swift Package Manager for GeoPackage and related dependencies.

Build and Verify

  1. Close the Mage-iOS project if it is open
  2. pod install to remove old Cocoapods and then update Swift Package Cache in Xcode.
  3. Open the Xcode workspace MAGE.xcworkspace

TESTS

  • TEST 1: You should be able to make an Archive build (previously Release builds would fail)
  • TEST 2: You should be able to build and run to an iOS Simulator (or real device) and connect to https://magedevd.geointnext.com
  • TEST 3: Make an observation with a photo and fill out details in the Lego event.

SUMMARY

  • Using Swift Package Manager for all 16 dependencies. Each has updated Github workflow, passing tests, and tagged releases.
  • Enables release builds with optimizations (size) enabled and Archives without problems. (Previously was archiving the Debug builds because C enum symbols were missing)
  • Integrates changes to all NGA dependencies to use NS_ENUM() for all enums in SimpleFeatures (sf-ios 5.0.0) and others.
  • Removes Cocoapods/Carthage from the NGA repositories
  • Integrates with the new Swift modules

Mage Dependencies

  1. mgrs-ios (MGRS 2.0.0): https://github.com/ngageoint/mgrs-ios/releases
  2. gars-ios (GARS 2.0.0): https://github.com/ngageoint/gars-ios/releases
  3. geopackage-ios (GeoPackage 9.0.0): https://github.com/ngageoint/geopackage-ios/releases
  4. grid-ios (Grid 2.0.0): https://github.com/ngageoint/grid-ios/releases
  5. sf-proj-ios (SimpleFeaturesProjections 7.0.0): https://github.com/ngageoint/simple-features-proj-ios/releases
  6. projections-ios (Projections: 3.0.0): https://github.com/ngageoint/projections-ios/releases
  7. PROJ (SPM is tagged: 9.4.2 since 9.4.0 is Cocoapods variant): https://github.com/ngageoint/PROJ/releases
  8. crs-ios (CoordinateReferenceSystems 2.0.0): https://github.com/ngageoint/coordinate-reference-systems-ios/releases
  9. tiff-ios (TIFF 5.0.0): https://github.com/ngageoint/tiff-ios/releases
  10. ogc-api-features-json-ios (OGC_APIFeaturesJSON 5.0.0): https://github.com/ngageoint/ogc-api-features-json-ios/releases
  11. color-ios (Color 2.0.0): https://github.com/ngageoint/color-ios/releases
  12. sf-geojson-ios (SimpleFeaturesGeoJSON 5.0.0): https://github.com/ngageoint/simple-features-geojson-ios/releases
  13. simple-features-wkb-ios (SimpleFeaturesWKB 5.0.0): https://github.com/ngageoint/simple-features-wkb-ios/releases
  14. simple-features-wkt-ios (SimpleFeaturesWKT 3.0.0): https://github.com/ngageoint/simple-features-wkt-ios/releases
  15. sf-ios (SimpleFeatures 5.0.0): https://github.com/ngageoint/simple-features-ios/releases

@paulsolt-ofsw paulsolt-ofsw changed the base branch from master to develop May 23, 2025 20:30
@paulsolt-ofsw paulsolt-ofsw force-pushed the psolt/Mage-Release branch 2 times, most recently from 363c466 to 1c476f7 Compare May 24, 2025 01:09
…nd 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
@paulsolt-ofsw paulsolt-ofsw merged commit e11e9ac into develop Jun 18, 2025
@paulsolt-ofsw paulsolt-ofsw deleted the psolt/Mage-Release branch June 18, 2025 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants