启动MacOS Catalina无法打开输入文件错误

问题描述

为什么无法启动加载我的zsh程序?我很迷惑。我的testplisterror.log给了我这个错误

/ bin / zsh:无法打开输入文件:/Users/controlroom/Desktop/Bin/testplist.zsh-以下是我在launchAgents目录中的com.testplist.plist文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.testplist.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/zsh</string>
        <string>/Users/controlroom/Desktop/Bin/testplist.zsh</string>
    </array>
    <key>StartInterval</key>
    <integer>30</integer>
    <key>StandardOutPath</key>
    <string>/Users/controlroom/Desktop/testplist.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/controlroom/Desktop/testplisterror.log</string>
</dict>
</plist>

这是我的testplist.zsh文件

#!/bin/zsh
date >> ~/Desktop/launchdtest.txt

解决方法

这是因为TCC错误,但由于脚本没有GUI,您不会收到错误。因此,正如戈登·戴维森(Gordan Davisson)所说,苹果公司有一些TTC准则。这些特定的文件夹在Catalina中受TCC保护:

〜/桌面, 〜/文件, 〜/下载, iCloud云端硬盘,

第三方云存储(如果使用), 可移动卷 网络卷。

https://eclecticlight.co/2020/01/16/a-guide-to-catalinas-privacy-protection-3-new-protected-locations/

“逻辑上建议您可以将该脚本添加到“全盘访问”列表中,但是我认为您不能,因为它只接受应用程序和可执行文件。”因此,这里的问题是,由于Apples TCC,目前您无法将.zsh脚本添加到“全盘访问列表”。“

,

首先,要启动以抓取文件,您必须添加:

<key>UserName></key> 
<string>usernamehere</string> 

换句话说,该程序必须以用户名运行-如果您没有此名称,它将找不到该文件。

第二,您必须添加:

<key>GroupName</key> 
<string>wheel</string>

第三步-有时,除非您添加

,否则第三方命令无法在脚本中正确执行
<key>EnvironmentalVariables</key> 
<key>PATH</path> 
<string>/usr/local/bin:...etc.</string> 

由于某种原因,如果脚本中没有此文件,则找不到第三方CLI应用程序的可执行文件。

因为语法可能很困难且容易出错,所以我强烈建议使用LaunchControl应用程序执行此操作。这是一个非常有用的软件!