Skip to content

Releases: bitwarden/ios

Password Manager 2026.5.1 (3271)

11 Jun 21:43
d5c3e9f

Choose a tag to compare

Overview

Send is now hidden from navigation when your organization's policy disables it
Subscription management is now available in-app
Add-item sheet titles now clearly label what you're creating
Stronger encryption is applied during new account registration
Fixed keyboard suggestions not appearing in the username field
Fixed an error that could appear on the lock screen when no account was active

What's Changed

:shipit: Feature Development

  • [PM-37642] feat: Add debug menu flag to disable self-host premium checks by @andrebispo5 in #2657
  • [PM-35367] chore: Fix TestHarness app build & update tests. by @morganzellers-bw in #2647
  • [BWA-99] feat: Add next TOTP code preview to BWA by @KatherineInCode in #2527
  • [PM-7854] feat: Hide Send tab when disableSend policy is active by @fedemkr in #2667
  • [PM-37721] feat: Add upgrade to premium button on Attachments premium alert by @andrebispo5 in #2666
  • [PM-37697] feat: Show "Continue to web app?" alert when tapping Manage plan by @andrebispo5 in #2671
  • [PM-37719] feat: Upcoming charge is not read as a dollar amount by VoiceOver by @andrebispo5 in #2678
  • [PM-33550] feat: Rename modal add items text by @morganzellers-bw in #2685
  • [PM-32809] feat: wire Bank Account through BitwardenSdk by @SaintPatrck in #2576
  • [PM-24224] feat: Support v2 encryption on password account registration by @matt-livefront in #2684
  • [PM-37998] feat: Update Cancel Premium confirmation dialog to match new design by @andrebispo5 in #2709
  • [PM-32807] feat: wire Driver's License through BitwardenSdk by @SaintPatrck in #2577
  • [PM-38180] feat: Announce external link on Manage plan and Cancel Premium buttons by @andrebispo5 in #2718
  • [PM-38119] feat: Fix Send "Specific people" upgrade to premium flow by @andrebispo5 in #2720
  • [PM-37967] feat: Show premium canceled status in plan screen by @andrebispo5 in #2716
  • [PM-37997] feat: Hide cancel premium button when plan status is update payment by @andrebispo5 in #2725
  • [PM-38183] feat: Add expired and pending cancellation premium plan states by @andrebispo5 in #2721
  • 🍒 [PM-38394] fix: Update settings plan row visibility by @andrebispo5 in #2742

🐛 Bug fixes

  • [PM-35295] fix: Prevent iOS autofill from clearing BitwardenTextField via local state buffer by @matt-livefront in #2633
  • [PM-10548] fix: Biometric auth setting being reset on logout. by @morganzellers-bw in #2628
  • [PM-28227] fix: Keep keyboard alive in autofillText mode via SwiftUI @focusstate anchor by @fedemkr in #2599
  • [PM-37920] fix: Align Plan screen cart summary with web by @SaintPatrck in #2683
  • [PM-24114] fix: Prevent noActiveAccount errors when viewing pre-login Settings by @matt-livefront in #2691
  • [PM-37885] fix: Check camera permission before opening card scanner by @fedemkr in #2712
  • [PM-38174] fix: Remove excess bold from past due status description by @andrebispo5 in #2719
  • [PM-37719] fix: Fix VoiceOver announcing "Star Star" in upcoming charge description by @andrebispo5 in #2710

⚙️ Maintenance

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2660
  • Update SDK to f705e9b (3.0.0-6241-ba67235) by @bw-ghapp[bot] in #2646
  • [deps]: Update gh minor by @renovate[bot] in #2650
  • Update SDK to f65b246 (3.0.0-6336-b1ab270) by @bw-ghapp[bot] in #2676
  • Update SDK to f30028b (3.0.0-6362-291a28e) by @bw-ghapp[bot] in #2686
  • [deps]: Update SwiftProtobuf to v1.38.0 by @renovate[bot] in #2704
  • Update SDK to 0169a48 (3.0.0-6438-025e5d8) by @bw-ghapp[bot] in #2707

🎨 Other

Full Changelog: v2026.5.0-bwpm...v2026.5.1-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/26657680158

Authenticator 2026.5.1 (727)

11 Jun 22:32
d5c3e9f

Choose a tag to compare

Overview

Various additional bug fixes and under-the-hood improvements

What's Changed

:shipit: Feature Development

  • [PM-37642] feat: Add debug menu flag to disable self-host premium checks by @andrebispo5 in #2657
  • [PM-35367] chore: Fix TestHarness app build & update tests. by @morganzellers-bw in #2647
  • [BWA-99] feat: Add next TOTP code preview to BWA by @KatherineInCode in #2527
  • [PM-7854] feat: Hide Send tab when disableSend policy is active by @fedemkr in #2667
  • [PM-37721] feat: Add upgrade to premium button on Attachments premium alert by @andrebispo5 in #2666
  • [PM-37697] feat: Show "Continue to web app?" alert when tapping Manage plan by @andrebispo5 in #2671
  • [PM-37719] feat: Upcoming charge is not read as a dollar amount by VoiceOver by @andrebispo5 in #2678
  • [PM-33550] feat: Rename modal add items text by @morganzellers-bw in #2685
  • [PM-32809] feat: wire Bank Account through BitwardenSdk by @SaintPatrck in #2576
  • [PM-24224] feat: Support v2 encryption on password account registration by @matt-livefront in #2684
  • [PM-37998] feat: Update Cancel Premium confirmation dialog to match new design by @andrebispo5 in #2709
  • [PM-32807] feat: wire Driver's License through BitwardenSdk by @SaintPatrck in #2577
  • [PM-38180] feat: Announce external link on Manage plan and Cancel Premium buttons by @andrebispo5 in #2718
  • [PM-38119] feat: Fix Send "Specific people" upgrade to premium flow by @andrebispo5 in #2720
  • [PM-37967] feat: Show premium canceled status in plan screen by @andrebispo5 in #2716
  • [PM-37997] feat: Hide cancel premium button when plan status is update payment by @andrebispo5 in #2725
  • [PM-38183] feat: Add expired and pending cancellation premium plan states by @andrebispo5 in #2721
  • 🍒 [PM-38394] fix: Update settings plan row visibility by @andrebispo5 in #2742

