This monorepo contains everything iOS/iPadOS/macOS related, including:
- iPadOS apps available on the App Store
- iPadOS tools available only for internal use
- macOS apps and tools available only for internal use
To use the repo, simply do the following:
# clone repo
git clone https://github.com/leka/ios-monorepo && cd ios-monorepo
# install needed tools
brew upgrade && brew install ruby node mise pre-commit gh git-lfs
git lfs install
mise install
bundle install
pre-commit install
npm install --global git-json-merge
git config merge.json.driver \"git-json-merge %A %O %B\"
git config merge.json.name \"custom merge driver for json files\"
# sync provisioning profiles and certificates
bundle exec fastlane sync_certificates
# pull dependencies
make fetch
# generate all projects
make config
# edit project config
tuist edit
You can also use the default tuist
commands. See tuist documentation: https://docs.tuist.io/tutorial/get-started
Tuist allows for "generation-time configuration" (see documentation for more information: https://docs.tuist.io/guides/environment).
We are leveraging the feature with different options:
TUIST_TURN_OFF_LINTERS
- turns off SwiftLint and swift-format, useful for CI or rapid developmentTUIST_GENERATE_EXAMPLE_TARGETS
- generate module example targetsTUIST_GENERATE_MODULES_AS_FRAMEWORKS_FOR_DEBUG
- generates modules as frameworks (instead of static libraries), allowing developers to use more Xcode features such as Canvas to preview SwiftUI Views
Example command:
TUIST_GENERATE_MODULES_AS_FRAMEWORKS_FOR_DEBUG=TRUE \
TUIST_TURN_OFF_LINTERS=TRUE \
tuist generate
For security reasons, some files are encrypted. To be able to access and edit them, follow those steps:
# install git-crypt
brew install git-crypt
# unlock files
git-crypt unlock
More information here: https://github.com/AGWA/git-crypt#using-git-crypt
Copyright (c) APF France handicap. All rights reserved.