React Native 在Xcode 11上启动应用时权限被拒绝

xriantvc  于 2023-04-22  发布在  React
关注(0)|答案(2)|浏览(166)

我正在处理一个遗留的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 deintegratepod 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版本,并将相应地更新。
如果需要更多的信息,我很乐意编辑问题,提供额外的信息。

vyswwuz2

vyswwuz21#

我不知道从哪里开始,所以我会给予你一堆的可能性。测试它们,让我知道什么工作,如果没有,给我更多的信息,你已经尝试了什么,结果,你的项目是如何结构/你正在使用哪些技术。
如果您使用的是CocoaPods,请在iOS目录下再次运行pod install,然后清理、重建并重新运行应用程序。请确保您从ProjectName.xcworkspace文件打开项目,而不是ProjectName.xcodeproj文件。
确保您的项目名称、当前项目目录和完整路径(例如:/Users/name/My Projects/Project Name),应用名称包含任何空格或特殊字符,因为这可能会导致权限问题。
如果您的项目路径太长,也可能会出现问题,例如,如果它位于iCloud Drive文件夹中,则在一堆其他文件夹中,它看起来会像这样:

/Users/name/Library/Mobile Documents/com~apple~CloudDocs/Work Projects/Company Name/Project Name/cloned project

这太长了(而且充满了空格),这可能会导致问题。
如果这不起作用,您可以尝试以下步骤来解决权限方面的问题:
1.重置模拟器。在菜单栏中,转到硬件〉擦除所有内容和设置。这将重置模拟器到其原始状态。或者,您可以使用以下命令擦除所有模拟器中的所有内容:

xcrun simctl erase all

1.在Xcode中清理你的build文件夹,方法是进入Product〉Clean Build Folder或者按Shift + Command + K。
1.尝试修复DerivedData文件夹的权限。可以通过在终端中运行以下命令来执行此操作:

sudo chflags -R nouchg ~/Library/Developer/Xcode/DerivedData
sudo chmod -R 777 ~/Library/Developer/Xcode/DerivedData

1.类似地,对CoreSimulator文件夹执行相同的操作:

sudo chflags -R nouchg ~/Library/Developer/CoreSimulator
sudo chmod -R 777 ~/Library/Developer/CoreSimulator

1.在Xcode中重建您的项目,并尝试在模拟器上再次运行应用程序。
如果在执行上述所有操作后问题仍然存在,请考虑在将Xcode更新到新版本后测试是否可以重现该问题,因为有时兼容性问题可能会导致此类问题。(也可以从Homebrew获得)尝试Xcode 11.0,11.1,11.2等。如果一切失败,尝试检查React Native依赖项,如果可能的话更新它们。

lawou6xi

lawou6xi2#

之前的开发将模拟器从Excluded_Arch的调试和发布中排除,Excluded_Arch位于Xcode 11的User-Defined中。
删除条目解决了我的问题。

相关问题