66#
77# Usage:
88#
9- # $ ./Scripts/build.sh <build_mode>
9+ # $ ./Scripts/build.sh <project_file> <build_scheme> < build_mode>
1010#
11- # Where mode is one of:
12- # - Device: Build for physical iOS devices
13- # - Simulator: Build for iOS Simulator
11+ # Where:
12+ # - project_file: Path to the project file (i.e., project-pm.yml or project-bwa.yml)
13+ # - build_scheme: Build scheme (i.e., Bitwarden or Authenticator)
14+ # - build_mode is one of:
15+ # - Device: Build for physical iOS devices
16+ # - Simulator: Build for iOS Simulator
17+ #
18+ # Examples:
19+ # $ ./Scripts/build.sh project-pm.yml Bitwarden Simulator
20+ # $ ./Scripts/build.sh project-bwa.yml Authenticator Device
1421
1522set -euo pipefail
1623
1724bold=$( tput -T ansi bold)
1825normal=$( tput -T ansi sgr0)
1926
20- if [ $# -lt 1 ]; then
21- echo >&2 " Called without necessary arguments: ${bold} mode ${normal} "
22- echo >&2 " For example: \` Scripts/build.sh Simulator"
27+ if [ $# -lt 3 ]; then
28+ echo >&2 " Called without necessary arguments: ${bold} project_file build_scheme build_mode ${normal} "
29+ echo >&2 " For example: \` Scripts/build.sh project-pm.yml Bitwarden Simulator\` "
2330 exit 1
2431fi
2532
26- MODE=$1
33+ PROJECT_FILE=$1
34+ BUILD_SCHEME=$2
35+ MODE=$3
2736
2837BUILD_DIR=" build"
2938DERIVED_DATA_PATH=" ${BUILD_DIR} /DerivedData"
30- ARCHIVE_PATH=" ${BUILD_DIR} /Bitwarden .xcarchive"
31- EXPORT_PATH=" ${BUILD_DIR} /Bitwarden "
39+ ARCHIVE_PATH=" ${BUILD_DIR} /${BUILD_SCHEME} .xcarchive"
40+ EXPORT_PATH=" ${BUILD_DIR} /${BUILD_SCHEME} "
3241
3342echo " 🧱 Building in ${bold} $( pwd) ${normal} "
34- echo " 🧱 Using build mode of ${bold}${MODE}${normal} ."
43+ echo " 🧱 Project file ${bold}${PROJECT_FILE}${normal} "
44+ echo " 🧱 Build Scheme ${bold}${BUILD_SCHEME}${normal} "
45+ echo " 🧱 Using build mode of ${bold}${MODE}${normal} "
3546echo " 🧱 Derived Data path ${bold}${DERIVED_DATA_PATH}${normal} "
3647echo " 🧱 Archive path ${bold}${ARCHIVE_PATH}${normal} "
3748echo " 🧱 Export path ${bold}${EXPORT_PATH}${normal} "
3849echo " "
3950
4051echo " 🌱 Generating Xcode projects"
4152mint run xcodegen --spec " project-bwk.yml"
42- mint run xcodegen --spec " project-pm.yml "
53+ mint run xcodegen --spec " ${PROJECT_FILE} "
4354echo " "
4455
4556mkdir -p " ${BUILD_DIR} "
@@ -49,7 +60,7 @@ case "$MODE" in
4960 echo " 🔨 Performing Xcode build"
5061 xcrun xcodebuild \
5162 -workspace Bitwarden.xcworkspace \
52- -scheme Bitwarden \
63+ -scheme " ${BUILD_SCHEME} " \
5364 -configuration Debug \
5465 -destination " generic/platform=iOS Simulator" \
5566 -derivedDataPath " ${DERIVED_DATA_PATH} " \
@@ -59,7 +70,7 @@ case "$MODE" in
5970 echo " 📦 Performing Xcode archive"
6071 xcrun xcodebuild archive \
6172 -workspace Bitwarden.xcworkspace \
62- -scheme Bitwarden \
73+ -scheme " ${BUILD_SCHEME} " \
6374 -configuration Release \
6475 -archivePath " ${ARCHIVE_PATH} " \
6576 -derivedDataPath " ${DERIVED_DATA_PATH} " \
0 commit comments