---
title: SMAppService
framework: servicemanagement
role: symbol
role_heading: Class
path: servicemanagement/smappservice
---

# SMAppService

An object the framework uses to control helper executables that live inside an app’s main bundle.

## Declaration

```swift
class SMAppService
```

## Overview

Overview In macOS 13 and later, use SMAppService to register and control LoginItems, LaunchAgents, and LaunchDaemons as helper executables for your app. When converting code from earlier versions of macOS, use an SMAppService object and select one of the following methods depending on the type of service your helper executable provides: For SMAppServices initialized as LoginItems, the register() and unregister() APIs provide a replacement for SMLoginItemSetEnabled(_:_:). For SMAppServices initialized as LaunchAgents, the register() and unregister() methods provide a replacement for installing property lists in ~/Library/LaunchAgents or /Library/LaunchAgents. For SMAppServices initialized as LaunchDaemons, the register() and unregister() methods provide a replacement for installing property lists in /Library/LaunchDaemons.

## Topics

### Registering services

- [register()](servicemanagement/smappservice/register().md)
- [unregister()](servicemanagement/smappservice/unregister().md)
- [unregister(completionHandler:)](servicemanagement/smappservice/unregister(completionhandler:).md)

### Managing apps

- [mainApp](servicemanagement/smappservice/mainapp.md)
- [agent(plistName:)](servicemanagement/smappservice/agent(plistname:).md)
- [daemon(plistName:)](servicemanagement/smappservice/daemon(plistname:).md)
- [loginItem(identifier:)](servicemanagement/smappservice/loginitem(identifier:).md)

### Interacting with System Settings

- [openSystemSettingsLoginItems()](servicemanagement/smappservice/opensystemsettingsloginitems().md)

### Getting the state of the service

- [status](servicemanagement/smappservice/status-swift.property.md)
- [SMAppService.Status](servicemanagement/smappservice/status-swift.enum.md)

### Checking authorization for earlier OS version login items

- [statusForLegacyPlist(at:)](servicemanagement/smappservice/statusforlegacyplist(at:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Management

- [SMJobBless(_:_:_:_:)](servicemanagement/smjobbless(_:_:_:_:).md)
- [Authorization Constants](servicemanagement/authorization-constants.md)
- [Property List Keys](servicemanagement/property-list-keys.md)
