{"id":34542998,"url":"https://github.com/meshula/usdview-macos-bundler","last_synced_at":"2026-05-26T18:07:34.395Z","repository":{"id":287980034,"uuid":"966316427","full_name":"meshula/usdview-macos-bundler","owner":"meshula","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-14T23:19:04.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-04-15T00:25:44.992Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meshula.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-14T18:29:17.000Z","updated_at":"2025-04-14T23:19:08.000Z","dependencies_parsed_at":"2025-04-15T00:25:51.198Z","dependency_job_id":"b11ad934-07dc-4916-aa24-f75af01e1c0e","html_url":"https://github.com/meshula/usdview-macos-bundler","commit_stats":null,"previous_names":["meshula/usdview-macos-bundler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meshula/usdview-macos-bundler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meshula%2Fusdview-macos-bundler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meshula%2Fusdview-macos-bundler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meshula%2Fusdview-macos-bundler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meshula%2Fusdview-macos-bundler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meshula","download_url":"https://codeload.github.com/meshula/usdview-macos-bundler/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meshula%2Fusdview-macos-bundler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33532549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-24T06:42:08.912Z","updated_at":"2026-05-26T18:07:34.390Z","avatar_url":"https://github.com/meshula.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Build Modes\n\nUSD View Bundler supports two different build modes:\n\n#### Standard Mode (Default)\nBy default, the bundler uses the system Python and only packages the USD build artifacts:\n\n```bash\n# Use system Python (default)\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD\n```\n\nThis mode:\n- Builds USD against the system Python\n- Packages only the USD libraries and binaries\n- Uses the system Python at runtime\n- Is much faster and more reliable\n- Avoids macOS code signing complexities\n\n#### Conda Mode\nAlternatively, you can use conda to create isolated Python environments for each architecture:\n\n```bash\n# Use conda environments\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --use-conda\n```\n\nThis mode:\n- Builds USD against conda-managed Python\n- Creates separate Python environments for each architecture\n- Packages both USD and Python in the bundle\n- Provides complete isolation from the system\n- May encounter code signing issues on macOS\n\nThe standard mode is recommended for most use cases, while the conda mode provides more isolation but with additional complexity.# USD View Bundler\n\nA Python-based tool for creating macOS application bundles for USD View. This tool handles the complex process of bundling the USD View application with its dependencies for both ARM (Apple Silicon) and x64 (Intel) architectures.\n\n## Features\n\n- Creates standalone macOS `.app` bundles that work on both Apple Silicon and Intel Macs\n- Bundles appropriate Python environment for each architecture\n- Properly handles dynamic library dependencies\n- Supports code signing and notarization for distribution\n- Clean, modular, and extensible Python codebase\n\n## Prerequisites\n\n- macOS 11.0 or higher\n- Python 3.7 or higher\n- Conda package manager\n- Xcode Command Line Tools\n- USD build dependencies\n\n## Installation\n\n### System Requirements\n\nBefore installation, ensure you have these system dependencies:\n\n- macOS 11.0 or higher\n- Xcode Command Line Tools (`xcode-select --install`)\n- Conda package manager (Miniconda or Anaconda)\n- Administrator privileges (for some operations)\n\n### Package Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/usdview-bundler.git\ncd usdview-bundler\n\n# Create and activate a conda environment\nconda create --name usdview_bundler python=3.11\nconda activate usdview_bundler\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install the package in development mode\npip install -e .\n```\n\nAlternatively, you can install with all dependencies in one command:\n\n```bash\n# For development\npip install -e \".[dev]\"\n\n# For runtime dependencies only\npip install -e \".[runtime]\"\n```\n\n## Basic Usage\n\n### Command Line Interface\n\n```bash\n# Basic build\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD\n\n# Build with signing (ad-hoc)\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --sign\n\n# Build with signing (developer identity)\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --sign --sign-identity \"Developer ID Application: Your Name (TEAM_ID)\"\n\n# Build with notarization\nAPPLE_ID=\"your.email@example.com\" APPLE_PASSWORD=\"app-specific-password\" \\\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --notarize --sign-identity \"Developer ID Application: Your Name (TEAM_ID)\"\n```\n\n### Python API\n\n```python\nfrom pathlib import Path\nfrom usdview_bundler.bundler import Bundler\n\n# Create and configure the bundler\nbundler = Bundler(\n    build_dir=Path(\"./build\"),\n    usd_src_dir=Path(\"/path/to/USD\"),\n    output_dir=Path(\"./dist\"),\n    archs=[\"ARM\", \"x64\"],\n    notarize=False,\n    app_name=\"usdview\"\n)\n\n# Build the application\nbundler.configure()\nbundler.build()\n```\n\n## Common Workflows\n\n### 1. Development Iteration (Local Testing)\n\nFor rapid development and testing, you can build a simple unsigned bundle:\n\n```bash\n# Create a basic build for local testing\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --app-name \"usdview-dev\"\n```\n\nThis produces an unsigned app bundle that works on your local machine. It's perfect for testing changes quickly without the overhead of signing and notarization.\n\n### 2. Build with Signing (Sharing with Colleagues)\n\nWhen you need to share the app with colleagues but don't need App Store distribution:\n\n```bash\n# Set up signing credentials\nexport APPLE_TEAM_ID=\"YOUR_TEAM_ID\"\n\n# Build with signing\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --app-name \"usdview-shared\" --sign\n```\n\nThis creates an app signed with your Developer ID, which allows other users to open the app without security warnings (after right-click opening it once).\n\nAdvanced Python example with custom settings:\n\n```python\nfrom pathlib import Path\nfrom usdview_bundler.bundler import Bundler\n\nbundler = Bundler(\n    build_dir=Path(\"./build\"),\n    usd_src_dir=Path(\"/path/to/USD\"),\n    output_dir=Path(\"./dist\"),\n    archs=[\"ARM\", \"x64\"],\n    app_name=\"usdview-team\"\n)\n\n# Enable signing with custom settings\nbundler.notarizer.team_id = \"YOUR_TEAM_ID\"  \nbundler.notarizer.sign_only = True  # Sign but don't notarize\n\nbundler.configure()\nbundler.build()\n```\n\n### 3. Build with Notarization (App Store Distribution)\n\nFor public distribution or App Store submission:\n\n```bash\n# Set up notarization credentials\nexport APPLE_ID=\"your.email@example.com\"\nexport APPLE_PASSWORD=\"app-specific-password\"\nexport APPLE_TEAM_ID=\"YOUR_TEAM_ID\"\n\n# Build, sign, and notarize\nusdview-bundler --build-dir ./build --usd-src-dir /path/to/USD --notarize\n```\n\nThis creates a fully signed and notarized app bundle that can be distributed to users. It involves:\n1. Building the app bundle\n2. Code signing with your Developer ID\n3. Submitting to Apple for notarization\n4. Stapling the notarization ticket to the app\n\nNote: You need an App-Specific Password for your Apple ID, which you can generate in your Apple ID account settings.\n\n## Configuration Options\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `--build-dir` | Directory for intermediate build files | (required) |\n| `--usd-src-dir` | Directory containing USD source code | (required) |\n| `--output-dir` | Directory for the final app bundle | Current directory |\n| `--archs` | Architectures to support | `[\"ARM\", \"x64\"]` |\n| `--app-name` | Name of the application | `\"usdview\"` |\n| `-n, --notarize` | Enable notarization | `False` |\n| `--sign` | Enable signing without notarization | `False` |\n| `--sign-identity` | Developer ID for signing | `None` (ad-hoc) |\n| `--force-rebuild` | Force rebuild even if output exists | `False` |\n| `--log-dir` | Directory for log files | `build-dir/logs` |\n| `--verbose` | Enable verbose logging output | `False` |\n| `--use-conda` | Use conda to create isolated Python environments | `False` |\n\n## Environment Variables\n\n| Variable | Description | Required For |\n|----------|-------------|-------------|\n| `APPLE_ID` | Your Apple ID email | Notarization |\n| `APPLE_PASSWORD` | App-specific password | Notarization |\n| `APPLE_TEAM_ID` | Your Apple Developer Team ID | Signing \u0026 Notarization |\n\n## Advanced Configuration\n\nFor advanced configuration, you can create a YAML config file:\n\n```yaml\n# config.yaml\napp_name: \"My USD View\"\nbundle_id: \"com.example.usdview\"\nversion: \"1.2.0\"\nicon_path: \"./custom_icon.png\"\npython_version: \"3.9\"\nextra_packages:\n  - numpy\n  - scipy\n```\n\nAnd use it with:\n\n```bash\nusdview-bundler --build-dir ./build --config ./config.yaml\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Dynamic Library Paths**\n\n   If you encounter errors like `dyld: Library not loaded`, the app bundle has issues with dynamic library paths. Try:\n   \n   ```bash\n   # Rebuild with verbose logging\n   usdview-bundler --build-dir ./build --verbose\n   ```\n\n2. **Signing Issues**\n\n   If code signing fails, verify your Developer ID credentials:\n   \n   ```bash\n   # Check available signing identities\n   security find-identity -v -p codesigning\n   ```\n\n3. **Notarization Failed**\n\n   Check the notarization status with:\n   \n   ```bash\n   xcrun altool --notarization-info \u003cRequestUUID\u003e -u \u003cyour.email@example.com\u003e\n   ```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeshula%2Fusdview-macos-bundler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeshula%2Fusdview-macos-bundler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeshula%2Fusdview-macos-bundler/lists"}