iphone - 用户界面自动化 : Failed to authorize rights with status: -60007

标签 iphone objective-c xcode ui-automation

所以我在命令行上运行UIAutomation

$ instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate 
<path-to-your-app>/<appname>.app/ -e UIASCRIPT <path-to-your-js-test-file> -e 
UIARESULTSPATH <path-to-results-folder>

这工作正常,模拟器打开,应用程序运行,但遇到此错误。

Failed to authorize rights (0x2) with status: -60007

我认为这与权限有关。

我该怎么做?

最佳答案

这就是我在 Instruments via command line - jenkins 上发布的答案

这里甚至还有一篇关于 Xcode command line authorization prompt error 的博文

这里我再解释一下:

我所做的是:

  • 将 jenkins 用户标记为管理员(不幸的是,atm 似乎没有其他方法)
  • 转到/etc/authorization
  • 搜索 key system.privilige.taskport
  • 将 allow-root 的值更改为 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

编辑

为了让 jenkins 识别成功的构建,我没有完美的解决方案,但有以下解决方法:

...
echo "Run instruments simulator"

instruments -t "$ORDER_AUTOMATION_TEST_TEMPLATE_PATH" "$FILE_DEBUG_APP" -e UIASCRIPT "$ORDER_AUTOMATION_TESTSCRIPT_PATH" -e UIARESULTSPATH "$DIRECTORY_INSTRUMENTS_RESULT"

returnCode=0

if test -a "Run 1/Assertion failed.png"; then
echo "failed"
returnCode=1
else
echo "passed"
returnCode=0
fi

rm -fR "Run 1"

rm -fR "instrumentscli0.trace"

echo "Removing app dir"

echo "$FILE_APPLICATIONS"

rm -fR "$FILE_APPLICATIONS"

echo $returnCode

exit $returnCode

编辑 2 检查自动化测试是否成功运行的更好方法:

# cleanup the tracefiles produced from instruments
rm -rf *.trace

##kill simulator afterwards
killall "iPhone Simulator"

##check if failures occured
# fail script if any failures have been generated
if [ `grep "<string>Error</string>" "$WORKSPACE/Automation Results/Run 1/Automation Results.plist" | wc -l` -gt 0 ]; then
    echo 'Build Failed'
    exit -1
else
    echo 'Build Passed'
    exit 0
fi

关于iphone - 用户界面自动化 : Failed to authorize rights with status: -60007 ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369449/

相关文章:

arrays - 单击collectionView转到另一个具有不同数组的collectionView

ios - 在顶部显示ViewController时未调用UITableViewCell的touchesEnded

ios - NSUserDefaults 和 alertView

iOS:找不到嵌入式框架,但仅在*某些*安装中

ios - URL 方案项目 0 已使用

objective-c - Macos x 应用程序的快捷方式

ios - iOS 和 Core Data 中 for 循环中奇怪的多个日志输出

xcode - 使用 Xcode 6 和 swift 将 sqlite3 数据库与 ios8 应用程序一起使用

ios - 类型标识符为 "com.apple.pkpass"的 NSItemProvider

iphone - 占位符右对齐的 UITextField 无法正确移动到右侧