Commit Graph
20 Commits
Author SHA1 Message Date
Alex Jbanca 9f06b8d243 fix: Align min ios version with Qt6.11 2026-06-16 14:22:16 -04:00
Siddarth Kumar 6e232c10d0 ios: upgrade to SDK 26 2026-05-06 08:53:30 +05:30
Sale Djenic 74c9a24e39 fix: ci ios build failing
The issue only manifests when:

The mobile Makefile exports CC=clangWrap.sh (via EnvVariables.mk)
clangWrap.sh has the echo to stdout
Go's linker discovers ar via CombinedOutput() which captures both stdout and stderr
When invoked through the mobile Makefile, CC=clangWrap.sh leaks into the Go build's environment (despite the shell-level CC="$(xcrun ...)" override in the status-go recipe). Go's linker then runs clangWrap.sh --print-prog-name ar, and the echo output to stdout gets combined with clang's actual output, corrupting the ar path.

Removing the echo fixed the issue.
2026-04-20 07:58:59 +02:00
Siddarth Kumar 7afb60d1b9 init: fdroid setup
- `mobile/Makefile` -> Added `apk-fdroid` build target, used by
`fdroid/build-app.sh`. F-Droid requires an unsigned APK without Google
Play services.

  - `mobile/android/qt6/build.gradle` -> Added F-Droid gradle build
flavor, used during `apk-fdroid` target. Separates F-Droid builds from
Play Store builds and no signing configuration since it's supposed to be
unsigned.

  - `mobile/scripts/buildApp.sh` -> Updated to copy F-Droid APK instead
of usual locations from Jenkins build.

  - `mobile/scripts/buildOpenSSL.sh` -> Moved from iOS dir, shared
between iOS and F-Droid builds. Reusing the OpenSSL build logic that was
previously iOS-only but is now needed for F-Droid's from-source
requirement.

  - `mobile/scripts/Common.mk` -> Updated path to `buildOpenSSL.sh`
which is no longer inside iOS dir.

  - `mobile/scripts/openssl-patch.diff` -> Moved from iOS dir, applied
by `buildOpenSSL.sh`, so that the patch is co-located with the script
that uses it.

  - `ci/Jenkinsfile.fdroid` -> Had to make a new pipeline script because
integrating this into `ci/Jenkinsfile.android` was causing issues with
the generated `AppImage` and steps had to be fully sequential, so I
figured it's good to separate them out.

  - `fdroid/entrypoint-fdroid.sh` -> Docker entrypoint, used by
`fdroid/Dockerfile`. Sets up the container user/permissions before the
F-Droid build starts.

  - `fdroid/Dockerfile` -> A minimalistic Docker image for the F-Droid
Jenkins build environment, used by `ci/Jenkinsfile.fdroid`. I didn't add
to existing Qt Android `Dockerfile` because this one only needs a
minimal environment with Docker-in-Docker to run the `fdroidserver` VM.

  - `fdroid/build-app.sh` -> Called by `fdroiddata` metadata build step.
Sets up Qt and Android NDK environment, detects `JAVA_HOME`, configures
`Go`/`Nim` env vars, and runs the `make` targets for the F-Droid APK.

  - `fdroid/build-openssl.sh` -> F-Droid requires OpenSSL to be built
from source rather than using prebuilt binaries.

  - `fdroid/build-qt-android.sh` -> F-Droid requires Qt to be built from
source; this handles the Android cross-compilation.

  - `fdroid/build-qt-host.sh` -> Qt's cross-compilation requires host
tools (`moc`, `rcc`, etc.) to be built first.

  - `fdroid/cleanup-binaries.sh` -> Removes binaries flagged by `fdroid`
scanner, called by `fdroiddata` metadata `prebuild` step. F-Droid's
scanner rejects repos containing prebuilt binaries in test/vendor
directories.

  - `fdroid/cleanup-fdroiddata.sh` -> Removes stale `fdroiddata` clones,
called by `ci/Jenkinsfile.fdroid`. Prevents disk space issues from
accumulating `fdroiddata` clones across builds.

  - `fdroid/fdroid-container-build.sh` -> Runs `fdroid build` inside
Docker container, called by `scripts/fdroid-local-build.sh`. Isolates
the build in a container to match F-Droid's official build environment.

  - `scripts/fdroid-local-build.sh` -> A handy script to build F-Droid
