Авторизация разработчика без прав администратора в Xcode / Mac OS
Я использую стандартную учетную запись пользователя для моих ежедневных задач на Mac OS. С момента обновления до Snow Leopard меня просят сделать следующее, когда программа запускается из Xcode:
"введите имя и пароль пользователя в группе "инструменты разработчика", чтобы разрешить доступ к инструментам разработчика для внесения изменений"
хотя я знаю имя пользователя/пароль администратора, это раздражает (хотя требуется только один раз для входа в систему).
доступ к инструментам разработчика запрашивает права на "система.привилегия.taskport.отладка " из приложения gdb-i386-apple-darwin.
каков наилучший способ обойти это?
10 ответов:
вам нужно добавить имя пользователя OS X в
_developerгруппы. Смотрите сообщения в этой теме для получения дополнительной информации. Следующая команда должна сделать трюк:sudo dscl . append /Groups/_developer GroupMembership <username>
наконец, я смог избавиться от него с помощью
DevToolsSecurity -enableна терминал. Спасибо @joar_at_work!FYI: Я нахожусь на Xcode 4.3, и нажал отключить кнопка, когда он запустил в первый раз, не спрашивайте, почему, просто предположим, что моя собака заставила меня сделать это :)
вы должны добавить себя в группу "инструменты разработчика". Общий синтаксис для добавления пользователя в группу в OS X выглядит следующим образом:
sudo dscl . append /Groups/<group> GroupMembership <username>Я считаю, что имя для группы DevTools является
_developer.
решение Неда Дейли работает отлично, при условии, что ваш пользователь может
sudo.если нет, то можно
suдля учетной записи администратора, а затем использовать егоdscl . append /Groups/_developer GroupMembership $user, где $user-имя пользователя.однако я ошибочно думал, что это не так, потому что я неправильно набрал имя пользователя в команде, и он молча терпит неудачу.
поэтому, после ввода этой команды, вы должны проверить его. Это позволит проверить, если $user находится в $group, где переменные представляют соответственно имя пользователя и имя группы.
dsmemberutil checkmembership -U $user -G $groupэта команда либо напечатает сообщение
user is not a member of the groupилиuser is a member of the group.
ответ, предложенный @Stacy Simpson:
мы боремся с проблемой, описанной в этих потоках, и ни одно из решений, похоже, не работает:
- Stop "developer tools access должен взять под контроль другой процесс отладки, чтобы продолжить" alert
- авторизация разработчика без прав администратора в Xcode / Mac OS
поскольку я новичок в SO, я не могу опубликовать ни в одном потоке. (Этот первый фактически закрыт, и я не согласен с рассуждениями о локализации...)
в любом случае, мы создали обходной путь с помощью AppleScript, который может заинтересовать людей. Приведенный ниже сценарий должен выполняться асинхронно перед запуском автоматического теста:
osascript <script name> <password> &вот скрипт:
on run argv # Delay for 10 seconds as this script runs asynchronously to the automation process and is kicked off first. delay 10 # Inspect all running processes tell application "System Events" set ProcessList to name of every process # Determine if authentication is being requested if "SecurityAgent" is in ProcessList then # Bring this dialogue to the front tell application "SecurityAgent" to activate # Enter provided password keystroke item 1 of argv keystroke return end if end tell end runвероятно, не очень безопасно, но это лучшая работа вокруг мы придумали, чтобы позволить тестам работать без необходимости пользователя интервенция.
надеюсь, я могу получить достаточно очков, чтобы опубликовать ответ; или кто-то может снять защиту с этого вопроса. С уважением.
Я нахожусь на снежном барсе, и это не совсем сработало для меня. Но сработала следующая процедура:
- сначала добавлена еще одна учетная запись с правами администратора, поставив галочку "Разрешить пользователю администрировать этот компьютер" в разделе Учетные записи, например учетная запись с именем пользователя тест
- вошли в тест счета
- запустил Xcode, скомпилировал и запустил мой проект iPhone. Все в порядке, никаких ошибок не было выброшено, связанных с разрешения
- вышел из тест счета
- войти в систему с другой учетной записью, имеющей права администратора
- забрал привилегии администратора из тест учетная запись, удалив галочку из "разрешить пользователю администрировать этот компьютер" в разделе Учетные записи
- зашли обратно в тест счета
- удалил каталог проекта iPhone и снова вышел из репозитория (в моем случае svn)
- запустил Xcode, скомпилировал и запустил проект. Я не получил никаких ошибок, и приложение хорошо работает в симуляторе iPhone.
после:
sudo dscl . append /Groups/_developer GroupMembership <username>в ответ выше, вы можете еще вам будет предложено ввести свой собственный пароль:
нам нужна авторизация от администратора для запуска отладчика. Это произойдет только один раз за сеанс входа в систему.
что это на самом деле означает любой _developer пользователь groupmember, поэтому здесь будет работать только ваш пользователь/пароль без администратора, но чтобы полностью избавиться от него (без подсказок после перезагрузки) вам также нужно будет запустить:
sudo DevToolsSecurity -enable(запуск его с sudo в качестве администратора пользователя / как root сделает это так, что вы можете сделать это удаленно без запроса пароля gui)
для меня, я нашел предложение в следующем потоке помогли:
он предложил выполнить следующую команду в терминал применение:
sudo /usr/sbin/DevToolsSecurity --enable
Comments