To have the app launch start at login you just need to call
SMLoginItemSetEnabled with your bundle ID and bool value.
SMLoginItemSetEnabled ((__bridge CFStringRef)@"com.domain.example", YES) // NO to cancel launch at login
ServiceManagement framework to access this API.
This is not a private API so you can use this and submit your apps to App Store.