我正在处理一个遗留的react-native代码库,使用Xcode 11.3构建iOS应用程序。经过多次尝试和错误,我得到了一个成功的构建,但我在模拟器中运行应用程序时遇到了一些权限问题。我无法访问物理iOS设备。
The file “***” couldn’t be opened because you don’t have permission to view it.
Domain: NSCocoaErrorDomain
Code: 257
Failure Reason: You don’t have permission.
Recovery Suggestion: To view or change permissions, select the item in the Finder and choose File > Get Info.
User Info: {
NSFilePath = "/Users/***/Library/Developer/Xcode/DerivedData/***-dxvphugocaepzfaicmcbykxrlgrt/Build/Products/Debug-iphonesimulator/***.app";
}
我做了一些研究,找不到其他地方的解决方案。我仔细检查了可执行文件是${EXECUTABLE_NAME}
,它与info.plist文件匹配。如果我尝试手动拖动以将应用程序安装到模拟器中,它说发生了错误。文件在那里。
Failed to chmod /Users/***/Library/Developer/CoreSimulator/Devices/2CAAF9A3-3368-4BF8-B13D-C02888E9E653/data/Bundle/Application/7DADE8A3-0EC4-4AB2-B80B-E5E2BE84562C/AppName.app/AppName : No such file or directory
我试着用下面的命令给予许可,但它没有工作。sudo chown -R username /Users/username/Library/Developer/Xcode
=================================================编辑:
我已经按照建议从ProjectName.xcworkspace
打开了项目。
做了pod deintegrate
和pod install
,删除了派生数据并多次清理了构建文件。
我使用其中一个答案上提供的命令为文件夹设置了权限,并在系统级别上授予了Xcode权限。
一些额外的信息:
System:
OS: macOS 10.15.2
CPU: (4) x64 Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
Memory: 7.43 GB / 16.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 10.24.1 - /usr/local/bin/node
Yarn: 1.22.19 - ~/Documents/ArenaTest/victoria-royals-app/node_modules/.bin/yarn
npm: 6.14.12 - /usr/local/bin/npm
Watchman: 4.7.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
IDEs:
Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.10 => 0.59.10
npmGlobalPackages:
react-native-cli: 2.0.1
我的路径似乎不包含任何特殊字符,除了父react-native文件夹中的-
,如下所示:app-name
。
我将尝试使用Xcodes应用程序来构建不同的Xcode版本,并将相应地更新。
如果需要更多的信息,我很乐意编辑问题,提供额外的信息。
2条答案
按热度按时间vyswwuz21#
我不知道从哪里开始,所以我会给予你一堆的可能性。测试它们,让我知道什么工作,如果没有,给我更多的信息,你已经尝试了什么,结果,你的项目是如何结构/你正在使用哪些技术。
如果您使用的是CocoaPods,请在iOS目录下再次运行
pod install
,然后清理、重建并重新运行应用程序。请确保您从ProjectName.xcworkspace
文件打开项目,而不是ProjectName.xcodeproj
文件。确保您的项目名称、当前项目目录和完整路径(例如:
/Users/name/My Projects/Project Name
),应用名称不包含任何空格或特殊字符,因为这可能会导致权限问题。如果您的项目路径太长,也可能会出现问题,例如,如果它位于iCloud Drive文件夹中,则在一堆其他文件夹中,它看起来会像这样:
这太长了(而且充满了空格),这可能会导致问题。
如果这不起作用,您可以尝试以下步骤来解决权限方面的问题:
1.重置模拟器。在菜单栏中,转到硬件〉擦除所有内容和设置。这将重置模拟器到其原始状态。或者,您可以使用以下命令擦除所有模拟器中的所有内容:
1.在Xcode中清理你的build文件夹,方法是进入Product〉Clean Build Folder或者按Shift + Command + K。
1.尝试修复DerivedData文件夹的权限。可以通过在终端中运行以下命令来执行此操作:
1.类似地,对CoreSimulator文件夹执行相同的操作:
1.在Xcode中重建您的项目,并尝试在模拟器上再次运行应用程序。
如果在执行上述所有操作后问题仍然存在,请考虑在将Xcode更新到新版本后测试是否可以重现该问题,因为有时兼容性问题可能会导致此类问题。(也可以从Homebrew获得)尝试Xcode 11.0,11.1,11.2等。如果一切失败,尝试检查React Native依赖项,如果可能的话更新它们。
lawou6xi2#
之前的开发将模拟器从Excluded_Arch的调试和发布中排除,Excluded_Arch位于Xcode 11的User-Defined中。
删除条目解决了我的问题。