Giter Site home page Giter Site logo

expo / orbit Goto Github PK

View Code? Open in Web Editor NEW
346.0 5.0 6.0 6.42 MB

Accelerate your development workflow with one-click build launches and simulator management from your macOS menu bar

Home Page: https://expo.dev/orbit

License: MIT License

JavaScript 0.43% TypeScript 92.47% Ruby 0.67% Objective-C 2.58% Swift 2.31% C 0.01% CSS 1.02% HTML 0.50%
developer-tool emulators expo macos react-native simulators menubar-app

orbit's Introduction

Expo Orbit

Expo Orbit

Launch builds and start simulators from your menu bar

Orbit is a menu bar app designed to make your development workflow even faster, allowing you to launch builds and run Snack projects on your devices and simulators with ease. At this point in time, Orbit is only compatible with macOS but we have exciting plans to integrate it further into the Expo ecosystem and add even more features. Try out Expo Orbit now, explore its capabilities, and share your feedback. Your input will shape the future of this tool and guide us on where to take it next.

Install

You can download Orbit from orbit/releases or via Homebrew:

brew install expo-orbit

If you want Orbit to automatically start when you log in, click on the Orbit icon in the menu bar, then "Settings" and select the "Launch on Login" option.

๐Ÿ‘ Contributing

If you like Expo Orbit and want to help make it better then check out our contributing guide!

License

The Expo source code is made available under the MIT license. Some of the dependencies are licensed differently, with the BSD license, for example.

orbit's People

Contributors

alanjhughes avatar brentvatne avatar bycedric avatar dependabot[bot] avatar douglowder avatar gabrieldonadel avatar prettyclouds avatar simek avatar tsapeta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

orbit's Issues

Open login in default browser

Is your feature request related to a problem? Please describe.

Right now if I click "Login" in the settings UI, it opens Safari.

Safari is not my default browser. Login should use my default browser.

Describe the solution you'd like

Open the default browser instead of Safari.

Additional context

The current behaviour is annoying because I never login with Safari. The app should launch the default browser since that's the most likely for the user to be already logged in.

Feat: Automatically install a new development-simulator build on the sim when built on expo.dev

Is your feature request related to a problem? Please describe.

I have a project built with expo and eas, running on Gitlab CI for development builds (when i have changes in my package.json), for preview builds (when the PR target branch is preview-xxx, ... ), for amplify deployments, ...

When i add some expo packages to my package.json that need a new build, i trigger my CI, the build is sent to EAS, and the build is done a few minutes after.

I have to go to Orbit, choose a build from EAS, and install it on my simulator.

Describe the solution you'd like

I would like Orbit listen for builds on EAS and automatically download latest build and install it on my simulators
Can a CLI do this ? can we use the internal cli orbit uses for this purpose ? if so, is there documentation ?

Additional context

No response

Cannot read property 'osType' of undefined

Summary

Trying to open an Expo build with Orbit results in the following error: Cannot read property 'osType' of undefined. I have an Android only build that I can run in my Emulator and usual devices. When I try to open from the Expo app, it seems to crash.

I have run brew install expo-orbit to install.

image

Steps to reproduce

Try to launch a build from the Expo site

Environment

expo-env-info 1.0.5 environment info:
System:
OS: macOS 13.2.1
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 20.5.0 - ~/.nvm/versions/node/v20.5.0/bin/node
npm: 9.8.0 - ~/.nvm/versions/node/v20.5.0/bin/npm
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
Android SDK:
API Levels: 31, 32, 33
Build Tools: 30.0.2, 30.0.3, 32.0.0, 32.1.0, 33.0.0, 33.0.0
System Images: android-30 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 2021.2 AI-212.5712.43.2112.8512546
Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
npmPackages:
expo: ~49.0.5 => 49.0.8
react: 18.2.0 => 18.2.0
react-dom: 18.2.0 => 18.2.0
react-native: 0.72.6 => 0.72.6
react-native-web: ~0.19.6 => 0.19.7
npmGlobalPackages:
eas-cli: 5.2.0
Expo Workflow: managed

Very strange layout on macOS Sonoma

Summary

image image image

Steps to reproduce

Just launched the app for the first time

Environment

expo-env-info 1.0.5 environment info:
System:
OS: macOS 14.0
Shell: 3.6.0 - /opt/homebrew/bin/fish
Binaries:
Node: 20.3.1 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 9.6.7 - /usr/local/bin/npm
Watchman: 2023.06.08.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
IDEs:
Xcode: 14.2/14C18 - /usr/bin/xcodebuild

