beeware / beeware/briefcase

Add a verification check for iOS simulators

Open
#2,286 4 comments 1 reaction 0 assignees View on GitHub
enhancement good first issue iOS
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

Briefcase currently includes a verification check that Xcode is available. However, just installing Xcode isn't enough; it is necessary to install an iOS SDK and simulator. Without an SDK and simulator, Briefcase can't start an iOS app.

### Describe the solution you'd like

As part of the Xcode verification check, there should be a check performed that an iOS SDK has been installed, and that a simulator is available; and if it isn't, display instructions on how to download the iOS SDK.

### Describe alternatives you've considered

It might be worth splitting the Xcode check into 2 parts - one for Xcode, and one for iOS.

### Additional context

I'm not 100% sure what mechanical check can be performed here. Two possible candidates are:
* `xcrun --show-sdk-path --sdk iphoneos`
* `xcrun simctl list runtimes`

The complication is that once you've got an iOS SDK, you can't verify if a verification check works... because you have an iOS SDK. We need to verify these steps on a "clean" box that hasn't had an iOS SDK installed.

Contributor guide

Open the contributing guide

Research direction

Start with Briefcase’s existing Xcode verification check and compare the candidate commands `xcrun --show-sdk-path --sdk iphoneos` and `xcrun simctl list runtimes`. Define checks for both an installed iOS SDK and an available simulator, with download instructions when either is missing. Validate the behavior on a clean machine without an iOS SDK installed.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, python
Domain
mobile, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.