mattermost-mobile/fastlane/env_vars_example
Elias Nahum 44eb76bed7
feat(iOS): Add Microsoft Intune MAM integration with multi-server support (#9312)
* refactor: implement custom ExpoImage wrapper for cache control

Add ExpoImage component with automatic cacheKey/cachePath management and replace all expo-image imports across the app

* refactor(ios): convert Gekidou to CocoaPods

Migrate from Swift Package Manager to CocoaPods, add Keychain write operations, refactor notification handler to remove react-native-notifications headers, and upgrade Swift to 5.0

* npm audit

* update fastlane

* feat(ci): integrate Intune MAM for enterprise builds with strict OSS protection

Add Intune submodule, CI actions, Fastlane configuration, developer scripts, pre-commit hooks, and validation workflows to enable internal MAM builds while protecting OSS repository

* fix tests by mocking @mattermost/intune

* feat: implement Intune MAM integration with comprehensive security enforcement

Add IntuneManager, refactor SecurityManager/SessionManager for MAM policies, implement native OIDC auth flow, add biometric enforcement, conditional launch blocking, and file protection controls

* fix alerts when no server database is present

* Unify cache strategy

* fix emit config changed after it was stored in the db

* Handle Mid-Session Enrollment Detection

* fix ADALLogOverrideDisabled missing in Fastfile

* fix flow for initial enrollment

* fix and add unit tests

* enable Intune configuration for PR and beta builds, CLIENT_ID should be changed before actual release

* Update intune submodule with addressed feedback

* fix validate-intune-clean workflow

* feat(intune): add comprehensive error handling and SAML+Entra support

Add production-ready error handling for native Entra authentication with
user-friendly i18n messages, comprehensive test coverage, and support for
Entra login when server requires SAML.

* update i18n

* update intune submodule

* update build-pr token

* fix race condition between server auth and intune enrollment

* fix CI workflow to build with intune

* use deploy key for intune submodule

* set the config directly in the submodule .git

* debug injection

* try setting GIT_SSH_COMMAND

* remove action debug

* fix server url input

* match pod cache with intune hash

* Fastfile and envs

* have workflows check for intune/.git

* have ci cache intune frameworks as well

* update Fastlane to set no-cache to artifacts uploaded

* fix s3 upload

* fix pblist template

* Attempt to remove the cache control for PR uploads to s3

* use hash from commit for S3 path

* Implement crash-resilient selective wipe with automatic retry and add removeInternetPassword to Gekidou Keychain

* Fix surface errors from intune login

* fix postinstall scripts

* use cacheKey for draft md images

* remove unnecessary double await during test

* Have isMinimumLicenseTier accept valid license sku tier as target

* Add missing Auth error messages

* remove the last period for intune errors in i18n

* do not call unenroll with wipe on manual logout

* Fix tests and Intune error messages

* do not filter any SSO type regardless of which is used for Intune

* fix 412 to not retry

* fix tests, app logs sharing and share_extension avatar cache

* apply setScreenCapturePolicy on license change

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* re-apply screen capture on enrollment

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* use userData from intunr login and prevent getMe

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>

* Check for Biometrics and Jailbreak as we used to

---------

Co-authored-by: Eva Sarafianou <eva.sarafianou@mattermost.com>
2025-12-10 13:07:28 +02:00

83 lines
3.8 KiB
Text

############ VARIABLE VALUES ############
#export MATTERMOST_WEBHOOK_URL=<set this to an incoming webhook url to get a notification when the build finishes>
export BRANCH_TO_BUILD=master
export GIT_LOCAL_BRANCH=build
export APP_NAME="Mattermost Beta"
export APP_SCHEME=mattermost
#export INCREMENT_BUILD_NUMBER=false
## This sets the version number ex: 1.22.0 if not set it uses the one in the code base
#export VERSION_NUMBER=
## This sets the version number ex: 210 if not set it uses the one in the code base (this one should increment always by 1 and will only update if INCREMENT_BUILD_NUMBER is true
#export BUILD_NUMBER=
############ MAKE GIT RESTORE THE BRANCH STATE ONCE BUILD FINISHES ############
export COMMIT_CHANGES_TO_GIT=true
export RESET_GIT_BRANCH=true
############ NO NEED TO CHANGE AND THIS ENSURES THAT NODEJS DOESN'T CRASH WHILE BUILDING ############
export LC_ALL="en_US.UTF-8"
export NODE_OPTIONS=--max_old_space_size=12000
############ MATCH IS USED TO SYNC THE IOS PROVISIONING PROFILES ############
export MATCH_USERNAME=<itunes connect account>
export FASTLANE_PASSWORD=<itunes connect password>
export MATCH_PASSWORD=<itunes connect password>
export MATCH_KEYCHAIN_PASSWORD=<the password of the user running the build in the build machine>
export MATCH_GIT_URL=<private git repository to allow match sync the provisioning profiles>
export MATCH_APP_IDENTIFIER=com.mattermost.rnbeta.NotificationService,com.mattermost.rnbeta.MattermostShare,com.mattermost.rnbeta
export MATCH_TYPE=appstore
export MATCH_SHALLOW_CLONE=true
export MATCH_SKIP_DOCS=true
export FASTLANE_TEAM_ID=<itunes connect team ID>
export SYNC_PROVISIONING_PROFILES=true
############ NEEDED TO UPLOAD THE BUILD TO TESTFLIGHT ############
export PILOT_USERNAME=<itunes connect account>
export PILOT_SKIP_WAITING_FOR_BUILD_PROCESSING=true
############ NEEDED TO UPLOAD THE BUILD TO GOOGLE PLAY ############
export SUPPLY_TRACK=alpha
export SUPPLY_PACKAGE_NAME=com.mattermost.rnbeta
export SUPPLY_JSON_KEY=<The path to the service account json file used to authenticate with Google>
export SUPPLY_VALIDATE_ONLY=false
############ REPLACE ASSETS, BUILD IN RELEASE MODE ############
export BETA_BUILD=true
export BUILD_FOR_RELEASE=true
export REPLACE_ASSETS=false
############ APP IDENTIFIERS ############
export MAIN_APP_IDENTIFIER=com.mattermost.rnbeta
export EXTENSION_APP_IDENTIFIER=com.mattermost.rnbeta.MattermostShare
export NOTIFICATION_SERVICE_IDENTIFIER=com.mattermost.rnbeta.NotificationService
export IOS_APP_GROUP=group.com.mattermost.rnbeta
export IOS_ICLOUD_CONTAINER=iCloud.com.mattermost.rnbeta
export IOS_BUILD_EXPORT_METHOD=app-store
############ SET TO TRUE TO UPLOAD THE BUILDS TO TESTFLIGH AND GOOGLE PLAY ############
export SUBMIT_IOS_TO_TESTFLIGHT=false
export SUBMIT_ANDROID_TO_GOOGLE_PLAY=false
############ OPTIONAL ############
#export SENTRY_ENABLED=<set to true if you want to use sentry http://sentry.io/ to track crash and error reports>
#export SENTRY_URL=<set your sentry host URL, if you use self-hosted sentry>
#export SENTRY_ORG=<your sentry org>
#export SENTRY_PROJECT_IOS=<your sentry ios project>
#export SENTRY_DSN_IOS=<your sentry DSN for the ios project>
#export SENTRY_PROJECT_ANDROID=<your sentry android project>
#export SENTRY_DSN_ANDROID=<your sentry DSN for the android project>
#export SENTRY_AUTH_TOKEN=<your sentry auth token>
############ UPLOAD THE BUILDS TO AWS S3 ############
#export AWS_ACCESS_KEY_ID=<your aws s3 access id>
#export AWS_SECRET_ACCESS_KEY=<your aws s3 access key>
#export AWS_BUCKET_NAME=<your aws bucket name>
#export AWS_FOLDER_NAME=<the folder to use in you aws bucket>
#export AWS_REGION=<your aws region>
############ INTUNE MAM CONFIGURATION ############
#export INTUNE_ENABLED=false # Set to true to enable Intune MAM SDK
#export INTUNE_CLIENT_ID=<Entra App Registration Client ID>