Releases: ngageoint/mage-ios
4.4.0-beta Release
Version 4.4.0-beta
Mapping is faster and more stable, with improved layer handling and full dark-mode adaptation. Users can explore confidently, even on data-dense views.
Changes
-
Resolved issue where images on a new observation fail to load on the device that loaded them
Resolved an issue where opening a new observation showed only the MAGE_ID on a black screen and images never loaded, despite valid local file URLs in Xcode. Photos now render correctly from local storage when reviewing new observations. -
The "contact us" button now populates the email based on server configuration
Retrieved the “Contact Us” email from the server instead of hardcoding it. If the API is unavailable or the email field is missing/empty, default to [email protected]. -
Resolved issue where uploaded videos were unplayable on the device that uploaded them
Resolved issue where iOS-uploaded videos were previously unplayable on the submitting iPhone until processing finished server-side. Local playback now works immediately after capture/upload. -
Fixed issue where observation images sometimes failed to load
Resolved issue where some image uploads hung, showing blank thumbnails or “Image {name} pending” indefinitely. Uploads now complete reliably, with images rendering correctly once captured; the “pending” state clears as expected. -
Made new user signup completion easier from the keyboard
Resolved the issue where the “Next” button on the new-user CAPTCHA was not correctly triggering the signup action. Now, after filling the CAPTCHA and tapping Next, the form advances/submits without needing to dismiss the keyboard, scroll, or tap another field. -
Fixed issue where navigation to an observation via Apple Maps failed
Resolved issue where tapping Navigate → Apple Maps from an observation now opens Apple Maps with turn-by-turn directions to the observation (previously it just opened to the default map with no route). -
Fixed issue where observations are temporarily duplicated in the UI when switching from the User tab to the Observations tab
Eliminated a UI bug that temporarily duplicated observations when switching between the User and Observations tabs. The list now remains de-duplicated and stable during tab switches. -
Made "Delete" and "Cancel" text capitalization consistent with rest of app
Dialog buttons now use Capital Case—Delete and Cancel—with Delete marked as a destructive (red) action on iOS. Previously shown as DELETE/CANCEL in all caps. -
Updated User Intro walkthrough
Improved the new-user guide for clarity and appropriateness: Updated 'Take a tour' to explain server/events/map/observations -
Fixed issue where duplicate "X new observations for Event XYZ" notifications were being sent
Resolved the banner logic for “X new observations pulled for this event.” The app now shows the banner only when there are truly new observations or during the initial data sync for a new event. Bulk imports and already-synced states no longer trigger false counts; change tracking correctly distinguishes no-op syncs from new data. -
Fixed intermittent crash when attaching media to observations
Resolved an intermittent crash in iOS attachment uploads caused by error handling. Improved memory handling and exception paths during photo/video attach, so creating observations no longer crashes. -
Added place name search functionality
JIATF-S published a PR on enabling "Place Name Search". Open the Map screen and tap the search bar. Type at least three characters of a place or address (e.g., “Gateway Arch”). Choose a result; the map should pan/zoom to it and drop a temporary pin with a callout. Drag the handle to collapse/expand the results panel and confirm the pin/callout stay visible. If an Event/filter is active, verify a small banner lets you return to the Event extent. If you see “No places found,” try a fuller address or landmark; if offline, reconnect to enable search. Clear the pin, then repeat with another address to confirm consistency. -
Fixed issue where "Contact Us" button didn't work on devices with email disabled. An alert is now displayed prompting the user to contact their server admin.
Previously, Contact Us broke if the support-email config key’s casing didn’t match or the value was missing, often doing nothing. Now the lookup is case-insensitive and, if no email is set, it gracefully copies the address to the clipboard and shows a clear alert—so the button behaves reliably and never fails silently. -
Fixed intermittent crash on app startup
Resolved startup issue that could sometimes cause the app to crash—especially right when opening it or when switching between events. The launch process is now more orderly and stable, so the app opens reliably, switches events without hiccups, and gets you to your first tap faster and more consistently. -
Fixed a Log In issue impacting multiple authentication services
Resolved a Log In issue where scrolling incorrectly hide the sign in text fields when multiple authentication methods were enabled on a server. Fixed an issue where changes to authentication methods did not appear in the iOS app. -
Fixed a UX issue with Username/Password fields on Log In Screen
Increased the tap target for the Username and Password fields to make it easier to tap to edit both fields.
4.3.0-beta release
- Performance improvements for large events (5k+ observations)
- Can now attach multiple photos to an observation simultaneously
- No longer have to click “Done” after editing each individual observation field
- UI updates
- Observation thumbnails now load properly
- Observation locations are now able to be created with polygon geometry
- Added Quick Tour to login home screen and Spanish language internationalization
4.2.0 (Rollback to 4.0.7)
Rollback release to 4.0.7 to mitigate performance issues with 4.1.0.
- Has cherry-picked fixes for Xcode Cloud and Test Flight
- A Debug build to workaround issues with missing dependency symbols (SF_POINT) due to
NS_ENUMissue.
Full Changelog: 4.0.7...4.2.0
4.1.0
What's Changed
- Added a Contact Us button
- Fixed a crash related to Attachment Settings
- Fixed an issue obscurring the map compass on the map
- Fixed a crash related to layers on app start
- Refactored old logic to Swift and SwiftUI
- Updated unit tests
- Full Changelog: 4.0.7...4.1.0
4.0.7
Features
- UI/UX improvement on server connection error
Bug Fixes
- Feeds timestamp field should be formatted as a date/time
- Unsaved map symbology changes now update when editing an observation
- Observation feed reflects remote attachment delete
- Ensure video attachment header matches contentType
- Remove animated activity indicator to fix crash when attachment cells are recycled
- Set kingfisher cache key for attachment video thumbnails to fix duplicate thumbnails
- Update Kingfisher library to latest 7.x.
- Update references to Kingfisher's
ImageResourcestruct because Xcode 15 introduced a conflictingImageResourcesymbol.
4.0.6
Features
Update GeoPackage library to 8.0.3
Bug Fixes
PNG photo attachments converted to JPEG get a .jpeg file extension to match media type
4.0.5
Features
- GARS and MGRS grid overlays and observation geometry edit
Bug Fixes
- allow DMS fields to start with a 0
- forms are ordered according to the order set on the server
4.0.4
Bug Fixes
- set the locale for date parsing to fix bug with 24 hour locales with the time preference set to 12 hours
4.0.3
Bug Fixes
- Extra logging for login errors
4.0.2
Features
- Long secondary fields are now ellipsized
- When all events but one are deleted from the user, they are still shown the event picker
- Observation table immediately updates when an attachment is pushed
Bug Fixes
- Fix navigation bar colors after using the camera
- Crash when switching quickly between attachment view and observation list
- Extra space at the top of the event chooser view
- Cannot clear the observation geometry
- iPad Navigation Options Setting does not open
- Tapping a local attachment does not show the attachment
- Distance is not being calculated correctly when navigation lines are updated
- Add more informative message when an attachment fails to open
- Significantly improved the speed of the initial observation fetch