SwissCovid is the official contact tracing app of Switzerland

Overview

SwissCovid iOS App



SwissCovid is the official contact tracing app of Switzerland. The app can be installed from the App Store. The app design, UX and implementation was done by Ubique.

Contact tracing

The SwissCovid 2.0 app uses two types of contact tracing to prevent the spread of COVID-19.

With proximity tracing close contacts are detected using the bluetooth technology. For this the DP3T iOS SDK is used that builds on top of the Google & Apple Exposure Notifications. This feature is called SwissCovid encounters.

With presence tracing people that are at the same venue at the same time are detected. For this the CrowdNotifier iOS SDK is used that provides a secure, decentralized, privacy-preserving presence tracing system. This feature is called SwissCovid Check-in.

Please see the SwissCovid documentation repository for more details.

Contribution Guide

This project is truly open-source and we welcome any feedback on the code regarding both the implementation and security aspects.

Bugs or potential problems should be reported using Github issues. We welcome all pull requests that improve the quality the source code.

Please note that the app will be available with approved translations in English, German, French, Italian, Romansh, Albanian, Bosnian, Croatian, Portuguese, Serbian and Spanish. Pull requests for additional translations currently won't be merged.

Platform independent UX and design discussions should be reported in dp3t-ux-screenflows-ch

Repositories

Installation and Building

The project should be opened with the Xcode 11.7 or newer. Dependencies are managed with Swift Package Manager, no further setup is needed.

Provisioning

The project is configured for a specific provisioning profile. To install the app on your own device, you will have to update the settings using your own provisioning profile.

Apple's ExposureNotification Framework requires an entitlement (com.apple.developer.exposure-notification) that is only be available to public health authorities. You will find more information in the Exposure Notification Addendum and you can request the entitlement here.

License

This project is licensed under the terms of the MPL 2 license. See the LICENSE file.