Automatically open menu popover up whenever Orbit is opened via spotlight

Summary

When I first installed via Homebrew, I was able to open it and see a window. In that window it stated that it detected my Android setup, but couldn't find XCode despite it being installed. I rebooted my machine and tried to open it again, but it just wouldn't do anything. I couldn't get a window to open.

I tried launching an app from the Orbit button on the page of a build in the Expo web dashboard. This worked on Android, but not on iOS. I tried a variety of things to try and get it to show a window or something, but there don't seem to be any docs, so it's not clear how this product is supposed to work.

Steps to reproduce

Try to open the Orbit app from Spotlight.
Try to launch a build from the Expo site. (Android worked for me, iOS did not. XCode is definitely installed.)

Environment

expo-env-info 1.0.5 environment info:
System:
OS: macOS 14.1.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.8.0 - ~/.nvm/versions/node/v20.8.0/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v20.8.0/bin/yarn
npm: 10.1.0 - ~/.nvm/versions/node/v20.8.0/bin/npm
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.10811636
Xcode: /undefined - /usr/bin/xcodebuild

Feat: Project manager

Add a feature where i can import my project into Orbit, and then Orbit becomes like a project manager.

Features to include:

  1. Import / remove projects into / from Orbit.
  2. Check for any errors, whilst importing.
  3. Add scripts / options, like building locally and distributing to App stores from local files automatically

[bug] it's possible to bypass initial setup screen and be stuck afterwards

i downloaded the Expo Orbit and launched it for the first time. setup i don't see any installed simulators or emulators in menubar dropdown. do i need both android and iOS environments working to be able to continue? or should iOS environment be enough?

my Xcode setup is working correctly and i have simulators installed and working.

repro steps:

  1. open Expo Orbit and see pre-flight checklist screen (image 1)
  2. spinners spin for a minute
  3. press Get Started button
  4. see that there are simulator and emulator list is not populated (image 2)
image 1 image 2
image image

environment

  expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 13.5
      Shell: 3.6.1 - /usr/local/bin/fish
    Binaries:
      Node: 20.5.0 - ~/n/bin/node
      Yarn: 3.5.0 - ~/n/bin/yarn
      npm: 9.8.0 - ~/n/bin/npm
      Watchman: 2023.07.24.00 - /usr/local/bin/watchman
    Managers:
      CocoaPods: 1.12.1 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
    IDEs:
      Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
    npmPackages:
      expo: ^49.0.0 => 49.0.0
      react: 18.2.0 => 18.2.0
      react-native: 0.72.3 => 0.72.3
    Expo Workflow: managed

[Bug] - Layout breaking after going on "sleep" mode.

Installed and set up Orbit yesterday, today I've tried accessing it, and it shows like this:

image

All I can describe is yesterday it worked and looked as expected, and today after opening the MacBook noticed it was showing like this.

Force quitting it from the Activity Monitor and re-opening it fixed it.

Show project build status

Is your feature request related to a problem? Please describe.

Often times when I make a build I use the no-wait option to just send it to eas and then continue on building.

Describe the solution you'd like

Would be really nice if from expo orbit instead of opening the url of the app I could go to a new screen where I could see the progress of the build.

Additional context

No response

Clear simulator cache

Is your feature request related to a problem? Please describe.

Some times to fix the "Unable to boot simulator" we need to just remove cache folder
rm -rf ~/Library/Developer/CoreSimulator/Caches/.

Would be nice to have a button to clear this cache in the settings page.

Describe the solution you'd like

button that triggers rm -rf ~/Library/Developer/CoreSimulator/Caches/

Additional context

image

Feat: Multi select to open same time

Currently it allows to select one simulator or device, but maybe holding shift i can select multiple and then i can click on build from local file and then all the selected simulator will launch. Much easier to test for different screens then clicking each individually

Install via Hombrew

Is your feature request related to a problem? Please describe.

Add cask to install via hombrew.

Describe the solution you'd like

cask 'expo-orbit' do
  version '0.1.2'
  sha256 'e5fb187b65eed8dce2a9d8552a9171b46639ad90043f4530d8168d6f20a716e9' # fill this with the actual sha256 checksum of the file

  url "https://github.com/expo/orbit/releases/download/expo-orbit-v#{version}/expo-orbit.v#{version}.zip"
  name 'Expo Orbit'
  homepage 'https://github.com/expo/orbit/'

  app 'Expo Orbit.app' # This should match the actual application name once unzipped
