Я получил это работает.Все, что мне нужно было сделать, это добавить эти строки, прежде чем я вставлю приложение в элементы входа в систему:
AuthorizationRef auth = NULL;
AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth);
LSSharedFileListSetAuthorization(globalLoginItems, auth);
Документы для LSSharedFileListSetAuthorization
говорят, что мы должны получить право system.global-login-items
для этого, но этовсе же сработало!
Но это не получится, если пользователь не является администратором.Для того, чтобы это работало тогда, вам придется сделать следующее:
AuthorizationItem right[1] = {{"system.global-login-items.", 0, NULL, 0}};
AuthorizationRights setOfRights = {1, right};
AuthorizationRef auth = NULL;
AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth);
AuthorizationCopyRights(auth, &setOfRights, kAuthorizationEmptyEnvironment,
(kAuthorizationFlagDefaults
| kAuthorizationFlagInteractionAllowed
| kAuthorizationFlagExtendRights), NULL);
Также рекомендуется обратиться к документам для подробностей.