{"library":"pyobjc-framework-iobluetoothui","title":"PyObjC: IOBluetoothUI Framework","description":"pyobjc-framework-iobluetoothui provides Python wrappers for Apple's IOBluetoothUI.framework on macOS, allowing Python applications to interact with Bluetooth-related user interface components. It is part of the larger PyObjC project, which bridges Python and the Objective-C runtime. The current version is 12.1, with releases typically tied to new macOS SDKs and Python version support cycles.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-iobluetoothui"],"cli":null},"imports":["from IOBluetoothUI import IOBluetoothServiceBrowserController","from AppKit import NSApplication","from Foundation import NSObject","from PyObjCTools import AppHelper"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from Foundation import NSObject\nfrom AppKit import NSApplication\nfrom PyObjCTools import AppHelper\nfrom IOBluetoothUI import IOBluetoothServiceBrowserController\n\nclass AppDelegate(NSObject):\n    def applicationDidFinishLaunching_(self, notification):\n        print(\"Application finished launching. Showing Bluetooth Service Browser...\")\n        self.browserController = IOBluetoothServiceBrowserController.withServiceBrowserController_()\n        if self.browserController:\n            # Options can be specified here, e.g., 0 for default\n            self.browserController.setOptions_(0) \n            # showModal_ blocks until the browser dialog is dismissed\n            self.browserController.showModal_(None) \n            print(\"Bluetooth Service Browser dismissed.\")\n        else:\n            print(\"Failed to create IOBluetoothServiceBrowserController.\")\n        # In a real app, you might want to quit the app or keep it running\n        # For this quickstart, we'll quit after the modal dialog is dismissed.\n        NSApplication.sharedApplication().terminate_(None)\n\ndef main():\n    app = NSApplication.sharedApplication()\n    delegate = AppDelegate.alloc().init()\n    app.setDelegate_(delegate)\n    # Run the Cocoa event loop\n    AppHelper.runEventLoop()\n\nif __name__ == \"__main__\":\n    main()","lang":"python","description":"This quickstart initializes a macOS Cocoa application, sets up a simple delegate, and then displays the IOBluetoothServiceBrowserController as a modal dialog. The application will wait for the user to dismiss the Bluetooth browser before terminating. This demonstrates how to interact with a core UI component from the IOBluetoothUI framework.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"12.1","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.7,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyobjc-framework-iobluetoothui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.7,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}