{"id":13523384,"url":"https://github.com/Governikus/AusweisApp","last_synced_at":"2025-04-01T00:31:50.626Z","repository":{"id":22386850,"uuid":"91797749","full_name":"Governikus/AusweisApp","owner":"Governikus","description":"Der offizielle eID-Client des Bundes.","archived":false,"fork":false,"pushed_at":"2024-05-15T13:21:03.000Z","size":37008,"stargazers_count":510,"open_issues_count":4,"forks_count":77,"subscribers_count":57,"default_branch":"community","last_synced_at":"2024-05-21T12:51:29.283Z","etag":null,"topics":["apdu","ausweisapp2","eid","smartcard"],"latest_commit_sha":null,"homepage":"https://www.ausweisapp.bund.de/","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Governikus.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.officially.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-19T11:05:11.000Z","updated_at":"2024-06-04T16:35:15.425Z","dependencies_parsed_at":"2023-11-06T12:43:25.926Z","dependency_job_id":"990c7b08-e128-4c2e-8295-f97ea248b4c6","html_url":"https://github.com/Governikus/AusweisApp","commit_stats":null,"previous_names":["governikus/ausweisapp"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Governikus%2FAusweisApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Governikus%2FAusweisApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Governikus%2FAusweisApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Governikus%2FAusweisApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Governikus","download_url":"https://codeload.github.com/Governikus/AusweisApp/tar.gz/refs/heads/community","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222569285,"owners_count":17004252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apdu","ausweisapp2","eid","smartcard"],"created_at":"2024-08-01T06:00:59.539Z","updated_at":"2025-04-01T00:31:50.608Z","avatar_url":"https://github.com/Governikus.png","language":"C++","funding_links":[],"categories":["Open Source (FOSS) projects"],"sub_categories":["OZG Progress tracking"],"readme":"AusweisApp\n==========\n\nKontakt\n-------\n| Governikus GmbH \u0026 Co. KG\n| Hochschulring 4\n| 28359 Bremen\n| support@ausweisapp.de\n\n\nLizenz\n------\nDer vorliegende Quellcode wird unter der EUPL v1.2 bereitgestellt.\nDie Datei ``LICENSE.officially.txt`` gilt ausschließlich für\ndie offizielle Version der AusweisApp, welche von der Governikus GmbH \u0026 Co. KG\nim Auftrag des Bundes unter https://www.ausweisapp.bund.de bereitgestellt wird.\n\n\nToolchain / Bibliotheken\n------------------------\nDie Einrichtung der Toolchain wird im Unterordner ``./libs``\nbzw. in der darin enthaltenen README erläutert.\n\nDie separate README und das Skript unter \"libs\" dienen dem Aufsetzen\nder notwendigen Build-Umgebung und dem automatisierten Bauen der\nnotwendigen Bibliotheken mit den entsprechenden Patches.\n\n\n\nBuild\n-----\nUm die AusweisApp zu bauen, ist es notwendig, ein Makefile mittels CMake zu\ngenerieren. Dazu kann CMake auf der Kommandozeile oder mit der von CMake\nmitgelieferten CMake-GUI ausgeführt werden.\n\nCMake erkennt während der Konfigurationszeit automatisch die Abhängigkeiten.\nDazu kann die Variable *CMAKE_PREFIX_PATH* verwendet werden, um die Toolchain CMake\nbekannt zu machen. Alternativ zu `%PATH%` bzw. `$PATH` können alle Ordner, die dort\nfür den Build eingetragen wurden, über diesen Mechanismus an CMake übergeben werden.\n\nAls Generator für Makefiles sollte unter Windows für MinGW \"MinGW Makefiles\" und\nfür MSVC \"NMake Makefiles\" oder \"Ninja\" gewählt werden.\n\nBeim Generieren des Makefiles ist zu beachten, dass die AusweisApp nur sogenannte\n\"out of source tree\"-Builds erlaubt. Daher ist die empfohlene Variante von CMake\nzwingend einzuhalten, und der Build-Ordner darf sich nicht im Source-Ordner\nbefinden.\n\nBeispiel über die CLI:\n\n::\n\n   C:/AusweisApp/\n   C:/qt/\n   C:/build/\n\n::\n\n   C:\u003ecd C:/build\n   C:\\build\u003ecmake -G \"MinGW Makefiles\" -DCMAKE_PREFIX_PATH=C:/qt/dist C:/AusweisApp -DCMAKE_BUILD_TYPE=release\n   -- The CXX compiler identification is GNU 11.2.0\n   -- Detecting CXX compiler ABI info\n   -- Detecting CXX compiler ABI info - done\n   -- Check for working CXX compiler: C:/mingw64/bin/g++.exe - skipped\n   -- Detecting CXX compile features\n   -- Detecting CXX compile features - done\n   -- VENDOR: Governikus GmbH \u0026 Co. KG\n   -- VERSION: 1.24.0\n   -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)\n   -- Found Java: C:/Program Files/Java/jre1.8.0_241/bin/java.exe (found version \"1.8.0.241\") found components: Runtime\n   -- Found Hg: C:/Program Files/TortoiseHg/hg.exe (found version \"5.6.1\")\n   -- DVCS tag: tip\n   -- DVCS distance: 23\n   -- DVCS branch: default\n   -- DVCS phase: public\n   -- DVCS revision: 283adbf18b4e+\n   -- No documentation will be generated\n   -- CMAKE_INSTALL_PREFIX: C:/Program Files (x86)/AusweisApp\n   -- CMAKE_BUILD_TYPE: RELEASE\n   -- CMAKE_PREFIX_PATH: C:/qt/dist\n   -- CMAKE_INCLUDE_PATH:\n   -- CMAKE_LIBRARY_PATH:\n   -- CMAKE_SYSTEM_PREFIX_PATH: C:/Program Files;C:/Program Files (x86);C:/Program Files/CMake;C:/Program Files (x86)/AusweisApp\n   -- CMAKE_SYSTEM_INCLUDE_PATH:\n   -- CMAKE_VERSION: 3.23.2\n   -- CMAKE_SYSTEM_PROCESSOR: AMD64\n   -- CMAKE_CXX_SIMULATE_ID:\n   -- BUILD_SHARED_LIBS: OFF\n   [...]\n\n\nUm die mobile Variante der AusweisApp zu bauen, benötigt man je nach Plattform zusätzliche\nexterne Komponenten, die in der README in ``./libs`` im Abschnitt Android / iOS beschrieben\nsind.\n\n\n\nAndroid\n^^^^^^^\nBei Android ist zu beachten, dass ein CMAKE_TOOLCHAIN_FILE angegeben werden muss.\n\n::\n\n   $ cd build\n   $ cmake -DCMAKE_PREFIX_PATH=/home/governikus/Toolchain/dist -DCMAKE_TOOLCHAIN_FILE=../AusweisApp/cmake/android.toolchain.cmake ../AusweisApp\n   $ make\n   $ make install\n   $ make apk\n\nUnter dem Ordner \"./dist/bin\" ist nun ein \"AusweisApp...apk\" erstellt worden.\n\nSofern der Parameter *CMAKE_BUILD_TYPE* auf RELEASE gesetzt wird, sind folgende\nUmgebungsvariablen notwendig um das APK zu signieren.\n\n::\n\n   QT_ANDROID_KEYSTORE_PATH=/home/governikus/AusweisApp.apk.keystore.jks\n   QT_ANDROID_KEYSTORE_ALIAS=ausweisapp\n   QT_ANDROID_KEYSTORE_STORE_PASS=123456\n\nWie schon bei der Toolchain wird standardmäßig die Architektur \"armeabi-v7a\" verwendet.\nDies kann mittels CMake Parameter \"-DCMAKE_ANDROID_ARCH_ABI=x86\" verändert werden.\n\n\n\niOS\n^^^\nBei iOS wird ein Bundle gebaut, welches mit einem zusätzlichen Befehl in eine IPA-Datei\neingebettet werden kann. Zu beachten ist vor allem, dass in der Umgebungsvariable\n*PROVISIONING_PROFILE* das jeweilige Profil verwendet wird, welches unter XCode\neingerichtet ist. Im Ordner \"~/Library/MobileDevice/Provisioning Profiles\"\nsind diese ebenfalls einsehbar.\nUnter Umständen kann es zu Berechtigungsproblemen mit XCode und dem Zugriff auf\ndie Keys kommen. Dabei ist es oft hilfreich, die Keys im macOS-Schlüsselbund\nfreizuschalten bzw. den Schlüsselbund freizugeben.\n\nsecurity unlock-keychain -pPASSWORD ${HOME}/Library/Keychains/login.keychain\n\nFür iOS wird die AusweisApp mittels XCode gebaut!\n\n::\n\n   $ cd build\n   $ cmake -DCMAKE_PREFIX_PATH=/Users/governikus/Toolchain/dist -DCMAKE_TOOLCHAIN_FILE=../AusweisApp/cmake/iOS.toolchain.cmake -DCMAKE_BUILD_TYPE=MinSizeRel ../AusweisApp -GXcode\n   $ xcodebuild -configuration MinSizeRel -archivePath AusweisApp.xcarchive -scheme AusweisAppBinary -destination \"generic/platform=iOS\" archive\n   $ xcodebuild -configuration MinSizeRel -archivePath AusweisApp.xcarchive -exportArchive -exportOptionsPlist exportOptions.plist -exportPath .\n\n\nIm Build-Ordner befindet sich nun ein *.ipa und ein *.xcarchive, welches jeweils das\nsignierte Bundle enthält!\n\n\n\nPackages\n--------\nNachdem die Build-Umgebung eingerichtet ist, kann je nach System ein Package erstellt werden.\n\n- Unter Windows ist hierfür noch das WiX Toolset (http://wixtoolset.org/ Getestet: 3.8 bis 3.10)\n  notwendig.\n  Mittels \"mingw32-make package\" wird die AusweisApp gebaut und ein MSI Paket bereitgestellt.\n\n- Unter macOS wird mittels \"make package\" die AusweisApp gebaut und ein DMG bereitgestellt.\n\n- Um ein APK für Android zu bauen, sind zwei Schritte notwendig, da CMake das Format bisher\n  nicht unterstützt. Daher sind nach der Konfiguration des Projektes folgende Befehle notwendig,\n  um ein endgültiges APK zu erhalten:\n\n  ::\n\n     $ make install\n     $ make apk\n\n\n\nReproduzierbarer Build\n----------------------\nWir sind stets bemüht, den Build des offiziellen Binaries der AusweisApp nachvollziehbar zu gestalten.\nDaher haben wir unter anderem eine README in dem Unterordner ``./libs`` hinterlegt, die den Aufbau\nder Buildumgebung und den Build der externen Bibliotheken beschreibt.\nAnhand dieser Anleitung können Sie nachvollziehen, wie unser internes Buildsystem aufgebaut ist und\nwelche Compiler bzw. Compiler-Versionen wir verwenden.\n\nIm Unterordner ``./resources/jenkins/`` ist es möglich, unsere Konfiguration des CI-Servers einzusehen.\nDie Konfiguration besteht aus mehreren Dockerfiles und JobDSL-Dateien.\n\nAnhand dieser Skripte ist es möglich, den Build der AusweisApp zu reproduzieren.\nEin Unterschied zum offiziellen Binary sollte lediglich in eventuellen Pfaden,\neinem Datum bzw. Zeitstempel und Signaturen bestehen.\n\n.. seealso::\n  https://reproducible-builds.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGovernikus%2FAusweisApp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGovernikus%2FAusweisApp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGovernikus%2FAusweisApp/lists"}