在 React Native 库中使用本地 .xcframework 的 Podspec 文件应该是什么?

问题描述

我创建了一个 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}'

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...