React Native 0.53.3 构建偶尔失败,AppCenter 上的 Xcode 10.1 - 没有这样的文件或目录

React Native 0.53.3 build sporadically fails with Xcode 10.1 on AppCenter - no such file or directory

我在 AppCenter 上使用 Xcode 10.1 构建了一个 RN 0.53.3 项目。偶尔(但不总是!)我遇到构建失败并出现以下错误:

2019-03-28T19:02:56.3749050Z clang: error: no such file or directory: 
'/Users/vsts/Library/Developer/Xcode/DerivedData/[...]/BuildProductsPath/Release-iphoneos/libRNI18n.a'

比较成功构建与不成功构建的构建日志表明,RNI18n 库在成功构建中构建了 两次 ,其中 第二次 库的构建将其放置在正确的位置 (Release-iphoneos/libRNI18n.a):

2019-03-28T16:46:27.3954430Z === BUILD TARGET RNI18n OF PROJECT Pods WITH CONFIGURATION Release ===
2019-03-28T16:46:27.4080460Z SymLink /Users/vsts/Library/Developer/Xcode/DerivedData/[...]/BuildProductsPath/Release-iphoneos/**RNI18n/libRNI18n.a** /Users/vsts/Library/Developer/Xcode/DerivedData/[...]/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libRNI18n.a

2019-03-28T16:51:33.3477640Z === BUILD TARGET RNI18n OF PROJECT RNI18n WITH CONFIGURATION Release ===
2019-03-28T16:51:33.3633230Z SymLink /Users/vsts/Library/Developer/Xcode/DerivedData/[...]/BuildProductsPath/Release-iphoneos/**libRNI18n.a** /Users/vsts/Library/Developer/Xcode/DerivedData/[...]/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libRNI18n.a

在失败的构建中,RNI18n 库仅构建一次,并放置在 "wrong" 文件夹中 (RNI18n/libRNI18n.a):

2019-03-28T18:58:19.6561500Z === BUILD TARGET RNI18n OF PROJECT Pods WITH CONFIGURATION Release ===
2019-03-28T18:58:19.6675790Z SymLink /Users/vsts/Library/Developer/Xcode/DerivedData/[...]/BuildProductsPath/Release-iphoneos/**RNI18n/libRNI18n.a** /Users/vsts/Library/Developer/Xcode/DerivedData/[...]/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/libRNI18n.a

我们在我们的项目中确实使用了 Cocoapods,具有以下 Podfile:

Target '...' do
  ...
  pod 'RNI18n', :path => '../node_modules/react-native-i18n'
end

我远不是 Xcode 专家,这让我发疯。似乎对 I18n 库的依赖可能会导致某些问题,这会导致构建在未构建的情况下继续进行。

但据我所知,依赖项配置正确。有没有可能我对库有两种依赖,一种是通过Pods,另一种是直接依赖,这让Xcode感到困惑?

我在我的项目中遇到了同样的问题,我按照这些步骤操作并且成功了 -

1) Select 目标项目
2)建设阶段
3) Select 目标依赖
4)添加缺少的库并编译(libRNI18n.a在你的情况下)

希望它也对你有用!