🐛 Bug fixes

  • [PM-35295] fix: Prevent iOS autofill from clearing BitwardenTextField via local state buffer by @matt-livefront in #2633
  • [PM-10548] fix: Biometric auth setting being reset on logout. by @morganzellers-bw in #2628
  • [PM-28227] fix: Keep keyboard alive in autofillText mode via SwiftUI @focusstate anchor by @fedemkr in #2599
  • [PM-37920] fix: Align Plan screen cart summary with web by @SaintPatrck in #2683
  • [PM-24114] fix: Prevent noActiveAccount errors when viewing pre-login Settings by @matt-livefront in #2691
  • [PM-37885] fix: Check camera permission before opening card scanner by @fedemkr in #2712
  • [PM-38174] fix: Remove excess bold from past due status description by @andrebispo5 in #2719
  • [PM-37719] fix: Fix VoiceOver announcing "Star Star" in upcoming charge description by @andrebispo5 in #2710

⚙️ Maintenance

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2660
  • Update SDK to f705e9b (3.0.0-6241-ba67235) by @bw-ghapp[bot] in #2646
  • [deps]: Update gh minor by @renovate[bot] in #2650
  • Update SDK to f65b246 (3.0.0-6336-b1ab270) by @bw-ghapp[bot] in #2676
  • Update SDK to f30028b (3.0.0-6362-291a28e) by @bw-ghapp[bot] in #2686
  • [deps]: Update SwiftProtobuf to v1.38.0 by @renovate[bot] in #2704
  • Update SDK to 0169a48 (3.0.0-6438-025e5d8) by @bw-ghapp[bot] in #2707

🎨 Other

Full Changelog: v2026.5.0-bwa...v2026.5.1-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/26956145153

Password Manager 2026.5.0 (3226)

01 Jun 00:46
013f418

Choose a tag to compare

Overview

  • Scan payment cards with your camera to add them faster
  • TOTP countdown now changes color as time runs out
  • SSN field on identity items is hidden by default for added privacy
  • Added confirmation prompts for Archiving items
  • Strengthened protection against clock-based attacks
  • Smoother vault loading when newer item types are present
  • More reliable keychain access and environment handling
  • Fixed Vault Timeout settings breaking after choosing Immediate Log Out
  • Fixed long-press autofill closing unexpectedly
  • Passkeys now save correctly when using My Items
  • Toast confirmations now appear after actions on the view/edit item screen

What's Changed

✨ Community Highlight

:shipit: Feature Development

  • [PM-33847] feat: Handle premiumStatusChanged push notification by @andrebispo5 in #2560
  • [PM-34898] feat: Self-hosted support for PremiumUpgradeView by @andrebispo5 in #2558
  • [PM-35100] feat: Load subscription data into premium plan screen by @andrebispo5 in #2555
  • [PM-36044] feat: Gate premium upgrade banner to US App Store users by @andrebispo5 in #2593
  • [PM-35101] feat: Complete Stripe premium checkout flow by @andrebispo5 in #2574
  • [PM-11610] feat: Change TOTP countdown circle color to urgent when ≤ 7 seconds remain by @KatherineInCode in #2579
  • [PM-34715] feat: Add confirmation prompt when archiving a vault item by @KatherineInCode in #2594
  • [PM-33569] feat: Add notification service extension to update auth request notifications by @matt-livefront in #2444
  • [PM-32809] feat: add Bank Account foundation types and icon by @SaintPatrck in #2573
  • [PM-33989] [IS] feat: Implement card scanner by @fedemkr in #2494
  • [PM-36622] feat: add premium upgrade complete modal UI by @andrebispo5 in #2618
  • [PM-36251] feat: Navigate archive premium upsell through in-app upgrade flow by @andrebispo5 in #2607
  • [PM-37086] feat: show settings plan row for free users by @andrebispo5 in #2631
  • [PM-36627] feat: Update upgraded to premium action card by @andrebispo5 in #2634
  • [PM-36623] feat: premium upgrade complete navigation by @andrebispo5 in #2639
  • [PM-34422] [IS] feat: Add card number format grouping by @fedemkr in #2506
  • [PM-37253] feat: Extract PremiumUpgradeHelper to centralise premium upgrade navigation by @andrebispo5 in #2645
  • 🍒 [PM-37642] feat: Add debug menu flag to disable self-host premium checks by @andrebispo5 in #2670

