Skip to content

πŸ’»πŸ’ͺπŸ‘€ Peek into macOS/iOS symbol files to read their unique identifiers

Notifications You must be signed in to change notification settings

BugSplat-Git/macho-uuid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bugsplat-github-banner-basic-outline

BugSplat

Crash and error reporting built for busy developers.


macho-uuid

A nifty little library for reading unique identifiers from .app, .dSYM, .bundle, .xcarchive, .framework, .dylib, or macOS binary files.

Command Line

  1. Install this package globally npm i -g macho-uuid
  2. Run macho-uuid with -h to see the latest usage information:
bobby@BugSplat % ~ % macho-uuid -h

macho-uuid

  A command line utility and library for reading the UUID of a .app, .dSYM,     
  .bundle, .xcarchive, .framework, .dylib, or macOS binary file.

Usage

  --path string   Path to a .app, .dSYM, .bundle, .xcarchive, .framework, .dylib or
                  macOS binary file.
  -h, --help      Print this usage guide.

Example

  macho-uuid path-to-macho-bundle-or-fat-file 

Links

  πŸ› https://bugsplat.com
 
  πŸ’» https://github.com/BugSplat-Git/macho-uuid
                                                
  πŸ’Œ [email protected]
  1. Run macho-uuid specifying a path to a .app, .dSYM, .bundle, .xcarchive, .framework, .dylib, or macOS binary file:
bobby@BugSplat % ~ % macho-uuid ./path/to/bugsplat-ios.app
UUID: 59686D50-E0A4-3FB9-AD27-BAADAD47E0BC (arm64) spec/support/bugsplat-ios.app/bugsplat-ios
UUID: C3E6032C-B73E-39D5-9D87-2ACC2A515240 (arm64) spec/support/bugsplat-ios.app/Frameworks/bugsplat.framework/bugsplat
UUID: 39D9CB72-DE66-3CA6-B85B-BFA04B60782E (x86_64) spec/support/bugsplat-ios.app/Frameworks/bugsplat.framework/HockeySDKResources.bundle/Contents/MacOS/HockeySDKResources
UUID: 7F2B35C3-9745-33D1-B991-EC0DA93CC085 (arm64) spec/support/bugsplat-ios.app/Frameworks/bugsplat.framework/HockeySDKResources.bundle/Contents/MacOS/HockeySDKResources

API

  1. Install this package locally npm i macho-uuid.

Node.js

Use the createMachoFiles factory to recursively create an array of MachoFile instances for a given path.

import { createMachoFiles } from 'macho-uuid';

const machoFiles = await createMachoFiles('./path/to/bugsplat.app');

for (const file of machoFiles) {
    const uuid = await file.getUUID();
    console.log(uuid);
}

Web

To read Mach-O headers in the browser (e.g., from a File object obtained via drag-and-drop), use the WebReader with MachoFile or FatFile.

Note: You'll need a polyfill for Buffer in your web environment (e.g., buffer package).

import { MachoFile, FatFile, WebReader } from 'macho-uuid';

// Assume 'file' is a File object from an input or drag event
const reader = new WebReader(file);

if (await FatFile.isFat(reader)) {
    const fatFile = new FatFile(reader);
    const machos = await fatFile.getMachos();
    for (const macho of machos) {
        console.log(await macho.getUUID());
    }
} else if (await MachoFile.isMacho(reader)) {
    const macho = new MachoFile(reader, 0, file.size);
    console.log(await macho.getUUID());
}

πŸ› About

BugSplat is a software crash and error reporting service with support for macOS, iOS, Qt, Unreal Engine and many more. BugSplat automatically captures critical diagnostic data such as stack traces, log files, and other runtime information. BugSplat also provides automated incident notifications, a convenient dashboard for monitoring trends and prioritizing engineering efforts, and integrations with popular development tools to maximize productivity and ship more profitable software.

About

πŸ’»πŸ’ͺπŸ‘€ Peek into macOS/iOS symbol files to read their unique identifiers

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published