Skip to content

Release 0.43: iOS 16 minimum and expanded task API - #4

Merged
milanhorvatovic merged 4 commits into
masterfrom
release/0.43
Jun 25, 2026
Merged

milanhorvatovic merged 4 commits into
masterfrom
release/0.43

Conversation

@milanhorvatovic

@milanhorvatovic milanhorvatovic commented Jun 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Releases version 0.43 of the OnfleetDriver SDK — the first cut since 0.17.2. It bumps the vendored OnfleetDriver.xcframework to the 0.43 binary, raises the minimum deployment target to iOS 16, and ships a substantially expanded API (custom fields, route plans, self-assign, end-of-route task types, barcode/age-verification, custom completion requirements and reasons, and more). The CHANGELOG carries the authoritative, itemized list.

Most of the diff (~7,800 files) is regenerated output — the binary framework, the jazzy/DocC documentation site, and the tuist-generated sample project. The hand-authored surface is the podspec, CHANGELOG, README, and the SampleApp source.

Changes

  • SDK binary: Rebuild OnfleetDriver.xcframework for 0.43 — add PrivacyInfo.xcprivacy and the re-exported OnfleetReactiveKit module; drop the bundled Core Data Model.momd.
  • Version / packaging: Bump the podspec and Podfile.lock to 0.43, raise the platform to iOS 16, and add the integration flags the new binary requires (-ObjC, plus SWIFT_INCLUDE_PATHS for the re-exported OnfleetReactiveKit module, all $(inherited)-prefixed). Correct the README sample to use ApplicationConfig.
  • Documentation: Regenerate the jazzy HTML site and add the DocC archive for the 0.43 API; remove pages for types no longer public; drop the old .docset bundle.
  • Sample app: Modernize SampleApp for iOS 16 and the new API — a tab-bar shell (MainTabBarController), a new DriverInfoViewController, and a current/Legacy split of the task UI.

Breaking changes

For integrators upgrading from 0.17.x (full detail in CHANGELOG.md):

  • Minimum iOS raised from 13 to 16.
  • Task/driver manager protocols unified into a Sendable …ManagerProtocol family; DriverContext.tasksManager now returns any TasksManagerProtocol.
  • CompletedTask.pickupTask: Bool → CompletedTask.type: TaskType (use type.isPickUp for the old boolean).
  • Recipient.name / Recipient.notes: String? → OverrideableProperty<String?> (read .value).
  • Completion requirements (photo / signature / notes) are now tri-state Bool?.
  • CompleteTaskError (and StartTaskError / DutyStatusError / UpdateProfileError / SelfAssignError) realigned onto a shared InternalReasonError; all now conform to LocalizedError.
  • Legacy content provider's tasks property renamed to availableTasks.
  • AppConfig reshaped into ApplicationConfig (typed group identifier, keychain access group, throwing ApplicationConfigError).

Test plan

  • CI (.github/workflows/ci.yml) builds the SampleApp against the vendored 0.43 binary on every PR to master: pod install --deployment (fails fast on Podfile.lock drift), then xcodebuild build for the iOS Simulator with signing disabled.
  • Suggested manual check: pod install, open SampleApp.xcworkspace, and confirm it builds and runs against 0.43 on an iOS 16+ simulator or device.

Notes

  • The large file count is generated output (binary + docs + tuist project), intentionally committed per the repo's .gitignore policy so integrators can pod install without Tuist.
  • Merge policy allows squash / rebase / merge-commit; the four per-context commits are written to read cleanly under squash or rebase.

Drop the bundled Core Data Model.momd moms and per-slice configuration.plist; add the new resource bundles (ContentStorage, LocationStorage, Statistics, SDKAttachments, SynchronizationMechanism), PrivacyInfo.xcprivacy, and the re-exported OnfleetReactiveKit swiftmodule. Refresh the public swiftinterface/abi for the 0.43 API and reorder the xcframework Info.plist slices with dSYM paths.
Move the podspec to iOS 16 and add the integration flags the new binary needs: -ObjC for the statically linked Objective-C components and SWIFT_INCLUDE_PATHS for the re-exported OnfleetReactiveKit module, all prepending $(inherited). Refresh Podfile.lock to the 0.43 checksum, document the release in CHANGELOG.md, and correct the README sample to use ApplicationConfig.
Rebuild the jazzy HTML site and add the DocC archive for the 0.43 API surface (custom fields, route plans, self-assign, end-of-route task types, barcode and age-verification models, and more); remove pages for types no longer public. Drop the generated docset bundle and tarball.
Restructure around a tab bar (MainTabBarController) with a new DriverInfoViewController, and split the task UI into current (TaskViewController/TasksViewController) and Legacy variants. Update the App, Duty, OffDuty, and Initial controllers and the storyboard for the new API, and refresh the tuist-generated project (SampleApp.xcodeproj, Derived/Sources).
@milanhorvatovic
milanhorvatovic requested a review from dbarbos June 22, 2026 12:02
@milanhorvatovic
milanhorvatovic merged commit 4a07c9d into master Jun 25, 2026
1 check passed
@milanhorvatovic
milanhorvatovic deleted the release/0.43 branch June 25, 2026 13:16
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