Comments
  • iOS 13.6: Misleading German translation of

    iOS 13.6: Misleading German translation of "Weekly Update" notification

    Starting with iOS 13.6, Apple decided to show a weekly notification to the user:

    Your device identified 0 potential exposures this week, and shared them with SwissCovid.

    To German this was translated to:

    Dein Gerät hat diese Woche 0 mögliche Begegnungen identifiziert und diese Info mit SwissCovid geteilt.

    This is misleading, as it does not say "[...] 0 positiv getestete Begegnungen [...]". Without this distinction, it might be understood that the app does not work at all, even though SwissCovid and Exposure Notifications are working as intended.

    Unknown

    This issue was reported to Apple.

    opened by UBaggeler 15
  • How are parameters passed around?

    How are parameters passed around?

    I have tried understanding how parameters are passed to the app.

    I found some relevant code server side, which feeds into the bit below.

    https://github.com/DP-3T/dp3t-app-ios-ch/blob/44ee83cd9f9911b4725ac42f7a576a2af6c061b1/DP3TApp/Logic/Config/ConfigManager.swift#L127-L137

    Could you please tell me more?

    This is related to https://github.com/PersonalDataIO/CoronaRiskScoring/issues/3

    opened by pdehaye 12
  • ENErrorDomain-Fehler 5

    ENErrorDomain-Fehler 5

    Panel 'Meldungen' shows: Ein unerwarteter Fehler ist aufgetreten. Der Vorgang konnte nicht abgeschlossen werden (ENErrorDomain-Fehler 5.)

    -iPhone SE 2020, iOS 13.5.1 -no previous installation of tracking apps of other countries

    (Some users of the german app seem to have a similar issue: https://github.com/corona-warn-app/cwa-app-ios/issues/766

    bug 
    opened by HenrikMettler 11
  • Generic JWC framework error JWT verifier failed to verify the JWT String signiture

    Generic JWC framework error JWT verifier failed to verify the JWT String signiture

    Hi everyone, thank you for this amazing solution.

    We are from Cape Verde, We are developing covid-19 tracing app based on this implementation and so far we was able to setup the Backend and Android App (with Google approve on Google Play), but using the same Backend we are unable to put iOS app working , on every request we get this error: "Generic JWC framework error JWT verifier failed to verify the JWT String signiture" We have the same public key as the Android App, but only in the iOS App is failing. Can you please point us in the right direction how to better debug and fix this issues.

    public func verify<ClaimType: DP3TClaims>(claimType: ClaimType.Type, httpResponse: HTTPURLResponse, httpBody: Data, claimsLeeway _: TimeInterval = 10) throws -> ClaimType {
         guard let jwtString = httpResponse.value(forHTTPHeaderField: jwtTokenHeaderKey) else {
             throw DP3TNetworkingError.jwtSignatureError(code: 1, debugDescription: "No JWT Token found in the provided response header field \(jwtTokenHeaderKey)")
         }
         do {
             let jwt = try JWT<ClaimType>(jwtString: jwtString, verifier: jwtVerifier)
             let validationResult = jwt.validateClaims(leeway: 10)
             guard validationResult == .success else {
                 throw DP3TNetworkingError.jwtSignatureError(code: 2, debugDescription: "JWT signature don't match")
             }
    
             // Verify the hash
             let claimContentHash = Data(base64Encoded: jwt.claims.contentHash)
             let computedContentHash = Crypto.sha256(httpBody)
             guard claimContentHash == computedContentHash else {
                 throw DP3TNetworkingError.jwtSignatureError(code: 4, debugDescription: "Content Hash missmatch")
             }
    
             return jwt.claims
    
         } catch let error as JWTError {
             throw DP3TNetworkingError.jwtSignatureError(code: 5, debugDescription: "Generic JWC framework error \(error.localizedDescription)")
         }
     } 
    
    opened by rogys88 8
  • Covid-19 Benachrichtigung ist deaktviert

    Covid-19 Benachrichtigung ist deaktviert

    App zeigt Fehler siehe Screenshot.

    IMG_0525

    Vielleicht ist es ein wenig unglücklich formuliert oder aber ein Bug. Habe mal beide Varianten aufgeschrieben.

    A: Ist ist unglücklich formuliert, verständlicher wäre: "COVID-19-Kontaktprotokoll deaktiviert Aktivieren Sie die Funktion COVID-19_Kontaktprotokoll unter Einstellungen -> Datenschutz -> Health -> COVID-19-Kontaktprotokoll, damit das anonyme Tracing funktioniert.

    B: Die Fehlermeldung meint tatsächlich "Benachrichtigungen" im Sinn von "Mitteilungen" und erkennt fälschlicherweise nicht, dass diese aktiv sind.

    Klicke ich auf "Akivieren" werde ich umgeleitet auf die App Einstellungen von SwissCovid App. Dort kann aber nur Siri, Mitteilungen und Hintergrundaktual. eingestellt werden. Ich würde direkt nach Datenschutz -> Health verlinken. Sollte dies nicht gehen, würde ich die Verlinkung komplett sein lassen und nur per Text erklären wie es geht.

    Verlinkung zu App Settings: ezgif com-video-to-gif

    Mitteilungen sind aktiv: IMG_0526

    opened by ghost 7
  • Remove ns and ui class prefixes

    Remove ns and ui class prefixes

    This is unfortunatelly a big pull request, but it remove all NS/UI prefixes that are not from Apple's classes. The issue can be localed under #57 please consider to squash the commits

    opened by seanlilmateus 6
  • “Keine aktuellen Daten” (Check Internet Connection)

    “Keine aktuellen Daten” (Check Internet Connection)

    For a while now I see this alert. The message in a previous version was about VPN (not using any) or insecure Wifi (nope, also happens on 4G). How to fix this?

    image

    opened by getflourish 5
  • Question from IOS when entering the key

    Question from IOS when entering the key

    When entering the key to report a positive test one gets an additional question from the IOS to confirm the release of information. Although the IOS language was set to German, the question is in English and may discourage the average user.

    Operating system version: IOS 13.7

    apple-bug 
    opened by glacierphoto 5
  • IEN11 and Insufficient Memory popup

    IEN11 and Insufficient Memory popup

    On iOS 13.5 the Error IEN11 was observed on some devices. In addition to that we got an insufficient memory popup on that device even though there is plenty of space available. popup

    According to Apple this Issue will be resolved with the release of iOS 13.6.

    bug 
    opened by stmitt 5
  • Geofencing active: Exposure Notification Region Changed

    Geofencing active: Exposure Notification Region Changed

    Using Ver. 1.0.3 (200612.2347.141) on iPhone X running iOS 13.5.1 with Swisscom 41.0 plan, I get every few days a warning "Exposure Notification Region Changed: COVID-19 Exposure Notifications may not be supported by “SwissCovid” in this region. You should confirm which app you are using in Settings.".

    Warning seems to come up in the area of Lake of Zurich (twice in Thalwil, once on the Ferry Meilen>Horgen mid-lake) while on 4G. Last warning was 2020-06-15 at 1708h UTC on the ferry.

    Unclear if warning comes from app itself or from OS API. In any case, it implicitly and explicitly is a (wrongly working) geofencing issue and a s a such may trigger public concerns of a violation of "no GPS used" statements (although it does not look to refer to the core BT/hash function).

    exp_notif_reg_cng

    bug 
    opened by aschlapbach 5
  • Possible Exposure

    Possible Exposure

    Hi, I have a question about the exposures. On my iOS (14.3) log, I can see a matching key from SwissCovid on every daily sinchronization since the 25th December, but I’ve received a warning notification from the app itself. Means that, I had contact with someone who was tested positive, but I had less than 15 minutes contact with him and/or at a distance of more than 1,5 meters? Thank you in advance for your help.

    opened by MauroSwiss88 4
  • Date Formatter is Wrong: YYYY instead of yyyy

    Date Formatter is Wrong: YYYY instead of yyyy

    As noticed by Dr. Andrew Sempere you have a glaring mistake in the date formatter.

    As explained by Apple's documentation:

    . A common mistake is to use YYYY. yyyy specifies the calendar year whereas YYYY specifies the year (of “Week of Year”), used in the ISO year-week calendar. In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year.

    So, all these format strings should contain yyyy and not YYYY:

    :~/swisscovid-app-ios$ fgrep -r YYYY *
    DP3TApp/Screens/Homescreen/InformBroadcast/CheckInSelection/CheckInSelectionViewController.swift:        formatter.dateFormat = "dd.mm.YYYY"
    DP3TApp/Logic/Helpers/DateFormatter.swift:        dateFormatter.dateFormat = "dd.MM.YYYY"
    DP3TApp/Logic/Helpers/DateFormatter.swift:        dateFormatter.dateFormat = "dd. MMMM YYYY"
    DP3TApp/Logic/CheckIn/ProblematicEventsManager.swift:        formatter.dateFormat = "E, dd MMM YYYY HH:mm:ss zzz"
    
    opened by ErMejo74 1
  • NHS (UK) Covid certificates not recognised

    NHS (UK) Covid certificates not recognised

    When scanning a UK-issued COVID certificate, it says 'invalid certificate' even though some of the details seem to be parsed.

    I believe that other apps, including the French anti-covid app, parse it successfully, so would it be possible to add the ability to recognise UK-issued certificates?

    opened by anagnoad 0
  • How to reset Swisscovid after temporary Immunization

    How to reset Swisscovid after temporary Immunization

    The day I got sick I harrassed my Cantonal Medical Officer to issue me a Covid Code the same day. (Good, Swiss covid App law is enabling more managers to issue Covidcodes)

    That concluded Exposure Tracking, which looks like this: 9473430C-6DCB-4994-8FB2-E5FE1E28EAAC

    Now as I am being released out of isolation, they told me I am not subject to infection or infecting for 2-3 months.

    Is there a possibility to reset Exposure Tracking after having activated the app? I may need the app back in 2-3 months.

    opened by mosea3 2
  • Add Cantonal Orders

    Add Cantonal Orders

    With the cantonal orders changing by the day, it would be useful to have another tab to see where masks are required, maximum people per room/event, and so on.

    I know this is a bit out of scope, but I think it would be the right place to help people staying up-to-date and give them recent information about cantonal orders.

    opened by einfallstoll 6
  • App sharing?

    App sharing?

    I just updated to 1.1.0. I see in the description of what's new "New feature: app sharing". What is app sharing? Does this have anything to do with sharing data with other nations' backends?

    opened by r-r-liu 2
Releases(2.4.0-220321.1309.435)
Owner
SwissCovid
SwissCovid is the official contact tracing app of Switzerland.
SwissCovid
COVID Certificate is the official app for storing and presenting COVID certificates issued in Switzerland.

COVID Certificate is the official app for storing and presenting COVID certificates issued in Switzerland. The certificates are kept and checked locally on the user's phone.

Swiss Admin 111 Dec 19, 2022
Covid 19 Tracing Mobile Application

PVAMU-COVID19-APP Covid 19 Tracing Mobile Application This is my Senior Design Project 2021-2022 Mobile applications are the new gateway to have easy

null 0 Nov 15, 2021
An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and more.

SpotifyClone An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and

Gabriel Denoni 11 Dec 27, 2021
YTS-App - Repository for the official Yeshivat Torat Shraga App

Yeshivat-Torat-Shraga Official repository for the Yeshivat Torat Shraga app. Wha

Yeshivat Torat Shraga 4 Dec 15, 2022
Official repository for Torat-Shraga app

Yeshivat-Torat-Shraga Official repository for the Yeshivat Torat Shraga app. What is this repository? This is where all code written for the Torat Shr

BenjiTusk 2 Jan 6, 2022
Koronavilkku - the official COVID-19 Exposure Notifications app

Koronavilkku iOS app Koronavilkku is the official COVID-19 Exposure Notifications app for Finland, maintained by the Finnish Institute for Health and

Finnish Institute for Health and Welfare (THL) 76 Oct 7, 2022
In this mini app covered the concepts like basics of SwiftUI and Navigations and Animations and List with CRUD functions and MVVM and App Launch and App icons adding and also applied persistence using UserDefaults Concept.

TodoList In this application used the concepts from the beginner level project of SwiftUI_Evolve_1 The following concepts covered in this mini app Swi

Sivaram Yadav 2 Dec 4, 2021
Todo is an iOS App written in Swift. This app is used for an online video training course. This app demonstrates how to use UITableViewController.

Todo Todo is an iOS App written in Swift. This app is used for an online video training course. This app demonstrates how to use UITableViewController

Jake Lin 273 Dec 29, 2022
Porting the example app from our Advanced iOS App Architecture book from UIKit to SwiftUI.

SwiftUI example app: Koober We're porting the example app from our Advanced iOS App Architecture book from UIKit to SwiftUI and we are sharing the cod

raywenderlich 55 Dec 19, 2022
Quotes App is quotes browsing app which is built with Quotable Free API completely in SwiftUI.

Quotes App is quotes browsing app which is built with Quotable Free API completely in SwiftUI. You can watch the whole journey of building this

Dheeraj Kumar Sharma 32 Nov 22, 2022
SwiftUI App to view the App Activity Record from iOS 15

App Activity Viewer A viewer for the iOS 15 "Record App Activity" export. FAQ How do I create an App Activity Report? Go to the "Settings" app of your

Jannik Arndt 13 Nov 16, 2022
iOS app for Ribbit, Broker API Reference App

Ribbit Reference Implementation (iOS) The reference implementation for designing the iOS user interface of a broker-dealer trading application with th

Alpaca 23 Dec 14, 2022
The app provides additional actions for the Shortcuts app on macOS and iOS.

Actions Supercharge your shortcuts The app provides additional actions for the Shortcuts app on macOS and iOS. Submit action idea (Submit an issue bef

Sindre Sorhus 1.2k Dec 29, 2022
A todo list iOS app developed with swift5 and coredata to persist data, this app help people organise their tasks on categories.

A todo list iOS app developed with swift5 and coredata to persist data, this app help people organise their tasks on categories. The app is simple, intuitive, and easy to use and update tasks informations.

null 1 Oct 10, 2022
The app demonstrates how to use Firebase in a SwiftUI iOS app

Firebase SwiftUIDemo app This app demonstrates how to use Firebase in a SwiftUI iOS app. Firebase Setup Go to firebase.com Click new project. Copy app

Andrew Gholson 0 Nov 28, 2021
Stocks-App - App that allows the user to track stocks of their choice

Stocks-App App that allows the user to track stocks of their choice (Coming soon

Eli Hartnett 0 Jul 9, 2022
NetFun-ios-app - iOS app using BFF service to display processed data.

NetFun-ios-app iOS app using BFF service to display processed data. The iOS demo developed in SwiftUI and it uses BFF service to show expected UI comp

Minhaz Panara 0 Jan 3, 2022
IOS-Quiz-App- - A trivia quiz app built with Swift using MVC structure

Quiz App A trivia quiz app built with Swift using MVC structure. Default Quiz

null 0 Feb 25, 2022