🐛 Bug fixes

  • [PM-31836] fix: Prevent double-resume crash on Fido2 credential continuations by @matt-livefront in #2540
  • [PM-35329] fix: Show certificate validation alerts via coordinator to prevent dialog race condition by @matt-livefront in #2559
  • [PM-35220] fix: Prevent data race on DefaultEnvironmentService.environmentURLs by @matt-livefront in #2548
  • [PM-31836] fix: Handle no default collection case when saving Fido2 credential as new login by @matt-livefront in #2543
  • [PM-31721] fix: Fall back to unauthenticated config endpoint on keychain item-not-found by @KatherineInCode in #2601
  • [PM-31181] fix: Toast displays after view/edit cipher actions by @fedemkr in #2586
  • [PM-23299] fix: Improve time comparisons to prevent clock tampering by @fedemkr in #2323
  • [PM-35118] fix: Prevent vault timeout from re-firing for already-soft-logged-out accounts by @morganzellers-bw in #2571

⚙️ Maintenance

  • Crowdin Pull by @bw-ghapp[bot] in #2556
  • [PM-27240] chore: Update development app version to avoid triggering V2 encryption server check by @matt-livefront in #2552
  • [PM-35271] refactor: Extract user agent construction to a shared UserAgentBuilder by @matt-livefront in #2549
  • [PM-35271] chore: Provide environment URLs to SDK client via ClientSettings by @matt-livefront in #2561
  • [PM-35271] refactor: Move ClientManagedTokens to AccountTokenProvider so SDK receives refreshed tokens by @matt-livefront in #2567
  • [PM-35498] chore: add shared Xcode search custom scopes and setup script by @fedemkr in #2587
  • [BRE-1851] Reduce permissions on Auth Key by @vgrassia in #2596
  • [PM-35680] chore: Allow Sourcery to generate BitwardenSdk mocks by @matt-livefront in #2581
  • [PM-30129] chore: Remove pm-19148-innovation-archive feature flag by @matt-livefront in #2589
  • Skip tests on Gemfile* changes by @mpbw2 in #2602
  • [BRE-1851] Update the Crowdin API token by @vgrassia in #2600
  • Revert "Skip tests on Gemfile* changes" by @mpbw2 in #2603
  • [BRE-1851] Remove GPG secrets by @vgrassia in #2606
  • Crowdin Pull by @bw-ghapp[bot] in #2610
  • [PM-36313] test: Fix flaky test_syncIdentities_deviceAuthKeys by @KatherineInCode in #2608
  • [PM-35434] Update renovate config to remove bundler group and add t:deps label by @vvolkgang in #2605
  • [PM-36184] Update jira issue fetching process by @vvolkgang in #2604
  • [BRE-1851] Fix Publish Store workflow for release by @vgrassia in #2619
  • [PM-36479] test: Fix flaky onExpiration_oldDate in TOTPCountdownTimerTests by @KatherineInCode in #2613
  • [BRE-1851] Fix _build-any.yml workflow by @vgrassia in #2620
  • [PM-35680] chore: Update SDK's collection, folder, attachment, and password history clients to AutoMockable by @matt-livefront in #2616
  • [PM-36578] test: Fix flaky test_passwordHistoryPublisher in GeneratorRepositoryTests by @KatherineInCode in #2615
  • [PM-35680] chore: Convert SendClientProtocol to AutoMockable by @matt-livefront in #2622
  • Crowdin Pull by @bw-ghapp[bot] in #2626
  • [PM-36946] ci: Increase per-test timeout from 1s to 2s by @KatherineInCode in #2623
  • [bre-1881] ios CI build fix by @aj-bw in #2614
  • SDK Update to baafa43 (2.0.0-4880-fa86d4d) by @LRNcardozoWDF in #2584
  • [PM-36643] refactor: Extract premium checkout debounce interval to Constants by @KatherineInCode in #2632
  • [QA-1851] Updating accessibilityIdentifiers in AddEditSendItemView by @ifernandezdiaz in #2636
  • [PM-35680] chore: Convert GeneratorClientsProtocol to AutoMockable by @matt-livefront in #2625
  • [bre-1909] cleanup migrated workflows by @aj-bw in #2640
  • [PM-37072] chore: Consolidate MockAuthClient with support for MockRegistrationClientProtocol by @matt-livefront in #2638
  • [PM-35680] chore: Convert CiphersClientProtocol to AutoMockable by @matt-livefront in #2644

📦 Dependency Updates

🎨 Other

  • [PM-35062] llm: Add converting-xctest-to-swift-testing skill by @KatherineInCode in #2539
  • [PM-35062] llm: Fix swift testing skill to handle bash issue by @KatherineInCode in #2580
  • PM-35200 - Create contributing guide for Claude tooling by @theMickster in #2592
  • [PM-35680] chore: Update Claude skills to use generate-mocks.sh script by @matt-livefront in #2597
  • [PM-35657] llm: Add converting-mocks-to-automockable skill by @KatherineInCode in #2569
  • [PM-35116] llm: Remove local agents and delivery skills, migrate to marketplace plugins by @SaintPatrck in #2547
  • [PM-37216] llm: Add DocC comment rule to converting-xctest-to-swift-testing skill by @fedemkr in h...
Read more

Authenticator 2026.5.0 (659)

01 Jun 00:42
013f418

Choose a tag to compare

Overview

Various under-the-hood bug fixes and improvements

What's Changed

✨ Community Highlight

:shipit: Feature Development

  • [PM-33847] feat: Handle premiumStatusChanged push notification by @andrebispo5 in #2560
  • [PM-34898] feat: Self-hosted support for PremiumUpgradeView by @andrebispo5 in #2558
  • [PM-35100] feat: Load subscription data into premium plan screen by @andrebispo5 in #2555
  • [PM-36044] feat: Gate premium upgrade banner to US App Store users by @andrebispo5 in #2593
  • [PM-35101] feat: Complete Stripe premium checkout flow by @andrebispo5 in #2574
  • [PM-11610] feat: Change TOTP countdown circle color to urgent when ≤ 7 seconds remain by @KatherineInCode in #2579
  • [PM-34715] feat: Add confirmation prompt when archiving a vault item by @KatherineInCode in #2594
  • [PM-33569] feat: Add notification service extension to update auth request notifications by @matt-livefront in #2444
  • [PM-32809] feat: add Bank Account foundation types and icon by @SaintPatrck in #2573
  • [PM-33989] [IS] feat: Implement card scanner by @fedemkr in #2494
  • [PM-36622] feat: add premium upgrade complete modal UI by @andrebispo5 in #2618
  • [PM-36251] feat: Navigate archive premium upsell through in-app upgrade flow by @andrebispo5 in #2607
  • [PM-37086] feat: show settings plan row for free users by @andrebispo5 in #2631
  • [PM-36627] feat: Update upgraded to premium action card by @andrebispo5 in #2634
  • [PM-36623] feat: premium upgrade complete navigation by @andrebispo5 in #2639
  • [PM-34422] [IS] feat: Add card number format grouping by @fedemkr in #2506
  • [PM-37253] feat: Extract PremiumUpgradeHelper to centralise premium upgrade navigation by @andrebispo5 in #2645
  • 🍒 [PM-37642] feat: Add debug menu flag to disable self-host premium checks by @andrebispo5 in #2670

🐛 Bug fixes

  • [PM-31836] fix: Prevent double-resume crash on Fido2 credential continuations by @matt-livefront in #2540
  • [PM-35329] fix: Show certificate validation alerts via coordinator to prevent dialog race condition by @matt-livefront in #2559
  • [PM-35220] fix: Prevent data race on DefaultEnvironmentService.environmentURLs by @matt-livefront in #2548
  • [PM-31836] fix: Handle no default collection case when saving Fido2 credential as new login by @matt-livefront in #2543
  • [PM-31721] fix: Fall back to unauthenticated config endpoint on keychain item-not-found by @KatherineInCode in #2601
  • [PM-31181] fix: Toast displays after view/edit cipher actions by @fedemkr in #2586
  • [PM-23299] fix: Improve time comparisons to prevent clock tampering by @fedemkr in #2323
  • [PM-35118] fix: Prevent vault timeout from re-firing for already-soft-logged-out accounts by @morganzellers-bw in #2571

⚙️ Maintenance

  • Crowdin Pull by @bw-ghapp[bot] in #2556
  • [PM-27240] chore: Update development app version to avoid triggering V2 encryption server check by @matt-livefront in #2552
  • [PM-35271] refactor: Extract user agent construction to a shared UserAgentBuilder by @matt-livefront in #2549
  • [PM-35271] chore: Provide environment URLs to SDK client via ClientSettings by @matt-livefront in #2561
  • [PM-35271] refactor: Move ClientManagedTokens to AccountTokenProvider so SDK receives refreshed tokens by @matt-livefront in #2567
  • [PM-35498] chore: add shared Xcode search custom scopes and setup script by @fedemkr in #2587
  • [BRE-1851] Reduce permissions on Auth Key by @vgrassia in #2596
  • [PM-35680] chore: Allow Sourcery to generate BitwardenSdk mocks by @matt-livefront in #2581
  • [PM-30129] chore: Remove pm-19148-innovation-archive feature flag by @matt-livefront in #2589
  • Skip tests on Gemfile* changes by @mpbw2 in #2602
  • [BRE-1851] Update the Crowdin API token by @vgrassia in #2600
  • Revert "Skip tests on Gemfile* changes" by @mpbw2 in #2603
  • [BRE-1851] Remove GPG secrets by @vgrassia in #2606
  • Crowdin Pull by @bw-ghapp[bot] in #2610
  • [PM-36313] test: Fix flaky test_syncIdentities_deviceAuthKeys by @KatherineInCode in #2608
  • [PM-35434] Update renovate config to remove bundler group and add t:deps label by @vvolkgang in #2605
  • [PM-36184] Update jira issue fetching process by @vvolkgang in #2604
  • [BRE-1851] Fix Publish Store workflow for release by @vgrassia in #2619
  • [PM-36479] test: Fix flaky onExpiration_oldDate in TOTPCountdownTimerTests by @KatherineInCode in #2613
  • [BRE-1851] Fix _build-any.yml workflow by @vgrassia in #2620
  • [PM-35680] chore: Update SDK's collection, folder, attachment, and password history clients to AutoMockable by @matt-livefront in #2616
  • [PM-36578] test: Fix flaky test_passwordHistoryPublisher in GeneratorRepositoryTests by @KatherineInCode in #2615
  • [PM-35680] chore: Convert SendClientProtocol to AutoMockable by @matt-livefront in #2622
  • Crowdin Pull by @bw-ghapp[bot] in #2626
  • [PM-36946] ci: Increase per-test timeout from 1s to 2s by @KatherineInCode in #2623
  • [bre-1881] ios CI build fix by @aj-bw in #2614
  • SDK Update to baafa43 (2.0.0-4880-fa86d4d) by @LRNcardozoWDF in #2584
  • [PM-36643] refactor: Extract premium checkout debounce interval to Constants by @KatherineInCode in #2632
  • [QA-1851] Updating accessibilityIdentifiers in AddEditSendItemView by @ifernandezdiaz in #2636
  • [PM-35680] chore: Convert GeneratorClientsProtocol to AutoMockable by @matt-livefront in #2625
  • [bre-1909] cleanup migrated workflows by @aj-bw in #2640
  • [PM-37072] chore: Consolidate MockAuthClient with support for MockRegistrationClientProtocol by @matt-livefront in #2638
  • [PM-35680] chore: Convert CiphersClientProtocol to AutoMockable by @matt-livefront in #2644

