>

현재 자동화 플러그인 실행을 시작하기 위해 명령 줄 인터페이스를 시작하기 위해 bash 스크립트를 통해 Instruments를 사용하고 있습니다.

4.2에서는 이것이 잘 작동했지만 Xcode 4.3으로 업그레이드하면 권한이있는 사용자에게 '다른 프로세스를 분석'하라는 메시지가 표시됩니다. 올바른 자격 증명이 부여 된 경우에도 실제로 인증 된 사용자는 없습니다. 다음과 같은 오류가 발생합니다.

Failed to authorize rights (0x20) with status: -60007.
2012-02-27 19:30:37.232 instruments[54151:1c03] Failed to connect to local pid watcher     service: (os/kern) failure

인증 실패에도 불구하고 자동화 플러그인이 실행되지만 스크립트에 실제 베이비 시터가 자격 증명을 입력해야하므로 여러 가지 방법으로 이러한 명령 줄 실행의 목적을 무효화해야합니다. 사용자 정보를 인수로 추가 할 수 있습니까? 아니면 키를 누르지 않아도이 프롬프트를 건너 뛸 수있는 다른 방법이 있습니까?

-편집-

이 인증 대화 상자는 GUI에서 UIAutomation 테스트를 처음으로 실행하려고 할 때 나타납니다.

레이더 레이더 : // 10945962 를 제출했습니다.

-편집-

권한 부여 대화 상자가 GUI에서 응답되면 프롬프트가 명령 행에 표시되지 않습니다. 이 해결 방법은 '답변'으로 유효하지 않습니다.


  • 답변 # 1

    여러분에게 도움이되는 훌륭한 명령이 있습니다 :

    security unlock-keychain -p [password] "${HOME}/Library/Keychains/login.keychain"
    
    

    Mac에서 키 체인에 액세스하는 명령 줄 방법입니다. 자동화로 테스트하지는 않았지만 iOS 빌드를 Jenkins와 통합 한 방법입니다.

    ([비밀번호]를 비밀번호로 교체)

  • 답변 # 2

    알겠습니다.

    xcode 명령 줄 인증 프롬프트를 제거하는 방법에 대한 자세한 내용은 다음과 같습니다

    내가 한 일은 다음과 같습니다 :

    Jenkins 사용자를 관리자로 표시하십시오 (불행히도 다른 방법은 atm이없는 것 같습니다)

    /etc/authorization으로 이동

    system.privilige.taskport

    검색

    허용 루트의 값을 true로 변경

    <key>system.privilege.taskport</key>
    <dict>
        <key>allow-root</key>
        <false/> // change to -> <true>
        <key>class</key>
        <string>user</string>
        <key>comment</key>
        <string>Used by task_for_pid(...).
        ...
    </dict>
    
    

    이제 jenkins를 사용하여 커맨드 라인 스크립트를 통해 UIAutomation-Tests를 실행할 수 있습니다.

  • 답변 # 3

    알렉산더의 답변에 추가하면, 인증이 처리되는 방식 때문에 (매버릭스) Mavericks에 대해 알게되었습니다 , 이렇게해야합니다 :

    sudo security authorizationdb write system.privilege.taskport allow

    VMWare VM에서 Jenkins 작업을 통해 zucchini 기능 테스트를 실행 중이며 슬레이브가 시뮬레이터를 제대로 시작할 수 없었으며 아마도 잘못된 권한으로 인해 스플래시 화면에 멈출 것입니다. 이렇게하면이 문제를 해결하는 데 도움이되었고 다른 사람들에게도 도움이 되었기를 바랍니다.

  • 답변 # 4

    스크립트를 실행하는 사용자는 개발자 도구를 사용할 권한이 있어야합니다. 이 두 가지 방법으로 할 수 있습니다 :

    _developer 에 사용자 추가  그룹: 와이즈 비즈

    DevToolsSecurity 명령 줄 도구 사용

    UIAutomation 인스트루먼트가 제대로 작동하려면 인스트루먼트를 호출 한 사용자도 윈도우 서버를 시작할 수있는 사용자 여야합니다 (즉, UI를 실행해야 함). UIAutomation 실행시 윈도우 서버.

    이 두 가지는 Jenkins에서 UIAutomation을 사용하는 데 필요한 네 가지 또는 다섯 가지 비밀 중 두 가지입니다.

  • 답변 # 5

    이 문제를 부분적으로 해결했습니다. 명령 행에서 인스트루먼트를 실행하고 GUI (세션 당 한 번)에서 콘솔에 권한 부여 프롬프트가 표시됩니다 (콘솔을 실행할 때마다) :

    sudo dscl . append /Groups/_developer GroupMembership scriptusername
    
    

    xCode 4.3으로 업그레이드하기 전후에/etc/authorization 파일을 비교했습니다. 애플은 두 개의 키를 교체했다 :

    Instruments: Instruments wants permission to analyze other processes.
    Type your password to allow this.
    Name ([my-username]):
    Password:
    Failed to authorize rights (0x20) with status: -60007.
    2012-02-28 10:04:19.607 instruments[60398:1203] Failed to connect to
    local pid watcher service: (os/kern) failure
    
    

    with

    <key>com.apple.dt.instruments.process.analysis</key>
    <key>com.apple.dt.instruments.process.kill</key>
    
    

    /etc/authorization을 편집하고 새 키 아래에 누락 된 키를 추가했으며 콘솔의 문제가 해결되었습니다. 불행히도 GUI 프롬프트는 여전히 존재합니다.

    메이킹 키 :

    <key>com.apple.instruments.process.analysis</key>
    
    

    이 문제로 모든 문제를 해결할 수 있기를 바랍니다

    <key>com.apple.dt.instruments.process.analysis</key> <dict> <key>allow-root</key> <true/> <key>class</key> <string>user</string> <key>comment</key> <string>Rights for Instruments</string> <key>group</key> <string>admin</string> <key>shared</key> <true/> <key>timeout</key> <integer>36000</integer> </dict> <key>com.apple.dt.instruments.process.kill</key> <dict> <key>allow-root</key> <true/> <key>class</key> <string>user</string> <key>comment</key> <string>Rights for Instruments</string> <key>group</key> <string>admin</string> <key>shared</key> <true/> <key>timeout</key> <integer>5</integer> </dict>

  • 이전 html5 - Transition/CSS3를 사용하여 앵커로 스크롤
  • 다음 reporting services - SSIS가 SSRS에서 PDF를 저장하면 PDF가 손상됩니다