The Bitwarden mobile application is written in C# with Xamarin Android, Xamarin iOS, and Xamarin Forms.

Last update: May 15, 2022

Github Workflow build on master Crowdin Join the chat at https://gitter.im/bitwarden/Lobby

Bitwarden Mobile Application

Get it on Google Play Get it on Google Play

The Bitwarden mobile application is written in C# with Xamarin Android, Xamarin iOS, and Xamarin Forms.

Build/Run

Requirements

Run the app

  • Open the solution file in Visual Studio.
  • Restore the nuget packages.
  • Build and run the app.

Contribute

Code contributions are welcome! Visual Studio with Xamarin is required to work on this project. Please commit any pull requests against the master branch. Learn more about how to contribute by reading the CONTRIBUTING.md file.

Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the SECURITY.md file.

GitHub

https://github.com/bitwarden/mobile
Comments
  • 1. App Crash on iOS 15 Beta 5

    I am able to log in. Regardless of whether or not I make any changes to the settings (enable FaceID or not, change timeouts, etc.) the app will immediately close out as soon as I reopen the app. An ips is generated and the stack racestarts with (if it helps):

    "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"}, "asi" : {"libsystem_c.dylib":["abort() called"]}, "lastExceptionBacktrace" : [{"imageOffset":628456,"imageIndex":5},{"imageOffset":89956,"imageIndex":6},{"imageOffset":1532244,"imageIndex":5},{"imageOffset":188548,"imageIndex":5},{"imageOffset":184768,"imageIndex":5},{"imageOffset":1792184,"imageIndex":11},{"imageOffset":767644,"imageIndex":5},{"imageOffset":836336,"imageIndex":5},{"imageOffset":23652,"imageIndex":5},{"imageOffset":46084,"imageIndex":5},{"imageOffset":126920,"imageIndex":5},{"imageOffset":5004,"imageIndex":8},{"imageOffset":5340688,"imageIndex":9},{"imageOffset":2713072,"imageIndex":9},{"imageOffset":5973944,"imageIndex":3},{"imageOffset":5262784,"imageIndex":3},{"imageOffset":5262660,"imageIndex":3},{"imageOffset":595272,"imageIndex":3},{"imageOffset":4415840,"imageIndex":3},{"imageOffset":284552,"imageIndex":4},{"imageOffset":1055304,"imageIndex":4},{"imageOffset":1080480,"imageIndex":4},{"imageOffset":143556,"imageIndex":4},{"imageOffset":34310384,"imageIndex":3},{"imageOffset":595088,"imageIndex":3},{"imageOffset":105252,"imageIndex":10}], "faultingThread" : 0, "threads" : [{"triggered":true,"id":371738,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":10000000},{"value":5120},{"value":18446744069414586880},{"value":9007292605623196026},{"value":9007292609895505146},{"value":1000},{"value":12532993},{"value":16393},{"value":4763844608},{"value":16383},{"value":33922},{"value":328},{"value":4345218432},{"value":0},{"value":6},{"value":259},{"value":4345218656},{"value":4749022304},{"value":4764860752},{"value":4763726336},{"value":4379446488},{"value":4764860928},{"value":5},{"value":4309885279}],"flavor":"ARM_THREAD_STATE64","lr":{"value":8390571060},"cpsr":{"value":1073741824},"fp":{"value":6161400176},"sp":{"value":6161400144},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":7425071544,"matchesCrashFrame":1},"far":{"value":6165807040}},"name":"tid_103","queue":"com.apple.main-thread","frames":[{"imageOffset":31160,"imageIndex":0},{"imageOffset":29748,"imageIndex":1},

    Environment

    • Operating system: iOS 15 Beta 5
    • Build Version: 2.11.1 (edited)
    Reviewed by sso-bitwarden at 2021-08-11 07:14
  • 2. Password vault not syncing at every login

    Whenever I add/update a password on a Laptop or Desktop, it’s not automatically syncing to my iPhone even though I authenticate my phone with FaceId. Push notifications are enabled to the app. I am using iOS 12 on iPhone X

    Reviewed by pavankjadda at 2019-02-05 21:16
  • 3. [Android] Auto-fill doesn't work on Samsung browser Stable and Beta.

    Describe the Bug

    Like in topic

    Steps To Reproduce

    Try to login via auto-fill on Samsung browser.

    Expected Result

    Bitwarden auto-fill suggest you to fill passwords.

    Actual Result

    There isn't suggestion to auto-fill login and password

    Screenshots or Video

    Screenshot_20200510-223101_Samsung Internet

    Environment

    • Device: Samsung Galaxy S10
    • Operating system: Android Q OneUI 2.1
    • App Build Version: 2.3.1 (2413)
    Reviewed by the4anoni at 2020-05-10 20:42
  • 4. The latest Android APP (2.3.1) cannot automatically fill in the account and password.

    The latest Android APP (2.3.1) cannot automatically fill in the account and password. Specifically, when the input box is clicked, the auto-fill window pops up quickly and disappears. There is no time to choose. Model is Huawei honor V20, system version Android 10

    Reviewed by qw4096 at 2020-03-19 04:03
  • 5. Android O: Autofill API

    Hooray, Android is getting proper support for password management apps!

    https://developer.android.com/preview/features/autofill.html

    Currently only available in beta builds of Android O, for very specific Google devices. It'll be quite a while before we see phones actually running whatever the next dessert will be called, so the accessibility service will stick around.

    Reviewed by nogweii at 2017-04-11 22:36
  • 6. Auto fill not working properly on some apps

    When I click on the matching result bitwarden is not filling the password fields. But then if I click username box and then click again the password box it will autofil.

    Steps :

    1, Open Myntra app 2, Clicked password field 3, Bitwarden notification shows 4, Typed pin and shows correct matching result 5, Clicked matching result 6, Nothing happens. 7, Clicked username name field and then again clicked password field. 8, It got auto filled .

    Auto fill method : password field focused Android version 7.1.1 Bitwarden version : 1.12.1

    Apps that I found this issue

    1, https://play.google.com/store/apps/details?id=com.myntra.android

    2, https://play.google.com/store/apps/details?id=com.flipkart.android

    Reviewed by jerryn70 at 2017-11-03 08:42
  • 7. Android - Bitwarden does not lock after the Vault Timeout duration passes.

    Describe the Bug

    The Bitwarden Android client does not lock and require unlocking via master password or Biometrics after the Vault Timeout duration passes. Tested with 1, 5, and 15 minutes.

    Steps To Reproduce

    1. Open Bitwarden.
    2. Go to Settings.
    3. Set your Vault Timeout to 1 minute.
    4. Wait 2 minutes.
    5. Open your Bitwarden application.

    Expected Result

    To be required to unlock the vault.

    Actual Result

    Vault is unlocked.

    Screenshots or Videos

    N/A.

    Environment

    • Device: Samsung Note 10+.
    • Operating system: Android 10.
    • Build Version: Bitwarden 2.7.2 (3300).
    • Is this a Beta release? N.

    Additional Context

    N/A.

    Reviewed by SergeantConfused at 2020-12-28 10:34
  • 8. There is a problem connecting to the server

    I can't log into my Bitwarden account through the Android app. It keeps loading for several minutes and gives the error. I can login via web vault in Chrome for Android and I can log in to other apps, only Bitwarden gives errors. I already deleted and redownloaded the app and restarted my phone (Galaxy S5) as well.

    Reviewed by JoaoMXN at 2018-06-28 23:07
  • 9. Android app force closes on start

    Logcat attached. Device is a Leeco Le Pro 3. Error has occured on Omnirom, AICP and Paranoid Android for this device. (7.x Nougat) Fresh install. Using OpenGapps.

    logcat.txt

    Reviewed by famewolf at 2018-01-24 20:07
  • 10. Autofill in browsers on Android P

    Android P, which is currently in Beta, now allows apps to take advantage of the Autofill framework in browsers without using a full Accessibility service. It requires that both the browsers and apps update things to take advantage of this.

    Currently, bitwarden autofill DOES work in android P, but only in apps. So, I wanted to post some info I found with regards to getting autofill working in browsers to since using the autofill framework is always going to be better than using the accessibility service. I hope it can be implemented!

    https://blog.dashlane.com/android-p-autofill/ https://developer.android.com/preview/features/autofill#compat-mode

    I'm signed up for the bitwarden Android beta and running Android P, so if you make any changes and would like some feedback, I would be happy to help.

    Reviewed by szale9001 at 2018-06-04 22:33
  • 11. Attachments won't decrypt

    Device: Samsung Galaxy S8 Android: 7.0 App V: 1.14.1 Issue: Added attachment to Family Collection using the browser. I can download attachment in the browser, I do not see the attachment when viewing the item though (not sure if i should?). When i sync on my Mobile App, i click on the item, i also dont see any visual attachment on the item, I click on "attachments" button, and see the attachment file size, delete and the text " [error: cannot decrypt]"

    Expected: I would expect to see the attachment in the item view for both browser and android.

    Reviewed by rtloeffler at 2018-01-25 20:10
  • 12. My vault frame drops on scrolling

    Steps To Reproduce

    The very first "My Vault" menu after opening/unlocking bitwarden app vault.

    Expected Result

    Scrolling has to be smooth

    Actual Result

    Scrolling lags & frame drops occur.

    Screenshots or Videos

    Can't show (due to privacy)

    Additional Context

    Tried disabling website icons too. Same behaviour.

    Operating System

    Android

    Operating System Version

    Lineage OS 18.0 (R)

    Device

    Redmi Note 10

    Build Version

    2.18.1

    Beta

    • [ ] Using a pre-release version of the application.
    Reviewed by pc00per at 2022-05-15 11:58
  • 13. PS-592 Name field is not prioritised in search results #1687

    Type of change

    • [X] Bug fix
    • [ ] New feature development
    • [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc)
    • [ ] Build/deploy pipeline (DevOps)
    • [ ] Other

    Objective

    When search for ciphers or sends give priority to matches with the Name property, show them first in the results list.

    Code changes

    • SearchService.cs: While running the search methods, created two list, one for matches and another for matches with lower priority. After the search, merged the two lists and retuned the results. This ensures that we only iterate through the list once and give it the order we desire.

    Screenshots

    image

    Before you submit

    • [ ] I have added unit tests where it makes sense to do so (encouraged but not required)
    • [ ] This change requires a documentation update (notify the documentation team)
    • [ ] This change has particular deployment requirements (notify the DevOps team)
    Reviewed by andrebispo5 at 2022-05-12 15:38
  • 14. PS-591 Fix avoid ambiguous characters #1664

    Type of change

    • [X] Bug fix
    • [ ] New feature development
    • [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc)
    • [ ] Build/deploy pipeline (DevOps)
    • [ ] Other

    Objective

    Fix avoid ambiguous characters option. On mobile the value was being stored locally inverted of what the user had selected. Wasn't noticed during the session due to caching.

    Code changes

    Refactor the name of the property Ambiguous to AvoidAmbiguous, this naming was misleading. Fixed bug where the boolean value for the AvoidAmbiguous property was being stored inverted.

    • GeneratorPageViewModel.cs:140: value was being stored inverted of what UI was showing

    Before you submit

    • [ ] I have added unit tests where it makes sense to do so (encouraged but not required)
    • [ ] This change requires a documentation update (notify the documentation team)
    • [ ] This change has particular deployment requirements (notify the DevOps team)
    Reviewed by andrebispo5 at 2022-05-12 09:35
  • 15. PS-518 - Add setting to block AppCenter / Analytics - Mobile

    Type of change

    • [ ] Bug fix
    • [X] New feature development
    • [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc)
    • [ ] Build/deploy pipeline (DevOps)
    • [ ] Other

    Objective

    Add a new entry in settings to allow user to disable sending information of crash reports to Appcenter.

    Code changes

    • SettingsPageViewModel.cs: Added new method, AppCenterReportingAsync, to handle activation and deactivation of Crashes SDK. All changes are protected by compilation tags and shouldn't appear in FDroid build or Debug (Appcenter is only running in release compilations).
    • SettingsPage.xaml: Add call to AppCenterReportingAsync

    Testing Requirements

    Note: This change will only not appear in Debug or FDroid builds.

    1. Login into your account
    2. Go to Settings tab
    3. Scroll down to Others section
    4. Click on Report crash logs

    Screenshots

    image image

    Before you submit

    • [ ] I have added unit tests where it makes sense to do so (encouraged but not required)
    • [ ] This change requires a documentation update (notify the documentation team)
    • [ ] This change has particular deployment requirements (notify the DevOps team)
    Reviewed by andrebispo5 at 2022-05-12 09:03
  • 16. iOS 12.5.5 Blank screen for password history

    Steps To Reproduce

    1. Go to Account
    2. Click on any account
    3. Scroll down to bottom
    4. Click onto a count of password changed

    Expected Result

    Password history.

    Actual Result

    Blank screen.

    Screenshots or Videos

    Additional Context

    No response

    Operating System

    iOS

    Operating System Version

    12.5.5

    Device

    iPhone6

    Build Version

    1.18.0 (1672)

    Beta

    • [ ] Using a pre-release version of the application.
    Reviewed by june8-o at 2022-05-11 19:31
  • 17. iOS: broken/missing character displays for linked and boolean custom fields

    Steps To Reproduce

    1. Go to view a cipher/item with custom fields for "Linked" and "Boolean"

    Expected Result

    Linked custom field to show the linked icon (the chain/link glyph), and for the boolean to show a checkbox-like icon

    Actual Result

    The icons show up as broken/unknown glyph

    Screenshots or Videos

    cropped screenshot of custom fields in a cipher, showing the 'box with a question mark' unknown glyph icon for a linked and a boolean custom field

    Additional Context

    No response

    Operating System

    iOS

    Operating System Version

    15.4.1

    Device

    iPhone SE (2020)

    Build Version

    2.18.0 (1672)

    Beta

    • [ ] Using a pre-release version of the application.
    Reviewed by patrickhlauke at 2022-05-11 07:37
iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android).
iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android).

