skiptools / skiptools/skip

Installation test plan

Open
#632 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Swift
Stars
3.2k
Forks
106
Avg merge
6d 13h
Merged PRs (30d)
1

Description

I'm not 100% sure where to put this, but I feel like Skip would benefit a lot from some kind of standard installation test. Here's what I've been doing on my 64GB M1 Max MacBook Pro, but it's not good enough.

  1. Download the latest IPSW (you can skip this step, but it makes running the test a lot faster)
    1. Install mist https://github.com/ninxsoft/mist-cli (I do it with brew install mist-cli)
    2. mist download firmware 26 … that will download the ipsw in /Users/Shared/Mist
  2. Install UTM.app https://mac.getutm.app/
  3. Create a new macOS VM.
    1. Use the ipsw you downloaded with mist (or let UTM do it, but if you do that, it will download an 18GB ipsw and then throw it away when it's done)
    2. On my 64GB M1 Max MacBook Pro, I create a VM with 32GB RAM, 100GB disk
  4. Follow the instructions in https://skip.dev/docs/gettingstarted/
    1. "Install Xcode"
      1. In a VM, you can't download apps from the App Store, so go to https://developer.apple.com/download/all/?q=Xcode and download the latest release version of Xcode there.
      2. It's in a .xip; double click it, and drag the .app into /Applications.
      3. Launch Xcode, accept the license, check the latest iOS platform support, uncheck Predictive Code Completion (just to save time) and let it start downloading. (You can continue the next step in parallel.)
    2. "Install Android Studio"
      1. Go to https://developer.android.com/studio click the Download button, select Apple Silicon, and download it.
      2. You'll get a .dmg file; open it, drag the .app into /Applications
      3. Run Android Studio, and click Next Next Next to install the stock components (SDK platform, SDK tools, and emulator) and accept licenses (TODO: Install command-line tools as well?)
    3. "Install Homebrew"
      1. Go to https://brew.sh/ and run the script on the home page
      2. That will install Xcode Commandline Tools and xcode-select them. https://github.com/skiptools/skip/issues/609 You have to manually sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer.
    4. brew install skiptools/skip/skip
    5. When Xcode/Android Studio are done installing SDKs, run skip checkup

This isn't enough, because, from here, we have to set up an emulator and launch it. But there are a ton of bugs around that. See https://github.com/orgs/skiptools/discussions/629 for more detail.

But the biggest flaw in this test plan is that you can't run the Android emulator at all on a macOS VM on Apple Silicon! It crashes on startup with this error: HVF error: HV_UNSUPPORTED (The "HV" is for "hardware virtualization.") I know of no workaround. 😭 Even Github Actions are impacted. https://github.com/ReactiveCircus/android-emulator-runner/issues/350

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the gettingstarted documentation, the skip checkup command, and the emulator setup described in this issue; review discussion #629 for the related emulator problems. Done would be a standard, reproducible installation test plan that reaches app launch, or a documented replacement for the Android emulator step given the reported HVF error: HV_UNSUPPORTED blocker.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, macos, swift
Domain
mobile-dev, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.