Skip to content

[codex] Add direct HarmonyOS simulator launch support - #151

Draft
dongweiq wants to merge 2 commits into
okwasniewski:mainfrom
dongweiq:codex/harmonyos-direct-launch
Draft

[codex] Add direct HarmonyOS simulator launch support#151
dongweiq wants to merge 2 commits into
okwasniewski:mainfrom
dongweiq:codex/harmonyos-direct-launch

Conversation

@dongweiq

@dongweiq dongweiq commented Aug 6, 2026

Copy link
Copy Markdown

Summary

  • Add HarmonyOS simulator discovery and menu integration.
  • Launch DevEco HarmonyOS emulators directly from MiniSim without opening DevEco Studio.
  • Add a private HarmonyEmulator.app helper bundle with macOS camera and microphone usage descriptions.
  • Prevent simulator shutdown from being reported as a blocking MiniSim shell error.
  • Add HarmonyOS parser, launch, and helper-bundle tests.
  • Add a script for building an unsigned universal DMG.

Root cause

On macOS, the DevEco emulator executable is distributed as a bare executable without an Info.plist. When it accesses the host camera, macOS terminates it because NSCameraUsageDescription is missing. The crash dump reports:

This app has crashed because it attempted to access privacy-sensitive data without a usage description.
NSCameraUsageDescription

This change keeps MiniSim's direct-launch workflow by creating a cached helper app bundle under the user's Application Support directory. The original DevEco installation and emulator data are not modified.

Validation

  • xcodebuild ... build succeeded.
  • Full macOS XCTest suite passed.
  • Verified the helper bundle contains NSCameraUsageDescription and NSMicrophoneUsageDescription.
  • Verified a universal arm64/x86_64 DMG build.

Notes

The helper bundle reuses the DevEco emulator's original directory layout so its Qt plugins and dynamic-library run paths continue to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant