Common Windows issues
How to overcome common issues building mobile apps on Codemagic with Windows
Cannot access variables from the app
Description
You can’t access the variable directly by using $VAR_NAME.
You can reference the variable in subsequent parts of your workflow by using $env:VAR_NAME.
However, when using a variable to set another variable in the vars: section, use the following syntax:
environment:
vars:
VAR_1: ---\$VAR_2\---Using Command Prompt
Description
The default shell on the Windows machines is PowerShell, but you need to run scripts using Command Prompt.
Invoke the Command Prompt app directly and pass your script as an argument:
scripts:
- name: Run a command in Command Prompt
script: |
cmd.exe \c YOUR_COMMAND_HEREScript with spaces and quotes not behaving as expected
Description
When PowerShell sees a command starting with a string, it just evaluates the string. Typically, this means echoing it to the screen:
PS> "C:\Program Files\Unity Hub\Unity Hub.exe"
Hello WorldIf you want PowerShell to interpret the string as a command name, use the call operator (&):
& 'C:\Program Files\Unity Hub\Unity Hub.exe' ...If you want to use PowerShell to run an .exe file with parameters that contain spaces or quotes, use the Start-Process method:
Start-Process -NoNewWindow -FilePath "path-to-your-exe-file" -ArgumentList 'your-arguments-are-here' -WaitWrong value in base64 encoded environment variables
Description
Scripts fail when using base64 encoded variables or use incorrect values.
Encoded variables need to be decoded back into their original form before they can be used. For example, to decode a variable $VAR1 and save the result as variable PATH, use the following script:
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$env:VAR1")) | Out-File -FilePath $env:PATHCannot access the build machine using SSH or VNC/RDP
Description
Linux and macOS machines can be accessed using SSH or VNC. However, the access does not work when using a Windows build machine.
SSH and VNC access is not available on Windows build machines. You can access them using an RDP client instead.
Learn more: Remote access to the build machine.