Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikehouse/xdevman
XDevMan tool helps to manage Apple Developer Tools
https://github.com/mikehouse/xdevman
ios macos simctl swift xcode
Last synced: 9 days ago
JSON representation
XDevMan tool helps to manage Apple Developer Tools
- Host: GitHub
- URL: https://github.com/mikehouse/xdevman
- Owner: mikehouse
- License: mit
- Created: 2024-10-17T18:34:34.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-12-17T18:18:53.000Z (about 2 months ago)
- Last Synced: 2025-02-02T23:14:15.428Z (9 days ago)
- Topics: ios, macos, simctl, swift, xcode
- Language: Swift
- Homepage:
- Size: 7.77 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE.md
Awesome Lists containing this project
README
# XDevMan
There are following functionalities available:
### Xcode Simulators
Helps to manage Xcode Simulators.
- List of available runtimes
- Delete a runtime
- List of simulators per a runtime
- Create new Simulator for given runtime
- Launch and shutdown a simulator
- Recreate a simulator
- View how much a simulator takes disk space
- Find broken simulatorsPreview
### Derived Data
Helps to manage Xcode + [AppCode](https://www.jetbrains.com/objc/) + [Fleet](https://www.jetbrains.com/fleet/) derived data directories.
- View how much disk space taken by derived data per an application
- Delete derived data per an applicationPreview
### Swift Package Manager (SwiftPM)
Manages [SwiftPM](https://www.swift.org/documentation/package-manager/) cached dependencies at */Library/Caches/org.swift.swiftpm/* directory.
- View the dependencies in local SwiftPM cache
- View a disk space consumption of every dependency
- Open a dependency source web page (GitHub)
- Delete a dependency from the cachePreview
### Carthage
Manages [Carthage](https://github.com/Carthage/Carthage) cached dependencies at */Library/Caches/org.carthage.CarthageKit/* directory.
- View the dependencies in local Carthage cache
- View a disk space consumption of every dependency
- Open a dependency source web page (GitHub)
- Delete a dependency from the cache
- Manage a dependency's derived dataPreview
### Apple Device Support
When you connect a real Apple device to macOS (iPhone, Apple watch, Apple TV, etc.) the system copies symbols from it to */Library/Developer/Xcode/iOS DeviceSupport* directory.
- View a list of Apple devices the symbols copied from
- View a disk space consumption for every device symbols
- Delete the symbols for given devicePreview
### Xcode Archives
When you do `archive` action to Xcode (`Product` menu) it places a built archive at */Library/Developer/Xcode/Archives/* directory.
- View a list of all archives
- View detailed info for an archive
- Delete an archivePreview
### Provisioning Profiles
Manages the provision profiles from */Library/MobileDevice/Provisioning Profiles* directory.
- List of all provisioning profiles
- Detailed info about a provisioning profile
- Delete a provisioning profilePreview
### SwiftUI Previews
When you use a SwiftUI Preview Xcode feature then Xcode creates a separate Simulator for previewing at */Library/Developer/Xcode/UserData/Previews/Simulator Devices* directory.
- List of all simulators for SwiftUI Preview
- View how much disk space taken by a simulator
- Delete a simulatorPreview
### Interface Builder (IB) Support
I'm not sure about this. Something creates the simulators at */Library/Developer/Xcode/UserData/IB Support/Simulator Devices* directory.
- List of simulators
- Delete a simulatorPreview
### Other Issues
Tries to find the issues for Xcode development tools.
- Find broken Xcode simulators
- Find missed/unused/strange simulators logs
- Find dyld cache for deleted simulatorsPreview
### Git
The simplest manager for git project.
- View local branches names
- Delete a local branchPreview
## Installation
- macOS Sonoma (14.5+)
- Xcode Command Line Tools (required)### From Release section
- Download latest release
- Unzip the release archive
- Move `XDevMan.app` to */Applications/* folder
- Launch `XDevMan.app` application
- If the app cannot be launched because of signature of untrusted developer, then do the next step
- Allow the system to run the application from not trusted developer```bash
xattr -d com.apple.quarantine XDevMan.app
```### Build from sources (Xcode 16+)
- Download this repository
- Open `Terminal.app`
- Go to the repository sources in `Terminal.app````bash
cd ~/Downloads/xdevman/
```- Build the project by running the commands below in `Terminal.app`
```bash
./make_release.sh
```- Find `XDevMan.app.${arch}.zip` under hidden folder ./.build
- Unzip the built archive
- Move the app to */Applications/* directory.
- Launch `XDevMan.app` application## Todo
- [ ] Cocoapods cache
- [ ] Simulators app manager (apps list, user defaults)
- [ ] [Fastlane](https://fastlane.tools) runner in `Terminal.app` (lanes from fastlane/Readme.md)
- [ ] [Scipio](https://github.com/giginet/Scipio) tool to convert `resolved.json` to `Package.swift`
- [ ] [SwiftPM](https://www.swift.org/documentation/package-manager/) show dependencies graph as `Podfile.lock`
- [ ] `Finder` like menu to view files and folders sizes
- [ ] A separate floating window for app's logs
- [ ] `ipa` analyzer (drag and drop)
- [ ] `*.app` analyzer (drag and drop)
- [ ] `*.mobileprovision` analyzer (drag and drop)
- [ ] Unit tests for view's logic
- [ ] Unit tests for services
- [ ] Get rid of `mocks` in `Release` build