end

Additional context

No response

Favorite Simulators

Is your feature request related to a problem? Please describe.

It would be nice if favorite, or maybe even frequent, simulators were at the top first.

Describe the solution you'd like

Maybe a star icon beside the launch button? Or show most frequent simulators at the top instead?

Additional context

I often use the same two simulators most of the time, and when you have a LOT of simulators it can take a good seconds to choose one.

[Bug] Orbit not showing up in menu bar after setup screen

After downloading Orbit, i moved it to the applications directory. Then i started it and got greeted with the setup screen. Both android and ios showed a green tick after a short waiting time. I then pressed "Get Started" and the window closed. After that nothing happened. Orbit did not show up in the menu bar, even after waiting for ~2 minutes. Then i closing Orbit in the activity manager and starting it again, but no luck. I still cant get it to show up.

image

expo-env-info 1.0.5 environment info:
System:
OS: macOS 13.4
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.3.1 - ~/.nvm/versions/node/v20.3.1/bin/node
Yarn: 1.22.19 - ~/.yarn/bin/yarn
npm: 9.6.7 - ~/.nvm/versions/node/v20.3.1/bin/npm
Watchman: 2023.07.10.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
IDEs:
Android Studio: 2021.2 AI-212.5712.43.2112.8512546
Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
npmGlobalPackages:
eas-cli: 4.0.1

[bug] Device list is not displayed correctly on x64

Summary

no iOS simulators show up in menubar dropdown when android sdk is not installed. in pre-flight screen's spinners are spinning forever.

i tried complete reinstall by removing everything with AppCleaner and using the new version downloaded from the releases page.

i don't have android dev environment installed at all because of i don't need it right now. this might be the culprit but i don't know. i tried setting the android sdk path to something random but it did not result ios simulators to show up.

i have no idea what would help to debug this in more detail. if you'd like to you can reach me out on expo discord. i use the same nickname there.

Steps to reproduce

  1. open up Expo Orbit and see pre-flight checklist screen
  2. see spinners spinning forever trying to resolve something
  3. no ios simulators show up in menubar dropdown menu

Environment

  expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 13.5
      Shell: 3.6.1 - /usr/local/bin/fish
    Binaries:
      Node: 20.5.0 - ~/n/bin/node
      Yarn: 3.5.0 - ~/n/bin/yarn
      npm: 9.8.0 - ~/n/bin/npm
      Watchman: 2023.07.24.00 - /usr/local/bin/watchman
    Managers:
      CocoaPods: 1.12.1 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
    IDEs:
      Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
    npmPackages:
      expo: ^49.0.0 => 49.0.0
      react: 18.2.0 => 18.2.0
      react-native: 0.72.3 => 0.72.3
    npmGlobalPackages:
      eas-cli: 4.1.2
    Expo Workflow: managed

xcrun shows these things. i have no clue if any of this helps.

$ xcrun --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

$ xcrun xcodebuild -version
Xcode 14.3.1
Build version 14E300c

$ xcrun --show-sdk-platform-version
13.3

$ xcrun --show-sdk-version
13.3

xcode-select shows the correct path where Xcode is installed

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

image

feat: Open a specific update or channel

Is your feature request related to a problem? Please describe.

We use a pattern of development where we have infrequent builds but frequent updates. We ship a new build when the native code in our dev client changes. Then, whenever a PR is opened we create a channel and ship an update on that channel. Then, we use the dev client build build to load those updates. This lets us QA our code changes without the time sink of native app builds.

Describe the solution you'd like

Ideally expo-orbit://u.expo.dev/[project ID]?channel-name=pr-875 would open a dev client in the simulator and load the update. Likely, we'd need to specific the build to use as well, but I'm unsure how that works on EAS.

Additionally, it'd be great to have the expo-orbit:// schema documented so that we could have an automated PR comment that simply opens Orbit. Unfortunately, getting native app schemes working in PR comments is frustrating..

Additional context

No response

Manage tvOS simulator with Orbit

Is your feature request related to a problem? Please describe.

I started a project with react-native-tv-os and managed to get my Android TV simulator on the Orbit list as shown here :
image

But none of the tvOS simulator appear on the list. I suspect it's because iOS and tvOS simulator are managed differently by XCode ?

Describe the solution you'd like

An ideal solution would be to show another list (at the moment there is iOS and Android) with tvOS devices.

Additional context

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.