Releases: bitwarden/ios
Password Manager 2026.4.0 (3082)
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
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
- [PM-33853] llm: Add Billing domain to CLAUDE.md by @andrebispo5 in #2500
- [PM-33574] llm: Add build-test-verify skill by @SaintPatrck in #2448
New Contributors
- @marcdejesus made their first contribution in #2432
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)
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
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
- [PM-33853] llm: Add Billing domain to CLAUDE.md by @andrebispo5 in #2500
- [PM-33574] llm: Add build-test-verify skill by @SaintPatrck in #2448
New Contributors
- @marcdejesus made their first contribution in #2432
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)
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
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
- [PM-26762] chore: Resolve MockHTTPClient concurrency warning by @matt-livefront in #2376
- Crowdin Pull by @bw-ghapp[bot] in #2418
- [PM-31722] chore: Add WatchService tests by @matt-livefront in #2416
- [PM-32221] chore: Add appcontext to crashlytics by @LRNcardozoWDF in #2399
- Crowdin Pull by @bw-ghapp[bot] in #2452
- [PM-33763] chore: Fix flaky unit tests by @matt-livefront in #2457
- [PM-33758] ci: Print summary when Tests fail by @vvolkgang in #2456
- [PM-18892] ci: Comment linked issues when a new GitHub Release is published by @vvolkgang in #2355
- llm: Update CODEOWNERS for Claude related files by @SaintPatrck in #2460
- Update CI badges in README.md by @djsmith85 in #2407
- [PM-33862] chore: Don't log to Crashlytics when receiving a login request for a logged out account by @matt-livefront in #2462
📦 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)
Overview
- Various under-the-hood bug fixes and improvements
What's Changed
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
- [PM-26762] chore: Resolve MockHTTPClient concurrency warning by @matt-livefront in #2376
- Crowdin Pull by @bw-ghapp[bot] in #2418
- [PM-31722] chore: Add WatchService tests by @matt-livefront in #2416
- [PM-32221] chore: Add appcontext to crashlytics by @LRNcardozoWDF in #2399
- Crowdin Pull by @bw-ghapp[bot] in #2452
- [PM-33763] chore: Fix flaky unit tests by @matt-livefront in #2457
- [PM-33758] ci: Print summary when Tests fail by @vvolkgang in #2456
- [PM-18892] ci: Comment linked issues when a new GitHub Release is published by @vvolkgang in #2355
- llm: Update CODEOWNERS for Claude related files by @SaintPatrck in #2460
- Update CI badges in README.md by @djsmith85 in #2407
- [PM-33862] chore: Don't log to Crashlytics when receiving a login request for a logged out account by @matt-livefront in #2462
📦 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
Password Manager 2026.3.0 (3023)
Overview
What's New
- Improved server communication reliability with enhanced cookie handling for compatible environments
Improvements - Smoother scrolling throughout the app
- Toggle buttons now include non-color visual indicators for better accessibility
- Improved push notification diagnostics for faster issue resolution
- Streamlined biometrics handling under the hood
Bug Fixes - Fixed 400 error when archiving or unarchiving a vault item
- Fixed the crash caused by credential identity store errors
- Fixed a rare app crash on startup
- Fixed long-press autofill closing unexpectedly
- Fixed missing confirmation toast after editing or deleting a vault item
What's Changed
Feature Development
- [PM-26177] feat: Add models and methods to register and assert account passkeys by @iinuwa in #2295
- [PM-26177] feat: Create stub DeviceAuthKeyService by @iinuwa in #2297
- [PM-32742] feat: Server communication cookie bootstrap config models and environment by @fedemkr in #2378
- [PM-29876] feat: Implement server communication config SDK services by @fedemkr in #2382
- [PM-29877] feat: Handle acquire cookies and 302 redirection for SSO cookies vendor flow by @fedemkr in #2401
- [PM-33089] feat: Prevent perform acquire cookies flow when app is in background by @fedemkr in #2402
- [PM-29880] feat: Implement sync with in-app browser UI by @fedemkr in #2403
- [PM-32575] [RC] feat: Update SSO cookies acquired try again dialog message by @fedemkr in #2422
🐛 Bug fixes
- [PM-31717] fix: Use default keyboard for 2FA code on iPad to prevent crash by @matt-livefront in #2357
- [PM-32533] bug: Fix button color premium subscription alert by @andrebispo5 in #2368
- [PM-32538] bug: Sends selected passphrase does not populate by @andrebispo5 in #2371
- [PM-29856] fix: Update generator segmented control normal state by @matt-livefront in #2375
- [PM-32539] [PM-32540] bug: Fix Sends error dialogs by @andrebispo5 in #2369
- [PM-32535] bug: Sends email list behaviour by @andrebispo5 in #2370
- [PM-32760] fix: Fix archive response upsert by @fedemkr in #2385
- [PM-32845] bug: Fix trusted device not remembered for new SSO users by @andrebispo5 in #2383
- [PM-31720] fix: Only update credential identity store when app is foregrounded by @matt-livefront in #2361
- [PM-31470] bug: Prompt vault migration in app extension by @andrebispo5 in #2400
- [PM-33230] [RC] fix: Remove error alert on known devices check by @fedemkr in #2424
- [PM-33252] [RC] fix: Fix update profile KDF values from User decryption options on sync by @fedemkr in #2425
- [PM-33231] [RC] fix: Dismiss keyboard on sync with browser view by @fedemkr in #2426
- [PM-33370] [RC] fix: Fix [un]archive flow on missing cipher key case by @fedemkr in #2437
- [PM-33231] [RC] fix: Fix keyboard flickering by applying fullscreen to the modal by @fedemkr in #2439
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2364
- [deps]: Update actions/cache action to v5 by @renovate[bot] in #2210
- [PM-32528] chore: Improve push notification logging by @matt-livefront in #2359
- [PM-27047] chore: Consolidate bundle extensions by @KatherineInCode in #2372
- [PM-31239] ci: Update Xcode to 26.2 by @fedemkr in #2286
- [PM-26762] chore: Update NetworkingTests to strict concurrency by @matt-livefront in #2337
- [PM-27047] Consolidate BiometricsRepository to BitwardenKit by @KatherineInCode in #2340
- [BWA-227] chore: Update Authenticator app icons by @matt-livefront in #2377
- Crowdin Pull by @bw-ghapp[bot] in #2392
📦 Dependency Updates
- [bre-1647] iOS CI Builds Failing With Fastlane Error by @aj-bw in #2360
- Update SDK to 5d2a391 (2.0.0-4615-1693d4d) by @bw-ghapp[bot] in #2346
- Update public suffix list by @github-actions[bot] in #2365
- Update SDK to 7b1ddc5 (2.0.0-4648-7a22aa7) by @bw-ghapp[bot] in #2367
- Update SDK to 0ea18f0 (2.0.0-4735-26e2b10) by @bw-ghapp[bot] in #2373
- Update public suffix list by @github-actions[bot] in #2393
🎨 Other
- [PM-32781] Restrict Claude Code attribution from commits and PRs by @SaintPatrck in #2380
- Remove Gitter chat badge from README by @djsmith85 in #2404
- Update GitHub badge links in README-bwa.md by @djsmith85 in #2405
New Contributors
- @djsmith85 made their first contribution in #2404
Full Changelog: v2026.2.1-bwpm...v2026.3.0-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/23023384383
Authenticator 2026.3.0 (523)
Overview
- Varous under-the-hood bug fixes and imrprovements
What's Changed
Feature Development
- [PM-26177] feat: Add models and methods to register and assert account passkeys by @iinuwa in #2295
- [PM-26177] feat: Create stub DeviceAuthKeyService by @iinuwa in #2297
- [PM-32742] feat: Server communication cookie bootstrap config models and environment by @fedemkr in #2378
- [PM-29876] feat: Implement server communication config SDK services by @fedemkr in #2382
- [PM-29877] feat: Handle acquire cookies and 302 redirection for SSO cookies vendor flow by @fedemkr in #2401
- [PM-33089] feat: Prevent perform acquire cookies flow when app is in background by @fedemkr in #2402
- [PM-29880] feat: Implement sync with in-app browser UI by @fedemkr in #2403
- [PM-32575] [RC] feat: Update SSO cookies acquired try again dialog message by @fedemkr in #2422
🐛 Bug fixes
- [PM-31717] fix: Use default keyboard for 2FA code on iPad to prevent crash by @matt-livefront in #2357
- [PM-32533] bug: Fix button color premium subscription alert by @andrebispo5 in #2368
- [PM-32538] bug: Sends selected passphrase does not populate by @andrebispo5 in #2371
- [PM-29856] fix: Update generator segmented control normal state by @matt-livefront in #2375
- [PM-32539] [PM-32540] bug: Fix Sends error dialogs by @andrebispo5 in #2369
- [PM-32535] bug: Sends email list behaviour by @andrebispo5 in #2370
- [PM-32760] fix: Fix archive response upsert by @fedemkr in #2385
- [PM-32845] bug: Fix trusted device not remembered for new SSO users by @andrebispo5 in #2383
- [PM-31720] fix: Only update credential identity store when app is foregrounded by @matt-livefront in #2361
- [PM-31470] bug: Prompt vault migration in app extension by @andrebispo5 in #2400
- [PM-33230] [RC] fix: Remove error alert on known devices check by @fedemkr in #2424
- [PM-33252] [RC] fix: Fix update profile KDF values from User decryption options on sync by @fedemkr in #2425
- [PM-33231] [RC] fix: Dismiss keyboard on sync with browser view by @fedemkr in #2426
- [PM-33370] [RC] fix: Fix [un]archive flow on missing cipher key case by @fedemkr in #2437
- [PM-33231] [RC] fix: Fix keyboard flickering by applying fullscreen to the modal by @fedemkr in #2439
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2364
- [deps]: Update actions/cache action to v5 by @renovate[bot] in #2210
- [PM-32528] chore: Improve push notification logging by @matt-livefront in #2359
- [PM-27047] chore: Consolidate bundle extensions by @KatherineInCode in #2372
- [PM-31239] ci: Update Xcode to 26.2 by @fedemkr in #2286
- [PM-26762] chore: Update NetworkingTests to strict concurrency by @matt-livefront in #2337
- [PM-27047] Consolidate BiometricsRepository to BitwardenKit by @KatherineInCode in #2340
- [BWA-227] chore: Update Authenticator app icons by @matt-livefront in #2377
- Crowdin Pull by @bw-ghapp[bot] in #2392
📦 Dependency Updates
- [bre-1647] iOS CI Builds Failing With Fastlane Error by @aj-bw in #2360
- Update SDK to 5d2a391 (2.0.0-4615-1693d4d) by @bw-ghapp[bot] in #2346
- Update public suffix list by @github-actions[bot] in #2365
- Update SDK to 7b1ddc5 (2.0.0-4648-7a22aa7) by @bw-ghapp[bot] in #2367
- Update SDK to 0ea18f0 (2.0.0-4735-26e2b10) by @bw-ghapp[bot] in #2373
- Update public suffix list by @github-actions[bot] in #2393
🎨 Other
- [PM-32781] Restrict Claude Code attribution from commits and PRs by @SaintPatrck in #2380
- Remove Gitter chat badge from README by @djsmith85 in #2404
- Update GitHub badge links in README-bwa.md by @djsmith85 in #2405
New Contributors
- @djsmith85 made their first contribution in #2404
Full Changelog: v2026.2.1-bwa...v2026.3.0-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/22858795198
Password Manager 2026.2.1 (2988)
Overview
- Fixed issues affecting vault exports and archived items
- Resolved missing password re-prompts when managing archived items
- Enhanced internal diagnostics and development workflows
- Streamlined dependency updates to support faster security fixes
What's Changed
Feature Development
- [PM-26177] feat: Add base64url Data extensions by @iinuwa in #2294
- [PM-31592] feat: Update Sends who can view section by @andrebispo5 in #2325
- [PM-31890] feat: Update Sends password field by @andrebispo5 in #2333
- [PM-26177] feat: Add device auth key to keychain repository by @iinuwa in #2293
- [PM-31593] feat: API level support for Send authentication by @andrebispo5 in #2342
🐛 Bug fixes
- [PM-31687] fix: Prevent flight recorder crash when deleting multiple logs by @matt-livefront in #2324
- [PM-31830] fix: Fix archived cipher update on non-premium user by @fedemkr in #2343
- [PM-31654] fix: Update archive unavailable alert button style by @fedemkr in #2352
- [PM-32358] fix: Add master password reprompt for archive and unarchive by @matt-livefront in #2353
- [PM-32359] fix: Include archived ciphers in file exports by @matt-livefront in #2354
- [PM-32760] hotfix: RC Fix archive response upsert by @fedemkr in #2386
- [PM-32845] bug: RC Fix trusted device not remembered for new SSO users by @fedemkr in #2396
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2331
- [PM-27525] chore: Fix spellings from initial spell check run by @matt-livefront in #2320
- [PM-27524] chore: Update setup-hooks.sh to work with git worktrees by @matt-livefront in #2336
- [PM-27047] chore: Migrate MockBiometricsRepository to Sourcery AutoMockable by @KatherineInCode in #2330
- [PM-26177] chore: Rename authenticator method to vaultAuthenticator by @iinuwa in #2296
- Slim down and align with our current practices by @theMickster in #2338
- [PM-32095] ci: Update Test workflows summary step to list failures only by @vvolkgang in #2341
- [PM-31289] ci: Renovate - remove mint and swift groups by @vvolkgang in #2307
- [PM-31286] ci: Add workflow to enforce PR labels by @vvolkgang in #2344
- [PM-32095] ci: Output full test results log to the github run summary by @vvolkgang in #2356
- [deps]: migrate Renovate config - autoclosed by @renovate[bot] in #2292
- Crowdin Pull by @bw-ghapp[bot] in #2348
- [deps]: Update actions/checkout action to v6 by @renovate[bot] in #2186
- [PM-32095] ci: Run print step when test succeeds in test workflows by @vvolkgang in #2358
- [deps]: Update GitHub Artifact Actions (major) by @renovate[bot] in #2211
📦 Dependency Updates
- Update SDK to 9b59b09 (2.0.0-4315-7f4059e) by @bw-ghapp[bot] in #2326
- Update public suffix list by @github-actions[bot] in #2332
- Update SDK to e1e7d73 (2.0.0-4334-f954d14) by @bw-ghapp[bot] in #2334
- Update SDK to 61f4745 (2.0.0-4377-8700dc7) by @bw-ghapp[bot] in #2335
- Update SDK to f713c11 (2.0.0-4444-c0c3ee5) by @bw-ghapp[bot] in #2345
- [deps]: Lock file maintenance by @renovate[bot] in #2002
- Update public suffix list by @github-actions[bot] in #2349
- [bre-1647] cherry pick build fix to rc43 by @aj-bw in #2362
Full Changelog: v2026.2.0-bwpm...v2026.2.1-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/22588327174
Authenticator 2026.2.1 (497)
Overview
- General under-the-hood improvements and bug fixes.
What's Changed
Feature Development
- [PM-26177] feat: Add base64url Data extensions by @iinuwa in #2294
- [PM-31592] feat: Update Sends who can view section by @andrebispo5 in #2325
- [PM-31890] feat: Update Sends password field by @andrebispo5 in #2333
- [PM-26177] feat: Add device auth key to keychain repository by @iinuwa in #2293
- [PM-31593] feat: API level support for Send authentication by @andrebispo5 in #2342
🐛 Bug fixes
- [PM-31687] fix: Prevent flight recorder crash when deleting multiple logs by @matt-livefront in #2324
- [PM-31830] fix: Fix archived cipher update on non-premium user by @fedemkr in #2343
- [PM-31654] fix: Update archive unavailable alert button style by @fedemkr in #2352
- [PM-32358] fix: Add master password reprompt for archive and unarchive by @matt-livefront in #2353
- [PM-32359] fix: Include archived ciphers in file exports by @matt-livefront in #2354
- [PM-32760] hotfix: RC Fix archive response upsert by @fedemkr in #2386
- [PM-32845] bug: RC Fix trusted device not remembered for new SSO users by @fedemkr in #2396
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2331
- [PM-27525] chore: Fix spellings from initial spell check run by @matt-livefront in #2320
- [PM-27524] chore: Update setup-hooks.sh to work with git worktrees by @matt-livefront in #2336
- [PM-27047] chore: Migrate MockBiometricsRepository to Sourcery AutoMockable by @KatherineInCode in #2330
- [PM-26177] chore: Rename authenticator method to vaultAuthenticator by @iinuwa in #2296
- Slim down and align with our current practices by @theMickster in #2338
- [PM-32095] ci: Update Test workflows summary step to list failures only by @vvolkgang in #2341
- [PM-31289] ci: Renovate - remove mint and swift groups by @vvolkgang in #2307
- [PM-31286] ci: Add workflow to enforce PR labels by @vvolkgang in #2344
- [PM-32095] ci: Output full test results log to the github run summary by @vvolkgang in #2356
- [deps]: migrate Renovate config - autoclosed by @renovate[bot] in #2292
- Crowdin Pull by @bw-ghapp[bot] in #2348
- [deps]: Update actions/checkout action to v6 by @renovate[bot] in #2186
- [PM-32095] ci: Run print step when test succeeds in test workflows by @vvolkgang in #2358
- [deps]: Update GitHub Artifact Actions (major) by @renovate[bot] in #2211
📦 Dependency Updates
- Update SDK to 9b59b09 (2.0.0-4315-7f4059e) by @bw-ghapp[bot] in #2326
- Update public suffix list by @github-actions[bot] in #2332
- Update SDK to e1e7d73 (2.0.0-4334-f954d14) by @bw-ghapp[bot] in #2334
- Update SDK to 61f4745 (2.0.0-4377-8700dc7) by @bw-ghapp[bot] in #2335
- Update SDK to f713c11 (2.0.0-4444-c0c3ee5) by @bw-ghapp[bot] in #2345
- [deps]: Lock file maintenance by @renovate[bot] in #2002
- Update public suffix list by @github-actions[bot] in #2349
- [bre-1647] cherry pick build fix to rc43 by @aj-bw in #2362
Full Changelog: v2026.2.0-bwa...v2026.2.1-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/22242374606
Password Manager 2026.2.0 (2924)
Overview
- Fixed several crashes and data decryption issues
- Improved autofill reliability and scrolling performance
- Added new Archive feature
- General stability improvements and better error messages
What's Changed
Feature Development
- [PM-23300] feat: Store session values to keychain so they can be shared between app and autofill by @KatherineInCode in #2239
- [PM-31591] Send email verification feature flag by @andrebispo5 in #2316
- [PM-29672] fix: Move error report metadata to the top to match flight recorder logs by @matt-livefront in #2313
🐛 Bug fixes
- [PM-31181] fix: Fix display toast after view/edit cipher action like delete by @fedemkr in #2290
- [PM-31369] fix: Logout accounts with "on app restart" timeout when app restarts by @matt-livefront in #2301
- [PM-24007] fix: Update keychain to update existing items instead of delete/add by @matt-livefront in #2308
- [PM-31609] fix: Return nil instead of throwing if last active time hasn't been set yet by @matt-livefront in #2322
- [PM-31719] fix: Race condition causing EXC_BAD_ACCESS in FetchedResultsPublisher by @matt-livefront in #2329
- [PM-31654] fix: Handle premium subscription required on Archive group in the vault list by @fedemkr in #2327
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2261
- Crowdin Pull by @bw-ghapp[bot] in #2287
- [PM-31343] Fix dependencies listed under Maintenance by adding a new fallback section to release.yml by @vvolkgang in #2291
- [PM-31392] chore: Fix lint warnings by @matt-livefront in #2302
- use option to determine if release will be marked latest by @AmyLGalles in #2289
- [PM-31436] Consolidate Feature categories in release notes and add labels by @vvolkgang in #2309
- Crowdin Pull by @bw-ghapp[bot] in #2314
- Update SDK to 745b0ea (2.0.0-4113-bed92ca) by @bw-ghapp[bot] in #2271
- [PM-27525] chore: Add spell check git pre-commit hook by @matt-livefront in #2319
📦 Dependency Updates
- Update public suffix list by @github-actions[bot] in #2284
- [PM-31234] [deps]: Update mint minor by @renovate[bot] in #2285
- Update public suffix list by @github-actions[bot] in #2315
- Update SDK to 55d0dad (2.0.0-4254-734b56b) by @bw-ghapp[bot] in #2321
🎨 Other
- [PM-27098] feat: Update some plurals to full-sentence forms to handle polypersonal agreement languages better by @KatherineInCode in #2240
- [PM-27039] Add loading overlay when setting up autofill extension by @fedemkr in #2304
- [PM-31367] Fix v2 encryption account initialization by @quexten in #2303
- [PM-28227] fix: Fix autofill text to insert extension closing after unlocking by @fedemkr in #2312
- [PM-28227] Remove iOS version restriction on the workaround for autofill text to insert by @fedemkr in #2317
- Add settings.json for extra known marketplaces by @SaintPatrck in #2328
New Contributors
- @SaintPatrck made their first contribution in #2328
Full Changelog: v2026.1.1-bwpm...v2026.2.0-bwpm
Builds Source: https://github.com/bitwarden/ios/actions/runs/21762984506
Authenticator 2026.2.0 (468)
Overview
- General under-the-hood improvements and bug fixes.
What's Changed
Feature Development
- [PM-23300] feat: Store session values to keychain so they can be shared between app and autofill by @KatherineInCode in #2239
- [PM-31591] Send email verification feature flag by @andrebispo5 in #2316
- [PM-29672] fix: Move error report metadata to the top to match flight recorder logs by @matt-livefront in #2313
🐛 Bug fixes
- [PM-31181] fix: Fix display toast after view/edit cipher action like delete by @fedemkr in #2290
- [PM-31369] fix: Logout accounts with "on app restart" timeout when app restarts by @matt-livefront in #2301
- [PM-24007] fix: Update keychain to update existing items instead of delete/add by @matt-livefront in #2308
- [PM-31609] fix: Return nil instead of throwing if last active time hasn't been set yet by @matt-livefront in #2322
- [PM-31719] fix: Race condition causing EXC_BAD_ACCESS in FetchedResultsPublisher by @matt-livefront in #2329
- [PM-31654] fix: Handle premium subscription required on Archive group in the vault list by @fedemkr in #2327
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2261
- Crowdin Pull by @bw-ghapp[bot] in #2287
- [PM-31343] Fix dependencies listed under Maintenance by adding a new fallback section to release.yml by @vvolkgang in #2291
- [PM-31392] chore: Fix lint warnings by @matt-livefront in #2302
- use option to determine if release will be marked latest by @AmyLGalles in #2289
- [PM-31436] Consolidate Feature categories in release notes and add labels by @vvolkgang in #2309
- Crowdin Pull by @bw-ghapp[bot] in #2314
- Update SDK to 745b0ea (2.0.0-4113-bed92ca) by @bw-ghapp[bot] in #2271
- [PM-27525] chore: Add spell check git pre-commit hook by @matt-livefront in #2319
📦 Dependency Updates
- Update public suffix list by @github-actions[bot] in #2284
- [PM-31234] [deps]: Update mint minor by @renovate[bot] in #2285
- Update public suffix list by @github-actions[bot] in #2315
- Update SDK to 55d0dad (2.0.0-4254-734b56b) by @bw-ghapp[bot] in #2321
🎨 Other
- [PM-27098] feat: Update some plurals to full-sentence forms to handle polypersonal agreement languages better by @KatherineInCode in #2240
- [PM-27039] Add loading overlay when setting up autofill extension by @fedemkr in #2304
- [PM-31367] Fix v2 encryption account initialization by @quexten in #2303
- [PM-28227] fix: Fix autofill text to insert extension closing after unlocking by @fedemkr in #2312
- [PM-28227] Remove iOS version restriction on the workaround for autofill text to insert by @fedemkr in #2317
- Add settings.json for extra known marketplaces by @SaintPatrck in #2328
New Contributors
- @SaintPatrck made their first contribution in #2328
Full Changelog: v2026.1.1-bwa...v2026.2.0-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/21762985288