📦 Dependency Updates

🎨 Other

New Contributors

Full Changelog: v2026.4.1-bwa...v2026.5.0-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/25928972759

Password Manager 2026.4.1 (3112)

08 May 14:22
df3afa9

Choose a tag to compare

Overview

What's New

  • Support for client certificate authentication (mTLS) for self-hosted environments
  • Your User ID is now visible in the Debug view with a one-tap copy button

Improvements

  • Authenticator menu bar now displays correctly on iOS 26 when biometric unlock is enabled

Bug Fixes

  • Fixed autofill occasionally closing when using long press

What's Changed

✨ Community Highlight

  • [PM-23409] feat: Add client certificate authentication (mTLS) support for self-hosted environments by @jalenfran in #1720
  • [PM-26292] chore: Remove unused strings by @mKoonrad in #2003

:shipit: Feature Development

🐛 Bug fixes

  • [PM-35040] fix: Prevent Authenticator lock overlay from being dismissed by @KatherineInCode in #2537
  • [PM-24195] fix: Pass userId to refreshToken and setTokens by @LRNcardozoWDF in #2374
  • [PM-35251] fix: Adjust presentation style to avoid Tab Bar issues in BWA by @KatherineInCode in #2551
  • [PM-35285] fix: Prevent StateService.isAuthenticated(userId:) from throwing if token doesn't exist in keychain by @matt-livefront in #2553

⚙️ Maintenance

  • [PM-25832] chore: Remove cxp-export-mobile feature flag by @matt-livefront in #2516
  • Crowdin Pull by @bw-ghapp[bot] in #2520
  • [PM-34016] chore: Centralize logic around TOTP code generation authorization by @morganzellers-bw in #2513
  • [PM-33207] chore: Remove pm-19051-send-email-verification feature flag by @matt-livefront in #2524
  • [PM-33571] llm: Add requirements refinement and planning skills by @SaintPatrck in #2445
  • [deps]: Update actions/create-github-app-token action to v3 by @renovate[bot] in #2476
  • Crowdin Pull by @bw-ghapp[bot] in #2531
  • [PM-34009] chore: Create KeychainServiceFacade by @KatherineInCode in #2507

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2521
  • Update public suffix list by @github-actions[bot] in #2532

🎨 Other

  • [PM-33575] llm: Add delivery skills for preflight, commit, PR, and labeling by @SaintPatrck in #2449
  • [PM-33572] llm: Add implementing-ios-code skill with Swift templates by @SaintPatrck in #2446
  • [PM-33573] llm: Add testing-ios-code skill with examples and references by @SaintPatrck in #2447
  • [PM-33576] llm: Add orchestration command, agent, and skill index to CLAUDE.md by @SaintPatrck in #2450
  • [PM-34793] llm: Add ios-architect agent by @KatherineInCode in #2525
  • [PM-34811] llm: Fix simulator destination in build-test-verify skill by @KatherineInCode in #2526
  • QA-1654: Adding accessibilityIDs to FlightRecorderLogsView elements by @ifernandezdiaz in #2542

New Contributors

Full Changelog: v2026.4.0-bwpm...v2026.4.1-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/24576670030

Authenticator 2026.4.1 (593)

08 May 16:04
df3afa9

Choose a tag to compare

Overview

  • General under-the-hood improvements and bug fixes.

What's Changed

✨ Community Highlight

  • [PM-23409] feat: Add client certificate authentication (mTLS) support for self-hosted environments by @jalenfran in #1720
  • [PM-26292] chore: Remove unused strings by @mKoonrad in #2003

:shipit: Feature Development

🐛 Bug fixes

  • [PM-35040] fix: Prevent Authenticator lock overlay from being dismissed by @KatherineInCode in #2537
  • [PM-24195] fix: Pass userId to refreshToken and setTokens by @LRNcardozoWDF in #2374
  • [PM-35251] fix: Adjust presentation style to avoid Tab Bar issues in BWA by @KatherineInCode in #2551
  • [PM-35285] fix: Prevent StateService.isAuthenticated(userId:) from throwing if token doesn't exist in keychain by @matt-livefront in #2553

