在包含应用和扩展程序之间共享领域

时间:2016-01-24 20:03:27

标签: swift cocoapods realm ios-extensions

我在包含app和扩展程序(自定义键盘)之间共享领域,它在模拟器上运行正常,但是当我尝试在真实设备上运行此应用程序时,我有以下错误:

  

无法为“RealmSwift”

加载基础模块

有点奇怪,这不是模拟器的问题,但确定。我们将 pods.framework 添加到我的扩展程序的链接二进制文件库

  

... /荚/螺栓/螺栓/通用/ BFCancellationTokenRegistration.h:19:1:   类的重复接口定义   'BFCancellationTokenRegistration'

行。我们将其删除。

  

无法为“RealmSwift”

加载基础模块

不能争辩。让我们尝试将 RealmSwift.framework 添加到扩展名。

  

... /荚/螺栓/螺栓/通用/ BFCancellationTokenRegistration.h:19:1:   类的重复接口定义   'BFCancellationTokenRegistration'

行。经过几次迭代后,我的项目文件夹中有几个 Pods.framework ,而 RealmSwift.framework 也是如此。除了一个 Pods.framework 之外,让我们删除它们。让我们将此框架的目标成员身份更改为应用和扩展程序。

  

... /荚/螺栓/螺栓/通用/ BFCancellationTokenRegistration.h:19:1:   类的重复接口定义   'BFCancellationTokenRegistration'

  

无法为“RealmSwift”

加载基础模块

在一起。

如何解决这个问题?

更新:我正在使用Realm和Parse cocoapods。

1 个答案:

答案 0 :(得分:0)

只需在Podfile中创建第二部分即可让您指定应用扩展程序和主应用程序的依赖关系。

target 'MyApp' do
   pod 'RealmSwift'
end

target 'MyAppExtension' do
   pod 'RealmSwift'
end

CocoaPods在设置依赖项并在编译时将它们安装到目标中时做了很多额外的步骤,所以我不认为只需将Pods.framework复制到扩展构建步骤就可以了。

如果您对浮动的相同文件有多个引用,那么从项目中完全删除每个与CocoaPods相关的文件/文件夹并再次运行pod install可能是个好主意。确定它们都已正确设置。

让我知道你怎么去!