问题描述
我创建了一个 React Native 库,它是在 React Native 项目中使用原生 iOS 框架的包装器。早些时候我使用 .framework 并且它工作正常。现在我在将这个库与 .xcframework 而不是 .framework 一起使用时遇到了问题。
我将此库添加为项目的依赖项,然后在运行 pod install
时出现以下错误:
[!] [Xcodeproj] 生成重复的 UUID:
当我打开项目并尝试构建它时,它为设备成功构建但在模拟器上失败。
以下是我在库项目中使用的 Podspec 文件:
Pod::Spec.new do |s|
s.name = "react-native-myLibrary"
s.version = "1.0.0"
s.summary = "react-native-myLibrary"
s.description = <<-DESC
react-native-myLibrary
DESC
s.homepage = "https://github.com/geektimecoil/react-native-onesignal"
s.license = "MIT"
s.author = { "author" => "author@domain.cn" }
s.platform = :ios,"10.0"
s.source = { :http => 'file:' + __dir__ + '/' }
s.source_files = "**/*.{h,m,swift}"
s.requires_arc = true
s.vendored_frameworks = 'MyLibrary.xcframework'
s.dependency "React"
end
在搜索解决方案时,我发现此错误是由 s.source_files = "**/*.{h,swift}"
引起的。所以,我评论了这一行并再次运行 pod install
。错误消失了,但没有向项目目标添加任何依赖项。任何人都可以向我提供 Podspec 文件以用于 React Native 库中的本地 .xcframework。提前致谢!
解决方法
我能够使用以下方法解决此问题:
s.source_files = "ios/*.{h,m,swift}"
s.vendored_frameworks = 'ios/Frameworks/MyLibrary.xcframework'
& 也可以通过将框架搜索路径从构建设置更新为 $(inherited)。
,试试这个:
s.preserve_paths = 'MyFraemwork.xcframework/*'
s.source_files = 'MyFraemwork.xcframework/ios-arm64_armv7/PicUPSDKv3.framework/Headers/*.{h,swift}'