⚙️ Maintenance

  • [PM-25832] chore: Remove cxp-export-mobile feature flag by @matt-livefront in #2516
  • Crowdin Pull by @bw-ghapp[bot] in #2520
  • [PM-34016] chore: Centralize logic around TOTP code generation authorization by @morganzellers-bw in #2513
  • [PM-33207] chore: Remove pm-19051-send-email-verification feature flag by @matt-livefront in #2524
  • [PM-33571] llm: Add requirements refinement and planning skills by @SaintPatrck in #2445
  • [deps]: Update actions/create-github-app-token action to v3 by @renovate[bot] in #2476
  • Crowdin Pull by @bw-ghapp[bot] in #2531
  • [PM-34009] chore: Create KeychainServiceFacade by @KatherineInCode in #2507

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2521
  • Update public suffix list by @github-actions[bot] in #2532

🎨 Other

  • [PM-33575] llm: Add delivery skills for preflight, commit, PR, and labeling by @SaintPatrck in #2449
  • [PM-33572] llm: Add implementing-ios-code skill with Swift templates by @SaintPatrck in #2446
  • [PM-33573] llm: Add testing-ios-code skill with examples and references by @SaintPatrck in #2447
  • [PM-33576] llm: Add orchestration command, agent, and skill index to CLAUDE.md by @SaintPatrck in #2450
  • [PM-34793] llm: Add ios-architect agent by @KatherineInCode in #2525
  • [PM-34811] llm: Fix simulator destination in build-test-verify skill by @KatherineInCode in #2526
  • QA-1654: Adding accessibilityIDs to FlightRecorderLogsView elements by @ifernandezdiaz in #2542

New Contributors

Full Changelog: v2026.4.0-bwa...v2026.4.1-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/24576671046

Password Manager 2026.4.0 (3082)

16 Apr 18:30
3dfd2c8

Choose a tag to compare

Overview

  • Fixed autofill unexpectedly closing when using long press
  • Fixed passkeys not saving for users with My Items
  • Fixed the missing confirmation message after editing or deleting a vault item
  • Improved account security when setting a master password hint
  • Fixed the duplicate password field appearing in VoiceOver

What's Changed

✨ Community Highlight

  • [PM-33390] PM-33287: Change minimum numbers/special max value from 5 to 9 by @marcdejesus in #2432

:shipit: Feature Development

  • [PM-33859] feat: Premium upgrade dismissed to state by @andrebispo5 in #2463
  • [PM-33569] feat: Handle displaying login request for alert style notification by @matt-livefront in #2482
  • [PM-33853] feat: Add BillingAPIService for premium upgrade endpoints by @andrebispo5 in #2496
  • [PM-33854] feat: Add getPlans endpoint to BillingAPIService by @andrebispo5 in #2501

🐛 Bug fixes

  • [PM-33930] fix: Exclude items with invalid keys from TOTP section count by @matt-livefront in #2477
  • [PM-32401] fix: Prevent TOTP autofill for non-premium accounts by @matt-livefront in #2467
  • [PM-32401] fix: Prevent copy TOTP autofill action for non-premium accounts by @matt-livefront in #2479
  • [PM-34062] fix: Fix dismiss sync with browser automatically by @fedemkr in #2484
  • [PM-34062] [Backport] fix: Increase wait time for dismiss on sync with browser by @fedemkr in #2497
  • [PM-34205] fix: Hide unmasked password text field from VO when password is masked by @matt-livefront in #2499
  • [PM-250] fix: Update MP Hint Validation by @morganzellers-bw in #2495
  • [PM-33569] fix: Remove pending login request if it no longer exists by @matt-livefront in #2498

⚙️ Maintenance

  • Crowdin Pull by @bw-ghapp[bot] in #2472
  • [PM-33945] chore: Consolidate AppIDService to BitwardenKit by @KatherineInCode in #2478
  • [PM-33908] chore: Consolidate KeychainService to BitwardenKit by @KatherineInCode in #2470
  • [PM-32730] [BEEEP] chore: Improve spell check script by @fedemkr in #2471
  • [PM-34052] chore: Consolidate BitwardenError into BitwardenKit by @KatherineInCode in #2481
  • [PM-34106] chore: Consolidate KeychainItem into BitwardenKit via protocol by @KatherineInCode in #2492
  • Crowdin Pull by @bw-ghapp[bot] in #2502
  • [PM-34443] chore: Fix Testing.md Sourcery usage/path by @fedemkr in #2508
  • [PM-34527] chore: Fix non-Sendable related trivial warnings. by @fedemkr in #2512
  • [PM-25831] chore: Remove cxp-import-mobile feature flag by @matt-livefront in #2514
  • [PM-34522] chore: Add sourcery automocks to AuthenticatorBridgeKit and convert SharedKeychainRepository to use it by @KatherineInCode in #2515
  • [PM-34592] chore: Update iOS version for tests to 26.2 by @matt-livefront in #2517

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2473
  • [deps]: Update GitHub Artifact Actions (major) by @renovate[bot] in #2454
  • [deps]: Update gh minor by @renovate[bot] in #2475
  • Update public suffix list by @github-actions[bot] in #2503

🎨 Other

New Contributors

Full Changelog: v2026.3.1-bwpm...v2026.4.0-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/23952232681

Authenticator 2026.4.0 (567)

16 Apr 18:27
3dfd2c8

Choose a tag to compare

Overview

  • Various under-the-hood improvements and bug fixes

What's Changed

✨ Community Highlight

  • [PM-33390] PM-33287: Change minimum numbers/special max value from 5 to 9 by @marcdejesus in #2432

