{"library":"pyobjc-framework-passkit","title":"PyObjC PassKit Framework","description":"pyobjc-framework-passkit provides Python bindings for Apple's PassKit framework on macOS, enabling Python applications to interact with Wallet passes. It is part of the larger PyObjC project, offering direct access to the native macOS APIs. Version 12.1 is current, with releases typically synchronized with new macOS SDKs and PyObjC core updates.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-passkit"],"cli":null},"imports":["import PassKit","import PassKit\npass_library = PassKit.PKPassLibrary.sharedPassLibrary()"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import PassKit\nimport objc\n\ndef check_passkit_availability():\n    if PassKit.PKPassLibrary.isPassLibraryAvailable():\n        print(\"PassKit library is available on this system.\")\n        pass_library = PassKit.PKPassLibrary.sharedPassLibrary()\n        print(f\"Shared Pass Library object: {pass_library}\")\n        # Note: Interacting with passes (e.g., listing, adding) often requires\n        # your Python script to be bundled as a properly signed macOS application\n        # with specific entitlements.\n        # Attempting to fetch passes in a non-entitled script might result in empty lists or errors.\n        \n        # Example: Check if the current app is allowed to add passes\n        if pass_library.canAddPasses():\n            print(\"This application is authorized to add passes to Wallet.\")\n        else:\n            print(\"This application is not authorized to add passes to Wallet.\")\n\n    else:\n        print(\"PassKit library is not available on this system.\")\n\nif __name__ == \"__main__\":\n    check_passkit_availability()","lang":"python","description":"This quickstart demonstrates how to import the `PassKit` framework and check if the PassKit library is available on the current macOS system. It also shows how to get the shared `PKPassLibrary` instance and check if the application has permission to add passes. Note that full interaction with Wallet passes typically requires the Python script to be run within a properly signed macOS application bundle with the necessary entitlements.","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-passkit","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-passkit","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-passkit","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-passkit","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.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-passkit","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-passkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.9,"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-passkit","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-passkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.5,"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-passkit","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-passkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.4,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}