App Center
Uploading an iOS simulator build is not officially supported in App Center. However, we have found a usable workaround that accomplishes just that. Multiple Waldo customers have implemented this solution until such time as App Center provides official support for simulator builds.
This solution “piggybacks” a simulator build on top of a regular device build. It requires you only to add a couple of custom build scripts.
Step 1
First, add the following to appcenter-post-clone.sh
:
export WALDO_CLI_BIN=/usr/local/bin
bash -c "$(curl -fLs https://github.com/waldoapp/waldo-go-cli/raw/master/install-waldo.sh)"
Note: This downloads a special Bash script,
sim_appcenter_build_and_upload.sh
, in addition to thewaldo
executable binary.
Step 2
Then, add the following to appcenter-pre-build.sh
(making sure to supply the appropriate values to the environment variables):
WALDO_CLI_BIN=/usr/local/bin
export SIM_XCODE_PROJECT=YourApp.xcodeproj # or YourApp.xcworkspace
export SIM_XCODE_SCHEME=YourApp
export SIM_XCODE_CONFIGURATION=Release # or equivalent
export SIM_XCODE_APP_NAME=YourApp.app
#
# Uncomment and define the following environment variable if you need to pass
# further options (for example, `ARCHS=arm64` or `ONLY_ACTIVE_ARCH=NO`) to the
# underlying `xcodebuild build` invocation:
#
# export SIM_XCODE_OPTIONS="ARCHS=arm64 ONLY_ACTIVE_ARCH=NO"
export WALDO_UPLOAD_TOKEN=<<waldoUploadToken>>
#
# Uncomment and define the following environment variable if you need to pass
# extra options (for example, `--git_branch` or `--git_commit`) to the
# underlying `waldo upload` invocation:
#
# export SIM_WALDO_UPLOAD_OPTIONS="--git_branch ${YOUR_GIT_BRANCH} --verbose"
#
# Uncomment and define the following three environment variables to disable the
# device build operation from running and display as “Canceled” in the App
# Center dashboard:
#
# export SIM_APPCENTER_API_TOKEN=0123456789abcdef0123456789abcdef01234567
# export SIM_APPCENTER_OWNER_NAME="Owner Name"
# export SIM_APPCENTER_APP_NAME=YourApp
${WALDO_CLI_BIN}/sim_appcenter_build_and_upload.sh || exit
#
# Uncomment the following “exit” line to disable the device build operation
# from running and display as “Failed” in the App Center dashboard:
#
# exit 1
Note: You can also set environment variable
SIM_XCODE_PROJECT
to$APPCENTER_XCODE_PROJECT
andSIM_XCODE_SCHEME
to$APPCENTER_XCODE_SCHEME
.
Note: Make sure you use your "CI Token" (you can find it in: Sidebar > Configuration > General. We make sure tokens used in CI are only scoped to a specific app, as a result CI uploads won't work with your User token (that you can find in user menu > Account settings > Profile).
Details
The SIM_APPCENTER_*
environment variables enable the helper script to cancel the App Center build after the simulator build uploads to Waldo, but before the regular (and expensive) device build operation starts. If you choose to not set these environment variables, the simulator build will still upload the simulator build to Waldo. What happens afterward depends on whether you exit the pre-build script with success (0
) or failure (not 0
).
Thus, there are three options you can choose for the pre-build script:
-
normal (default) — Leave the
SIM_APPCENTER_*
environment variables and theexit
line commented out. This will upload a simulator build of your app to Waldo and then proceed to build it for device, too. The entire build will display asSucceeded
in the App Center dashboard. -
cancel — Uncomment and define the
SIM_APPCENTER_*
environment variables (leave theexit
line commented out). This will upload a simulator build of your app to Waldo and then cancel the device build. The entire build will display asCanceled
in the App Center dashboard.The
sim_appcenter_build_and_upload.sh
script calls an App Center API endpoint to cancel the device build. Therefore, you must define the following environment variables correctly in order to cancel the device build:-
SIM_APPCENTER_API_TOKEN
— This must be set to a valid API token: either a user token or an app token.See Creating an App Center App API token or Creating an App Center User API token for details.
-
SIM_APPCENTER_APP_NAME
— This must be set to the name of your app.See Find owner_name and app_name from an App Center URL for details.
-
SIM_APPCENTER_OWNER_NAME
— This must be set to the name of the owner of your app.See Find owner_name and app_name from an App Center URL for details.
-
-
failure — Uncomment the
exit
line (leave theSIM_APPCENTER_*
environment variables commented out). This will upload a simulator build of your app to Waldo and then fail the device build. The entire build will display asFailed
in the App Center dashboard.
We strongly recommend that you choose option 2 unless you actually desire the device build operation to be run. In this way, the build displays a Canceled
status, and thereby reserves the Failed
status for true build failures.
Updated 3 months ago