:shipit: Feature Development

  • [PM-33859] feat: Premium upgrade dismissed to state by @andrebispo5 in #2463
  • [PM-33569] feat: Handle displaying login request for alert style notification by @matt-livefront in #2482
  • [PM-33853] feat: Add BillingAPIService for premium upgrade endpoints by @andrebispo5 in #2496
  • [PM-33854] feat: Add getPlans endpoint to BillingAPIService by @andrebispo5 in #2501

🐛 Bug fixes

  • [PM-33930] fix: Exclude items with invalid keys from TOTP section count by @matt-livefront in #2477
  • [PM-32401] fix: Prevent TOTP autofill for non-premium accounts by @matt-livefront in #2467
  • [PM-32401] fix: Prevent copy TOTP autofill action for non-premium accounts by @matt-livefront in #2479
  • [PM-34062] fix: Fix dismiss sync with browser automatically by @fedemkr in #2484
  • [PM-34062] [Backport] fix: Increase wait time for dismiss on sync with browser by @fedemkr in #2497
  • [PM-34205] fix: Hide unmasked password text field from VO when password is masked by @matt-livefront in #2499
  • [PM-250] fix: Update MP Hint Validation by @morganzellers-bw in #2495
  • [PM-33569] fix: Remove pending login request if it no longer exists by @matt-livefront in #2498

⚙️ Maintenance

  • Crowdin Pull by @bw-ghapp[bot] in #2472
  • [PM-33945] chore: Consolidate AppIDService to BitwardenKit by @KatherineInCode in #2478
  • [PM-33908] chore: Consolidate KeychainService to BitwardenKit by @KatherineInCode in #2470
  • [PM-32730] [BEEEP] chore: Improve spell check script by @fedemkr in #2471
  • [PM-34052] chore: Consolidate BitwardenError into BitwardenKit by @KatherineInCode in #2481
  • [PM-34106] chore: Consolidate KeychainItem into BitwardenKit via protocol by @KatherineInCode in #2492
  • Crowdin Pull by @bw-ghapp[bot] in #2502
  • [PM-34443] chore: Fix Testing.md Sourcery usage/path by @fedemkr in #2508
  • [PM-34527] chore: Fix non-Sendable related trivial warnings. by @fedemkr in #2512
  • [PM-25831] chore: Remove cxp-import-mobile feature flag by @matt-livefront in #2514
  • [PM-34522] chore: Add sourcery automocks to AuthenticatorBridgeKit and convert SharedKeychainRepository to use it by @KatherineInCode in #2515
  • [PM-34592] chore: Update iOS version for tests to 26.2 by @matt-livefront in #2517

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2473
  • [deps]: Update GitHub Artifact Actions (major) by @renovate[bot] in #2454
  • [deps]: Update gh minor by @renovate[bot] in #2475
  • Update public suffix list by @github-actions[bot] in #2503

🎨 Other

New Contributors

Full Changelog: v2026.3.1-bwa...v2026.4.0-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/23952233246

Password Manager 2026.3.1 (3062)

02 Apr 21:17
38c8ad1

Choose a tag to compare

Overview

What's New

  • iOS now prompts you to enable Bitwarden as a credential provider directly from the app
  • Organization policy changes take effect immediately
    Improvements
  • Clearer labels for Send and vault buttons
  • Browser extension imports handle profile switching and search without closing the screen
  • More graceful TOTP edge case handling
  • Better stability for login-with-device notifications
    Bug Fixes
  • Archiving a vault item as org owner no longer shows a false error
  • Declining an org transfer no longer creates a blank audit log entry
  • Fixed a loop prompting repeated encryption setting updates
  • Biometric unlock works correctly for keychain users with session timeout policies
  • Fixed a crash when transferring items from the browser extension

What's Changed

:shipit: Feature Development

  • [PM-26177] feat: Wire up device auth key to autofill service by @iinuwa in #2300
  • [PM-32575] feat: Update SSO cookies acquired try again dialog message by @fedemkr in #2409
  • [PM-33355] feat: Sync when push notification policy changed is received by @andrebispo5 in #2442
  • [PM-33846] feat: Premium upgrade feature flag by @andrebispo5 in #2461
  • [PM-32662] feat: Improve item transfer UI by @fedemkr in #2468
  • [PM-27595] feat: Improve autofill onboarding by @fedemkr in #2465