FinanceReactNative iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android). Data is pulled from Yahoo Finance

May 10, 2022
Puma - A set of build utilities to automate mobile application development and deployment
Puma - A set of build utilities to automate mobile application development and deployment

Puma → https://github.com/onmyway133/Swiftlane Puma is a set of build utilities

Mar 5, 2022
React Native utility library around image and video files for getting metadata like MIME type, timestamp, duration, and dimensions. Works on iOS and Android using Java and Obj-C, instead of Node 🚀.

Qeepsake React Native File Utils Extracts information from image and video files including MIME type, duration (video), dimensions, and timestamp. The

Apr 30, 2022
Restaurant - Educational application from the Apple Mobile Development Course for MDA
Restaurant - Educational application from the Apple Mobile Development Course for MDA

Restaurant Educational application from the Apple Mobile Development Course for

Jan 14, 2022
Blazing⚡️Fast BTC and ETH Wallet Generator library for React Native, Android and iOS

Blazing ⚡️ Fast BTC and ETH Wallet Generator library for React Native, Android and iOS.

Feb 21, 2022
Kotlin Multiplatform sample with SwiftUI and Compose (Desktop and Android) clients. Heavily inspired by Wordle game.
Kotlin Multiplatform sample with SwiftUI and Compose (Desktop and Android) clients. Heavily inspired by Wordle game.