locally, also called by `ci/Jenkinsfile.fdroid`. Manages the full
lifecycle of cloning `fdroiddata`, launching the `fdroidserver`, and
extracting the output APK.

  - `fdroid/generate-keystore.sh` -> Generates a single-use keystore for
signing the F-Droid APK. Sourced by `buildApp.sh` to export signing
credentials into the build environment.

fixes: https://github.com/status-im/status-app/issues/19741
2026-03-14 20:54:15 +05:30
Alex Jbanca 9412e58829 chore(openssl): Include legacy providers for GlobalPlatform crypto
GlobalPlatform crypto needs the legacy providers. While it will potentially work OOTB with android since we're using dynamic linking, for IOS we need to compile with `no-module`. This will bundle the providers in the lib.
2026-01-14 14:37:35 +02:00
Siddarth Kumar 1a9708fe01 ios: create and sign separate bundle ID for PRs
- points to `fix-ios-signing-with-fastlane` branch of
`status-jenkins-lib` which provides development certs for PR builds and
distribution certs for release builds.
- adds nix flake to provide ruby dependencies for `fastlane`
- adds config for new build identifier for PRs: `app.status.mobile.pr`
- swaps testflight script with fastlane action
- adds job to build iOS in release
- updates status-go to use nim-sds from
https://github.com/logos-messaging/nim-sds/pull/41
2025-12-24 16:33:32 +04:00
Siddarth Kumar a1dd245159 ios: produce signed build
- update status-jenkins-lib to v1.9.30 which provides iOS provisioning
profile and appstore certs.
- builds signed iOS app and pushes to testflight.
- updates testflight metadata with PR link and commit sha it was built
from
- adds `scripts/testflight-changelog.mjs` script used by CI to update PR
metadata.
- set `ITSAppUsesNonExemptEncryption` to `false`
2025-10-31 14:31:30 +04:00
Siddarth Kumar b949a1c902 fix: copy libcrypto from correct directory 2025-10-29 15:24:55 +04:00
Alex Jbanca b2d4eddc77 chore: Update app name to Status and align app package id with the bundle id
App name: Status
App package/bundle: im.status.app
2025-10-16 12:32:51 +03:00
Alex Jbanca 0be456f083 fix: Use a more robust bundle identifier detection in ios run script
Sometimes the bundleId is not identified and the app isn't starting. `mdls` returns null. `plutil` seems to be a much better option
2025-10-08 13:23:27 +03:00
Alex Jbanca 234fbd51a6 fix: IOS build and deploy 2025-07-25 17:14:37 +03:00
Michał Cieślak 0fe2b7cac4 Mobile build - qt 5 support dropped 2025-07-15 15:25:54 +02:00
Alex Jbanca 6fe82fca97 chore: Allow IOS simulator selection 2025-06-24 15:09:44 +03:00
Alex Jbanca b5043f1134 chore: Use openssl3
- Replace the openssl vendors and use the official repo for both IOS and Android
- Update the build scripts to compile openssl using the official repo
2025-06-10 14:26:36 +03:00
Alex Jbanca 31d8834c87 chore: use bash 2025-06-03 16:44:03 +03:00
Alex Jbanca ad2adea549 chore: Android GH actions build + various fixes (#5)
* chore: Android GH actions build + various fixes

* chore: Update qt6 android manifest

* chore: Simplify run setup for new environments

* chore: Update android tools dependencies
2025-06-03 16:44:03 +03:00
Alex Jbanca dbd42e7167 fix: shell expression 2025-06-03 16:44:03 +03:00
Alex Jbanca 11e22b3d8e fix: Various fixes to the build system
1. Adding AndroidManifest.xml with app icons and splash screen
2. Renaming IOS-build to Status-tablet
3. Update androiddeployqt to run on android-31
4. Adding app icons to IOS
5. Fixing makefile clean, makefile nim_status_client dependencies, makefile DOtherSide lib name
6. Update README.md with latest changes
2025-06-03 16:44:03 +03:00
alexjba 8890858b64 fix: fix linux build 2025-06-03 16:44:03 +03:00
Alex Jbanca 1b1d8f118e chore: Android build 2025-06-03 16:44:03 +03:00