🐛 Bug fixes

  • [PM-33252] fix: Fix update profile KDF values from User decryption options on sync by @fedemkr in #2413
  • [PM-33230] fix: Remove error alert on known devices check by @fedemkr in #2414
  • [PM-33231] fix: Dismiss keyboard on sync with browser view by @fedemkr in #2415
  • [PM-33231] fix: Fix keyboard being shown on sync with browser from login screen by @fedemkr in #2429
  • [PM-33412] fix: Fix CoreData threading violation in AuthenticatorBridgeKit by @KatherineInCode in #2433
  • [PM-31722] fix: Prevent WatchService error when switching to locked account by @matt-livefront in #2427
  • [BWA-198] fix: Retain TOTP code when streaming updates on item edit in PM by @KatherineInCode in #2410
  • [PM-33370] fix: Fix [un]archive flow on missing cipher key case by @fedemkr in #2436
  • [PM-31836] bug: Create Passkeys into MyItems by @andrebispo5 in #2406
  • [PM-33231] fix: Fix keyboard flickering by applying fullscreen to the modal by @fedemkr in #2438
  • [PM-33136] fix: Centralize TOTP key error handling to reduce Crashlytics noise by @matt-livefront in #2435
  • [PM-31470] bug: Show migrate personal vault on unlock by @andrebispo5 in #2411
  • [PM-29855] fix: Update accessibility label for option button in list rows by @matt-livefront in #2451
  • [PM-33311] fix: Fix ViewController interactions in VaultCoordinator by @KatherineInCode in #2458
  • [PM-31837] fix: Enforce policy session timeout action on Key connector by @fedemkr in #2441
  • [PM-33557] fix: Remove "Why am I seeing this?" link button on Sync with browser view by @fedemkr in #2466
  • [PM-32767] fix: Update localized strings for organization level Session Timeout Settings by @morganzellers-bw in #2459
  • [PM-33914] fix: Remove org event to avoid blank log entry. by @morganzellers-bw in #2469
  • [PM-33498] fix: Create a safePresent method to avoid VC presentation races by @KatherineInCode in #2428
  • [PM-34062] [RC] fix: Fix dismiss sync with browser automatically by @fedemkr in #2486
  • [PM-34062] fix: Increase wait time for dismiss on sync with browser by @fedemkr in #2493

⚙️ Maintenance

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2419
  • Update public suffix list by @github-actions[bot] in #2453

🎨 Other

  • [PM-30872] Enhance CLAUDE.md with comprehensive project configuration by @SaintPatrck in #2339
  • [PM-33570] llm: Enhance reviewing-changes skill to multi-file structure by @SaintPatrck in #2443

Full Changelog: v2026.3.0-bwpm...v2026.3.1-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/23565719717

Authenticator 2026.3.1 (545)

02 Apr 21:18
38c8ad1

Choose a tag to compare

Overview

  • Various under-the-hood bug fixes and improvements

What's Changed

:shipit: Feature Development

  • [PM-26177] feat: Wire up device auth key to autofill service by @iinuwa in #2300
  • [PM-32575] feat: Update SSO cookies acquired try again dialog message by @fedemkr in #2409
  • [PM-33355] feat: Sync when push notification policy changed is received by @andrebispo5 in #2442
  • [PM-33846] feat: Premium upgrade feature flag by @andrebispo5 in #2461
  • [PM-32662] feat: Improve item transfer UI by @fedemkr in #2468
  • [PM-27595] feat: Improve autofill onboarding by @fedemkr in #2465

🐛 Bug fixes

  • [PM-33252] fix: Fix update profile KDF values from User decryption options on sync by @fedemkr in #2413
  • [PM-33230] fix: Remove error alert on known devices check by @fedemkr in #2414
  • [PM-33231] fix: Dismiss keyboard on sync with browser view by @fedemkr in #2415
  • [PM-33231] fix: Fix keyboard being shown on sync with browser from login screen by @fedemkr in #2429
  • [PM-33412] fix: Fix CoreData threading violation in AuthenticatorBridgeKit by @KatherineInCode in #2433
  • [PM-31722] fix: Prevent WatchService error when switching to locked account by @matt-livefront in #2427
  • [BWA-198] fix: Retain TOTP code when streaming updates on item edit in PM by @KatherineInCode in #2410
  • [PM-33370] fix: Fix [un]archive flow on missing cipher key case by @fedemkr in #2436
  • [PM-31836] bug: Create Passkeys into MyItems by @andrebispo5 in #2406
  • [PM-33231] fix: Fix keyboard flickering by applying fullscreen to the modal by @fedemkr in #2438
  • [PM-33136] fix: Centralize TOTP key error handling to reduce Crashlytics noise by @matt-livefront in #2435
  • [PM-31470] bug: Show migrate personal vault on unlock by @andrebispo5 in #2411
  • [PM-29855] fix: Update accessibility label for option button in list rows by @matt-livefront in #2451
  • [PM-33311] fix: Fix ViewController interactions in VaultCoordinator by @KatherineInCode in #2458
  • [PM-31837] fix: Enforce policy session timeout action on Key connector by @fedemkr in #2441
  • [PM-33557] fix: Remove "Why am I seeing this?" link button on Sync with browser view by @fedemkr in #2466
  • [PM-32767] fix: Update localized strings for organization level Session Timeout Settings by @morganzellers-bw in #2459
  • [PM-33914] fix: Remove org event to avoid blank log entry. by @morganzellers-bw in #2469
  • [PM-33498] fix: Create a safePresent method to avoid VC presentation races by @KatherineInCode in #2428
  • [PM-34062] [RC] fix: Fix dismiss sync with browser automatically by @fedemkr in #2486
  • [PM-34062] fix: Increase wait time for dismiss on sync with browser by @fedemkr in #2493

⚙️ Maintenance

📦 Dependency Updates

  • Update public suffix list by @github-actions[bot] in #2419
  • Update public suffix list by @github-actions[bot] in #2453

🎨 Other

  • [PM-30872] Enhance CLAUDE.md with comprehensive project configuration by @SaintPatrck in #2339
  • [PM-33570] llm: Enhance reviewing-changes skill to multi-file structure by @SaintPatrck in #2443

Full Changelog: v2026.3.0-bwa...v2026.3.1-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/23357101095