WordMasterKMP Kotlin Multiplatform sample heavily inspired by Wordle game and also Word Master and wordle-solver samples. The main game logic/state is

Apr 19, 2022
🏀 iOS and Android NBA app created with React Native
🏀 iOS and Android NBA app created with React Native

Swish An iOS and Android NBA app created with React Native. If you would like to request a feature, find a bug, have a question, or would like to leav

Feb 10, 2022
The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS

Outline Client The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is design

May 20, 2022
Respresso is a centralized resource manager for shared Android, iOS and Web frontend projects
Respresso is a centralized resource manager for shared Android, iOS and Web frontend projects

Introduction Respresso is a centralized resource manager for shared Android, iOS and Web frontend projects. It allows you to simply import the latest

Jan 28, 2022
Mi Card App for Android & IOS in Flutter
Mi Card App for Android & IOS in Flutter

Mi Card Our Goal Now that you've seen how to create a Flutter app entirely from scratch, we're going to go further and learn more about how to design

Nov 6, 2021
Magic 8Ball App for Android & IOS in Flutter
Magic 8Ball App for Android & IOS in Flutter

Magic 8 Ball ?? Our Goal The objective of this challenge is to solidify what you've learn't in the Dicee tutorial. This app will guide you through the

Nov 6, 2021
Keybase Go Library, Client, Service, OS X, iOS, Android, Electron
Keybase Go Library, Client, Service, OS X, iOS, Android, Electron

