我正在关注 React Native 官方网站上的教程。
使用以下内容构建我的项目:
react-native run-ios
我得到错误:
Found Xcode project TestProject.xcodeproj
xcrun: error: unable to find utility "instruments", not a developer
tool or in PATH
Command failed: xcrun instruments -s
xcrun: error: unable to find utility "instruments", not a developer
tool or in PATH
虽然,当我从 .xcodeproj 运行应用程序时,一切正常。
有什么建议么?
查看此链接 (Running react-native run-ios occurs an error?)。 Command line tools
的位置似乎有问题。
在 Xcode 中,选择 Xcode 菜单,然后选择 Preferences,然后选择 Locations 选项卡。从下拉列表中选择您的 Xcode 版本并退出 Xcode。
https://i.stack.imgur.com/M6w7Q.png
您可能需要安装或设置 Xcode 命令行工具的位置。
通过命令行
如果您下载了 Xcode,您可以运行以下命令来设置路径:
sudo xcode-select -s /Applications/Xcode.app
如果尚未安装命令行工具,您可能需要先运行它:
xcode-select --install
在安装命令行工具之前,您可能需要接受 Xcode 许可证:
sudo xcodebuild -license accept
通过 Xcode
或通过 Xcode (Xcode > Preferences > Locations
) 调整 Command Line Tools
设置:
https://i.stack.imgur.com/cVeTY.png
默认情况下,安装 Xcode 后没有选择命令行,所以打开 Xcode 并转到 Preferences >> Locations 并设置 Command Line Tools...
这在 MAC High Sierra 中对我有用,Xcode 版本 9.3:
https://i.stack.imgur.com/VdBJn.jpg
按 i
打开 iOS 模拟器...
https://i.stack.imgur.com/2fNj7.png
你可以看到一个很酷的新 iPhone 模拟器,如下图所示:
https://i.stack.imgur.com/3G0KO.png
在 Xcode 13 中遇到此问题的任何人(如我)的更新 - instruments
命令已被删除。
将 package.json
文件中的 react-native
更新到最新版本将不再尝试使用 instruments
命令。
就我而言,问题是没有安装 Xcode。
我必须在第一次安装后接受 XCode 许可证,然后才能运行它。您可以运行以下命令以通过命令行获取许可证提示。您还必须输入 agree
并确认。
sudo xcodebuild -license
sudo xcodebuild -license accept
(来源:apple.stackexchange.com/a/213151/89456)
https://i.stack.imgur.com/fvWo9.png
对于像我这样在更新 Xcode 后遇到此问题但位置设置没有问题的人,重新启动我的计算机就可以了。
对我来说,原来有一个 iOS 系统更新挂起,要求重新启动计算机。重新启动并让更新完成解决了我的问题。
在我的情况下,SDKROOT 环境变量是错误的,它引用了旧版本的 iPhoneOSxx.x.sdk。 (也许这会在重新启动后自动解决?)
您可以通过运行 echo $SDKROOT
并验证它是否是有效路径来进行检查。
我通过在 .bash_profile 中更新来修复它:
export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk
这些解决方案都不适合我。这两个类似的问题提供了有效的临时解决方案,似乎模拟器进程没有正确关闭:
杀死模拟器进程
来自https://stackoverflow.com/a/52533391/11279823
退出模拟器和 Xcode。打开活动监视器,选择 cpu 选项并搜索 sim,杀死所有显示为结果的进程。然后启动终端并运行 sudo xcrun simctl erase all。它将删除所有模拟器的所有内容。根据内容,如果您在某个地方登录密码将会消失,那么安装在该模拟器中的所有开发人员应用程序都将消失。
在启动包之前打开模拟器
来自https://stackoverflow.com/a/55374768/11279823
open -a Simulator; npm start
希望找到一个永久的解决方案。
转到 Xcode Preferences 找到位置选项卡 在 Given Command Line Tools 中设置 Xcode 版本
现在,它将成功运行。
如果以前的答案对您没有帮助,您可能正在处理过时的 react-native
版本。如果你想在不升级 React-Native 的情况下在设备上运行你的应用程序,你必须直接从 Xcode 运行应用程序,而不是在 CLI 中运行。因此,打开 <appname>.xcworkspace
,在右侧下拉菜单中选择您的设备,然后按“运行”图标。
在 Mac 中:毕竟,您遇到了这个问题,可能会在系统偏好设置 -> 网络 -> 以太网 -> 选择高级 -> 代理中丢失以下内容
添加以下行,
*.local,本地主机
这就是我得到解决方案的方式,
> rm -rf ~/Library/Developer/Xcode/DerivedData
> sudo rm -rf /Library/Developer/CommandLineTools
> xcode-select --install
> sudo xcodebuild -license accept
Xcode > Preferences > Location > Command Line Tools 选择。
只需转到 Xcode
从左上角菜单 Xcode->preferences-> location-> 单击命令行选项并设置 Xcode 版本,单击 Xcode。
对于任何此类问题:
转到 .expo 文件夹 查找 apk-cache 删除该文件夹
你完成了..
希望能帮助到你?