Keybase Hi, and welcome to the Keybase client repo. All our client apps (macOS, Windows, Linux, iOS, and Android) are being actively developed in this

May 17, 2022
An Android Wear style confirmation view for iOS
An Android Wear style confirmation view for iOS

GoogleWearAlert Objective-C version kindly written by dimohamdy - https://github.com/dimohamdy/GoogleWearAlert An Android Wear style confirmation view

Apr 21, 2022
Kind of tired to need an Android Device on me, just to read manga, so here we are.

Dokusho Kind of tired to need an Android Device on me, just to read manga, so here we are. I am going to prioritize feature based on how I feel and no

May 18, 2022
MicrofrontendGenerator - Script for creating micro frontends for Mobile in a simple and easy way

Introdução Template para a criação de SDK iOS. Existem duas opções de template:

Feb 28, 2022
Codepath-intro-prework - Hello World iOS App | Prework Project for CodePath Intro to Mobile App Development
Codepath-intro-prework - Hello World iOS App | Prework Project for CodePath Intro to Mobile App Development

Hello World iOS App App Description Prework Project for CodePath Intro to Mobile

Jan 25, 2022
CodePath-iOS-Prework - Prework project for Intro to Mobile App Development course on CodePath
CodePath-iOS-Prework - Prework project for Intro to Mobile App Development course on CodePath

CodePath iOS Prework App Description This app has an input field, text, and seve

Feb 2, 2022
This is a simple mobile app which is connect to the Twitter API
This is a simple mobile app which is connect to the Twitter API

Project 3 - My Twitter My Twitter is a basic twitter app to read your tweets. Time spent on two parts: 8.5 hours spent in total Twitter - Part II This

Oct 16, 2021
A simple Hacker News mobile client

A simple Hacker News mobile client. Overview This app was built with the Hacker News API This is one of my first apps outside of a tut

Nov 29, 2021