【问题标题】:Sharing realm between containing app and extension在包含应用程序和扩展程序之间共享领域
【发布时间】:2016-01-24 20:03:26
【问题描述】:

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

无法为“RealmSwift”加载底层模块

这有点奇怪,这不是模拟器的问题,但没关系。让我们为我的扩展添加 pods.frameworkLink Binary With Libraries

.../Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h:19:1: 类的重复接口定义 'BFCancellationTokenRegistration'

好的。让我们删除它。

无法为“RealmSwift”加载底层模块

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

.../Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h:19:1: 类的重复接口定义 'BFCancellationTokenRegistration'

好的。经过几次迭代后,我的项目文件夹中有几个 Pods.frameworkRealmSwift.framework。除了一个 Pods.framework 之外,让我们将它们全部删除。让我们将此框架的目标成员资格更改为应用程序和扩展程序。

.../Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h:19:1: 类的重复接口定义 'BFCancellationTokenRegistration'

无法为“RealmSwift”加载底层模块

一起。

如何解决这个问题?

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

【问题讨论】:

    标签: swift cocoapods realm ios-extensions


    【解决方案1】:

    只需在 Podfile 中创建第二个部分,即可指定应用扩展和主应用的依赖项。

    target 'MyApp' do
       pod 'RealmSwift'
    end
    
    target 'MyAppExtension' do
       pod 'RealmSwift'
    end
    

    CocoaPods 在设置依赖项并在编译时将它们安装到您的目标中做了很多额外的步骤,所以我认为简单地将 Pods.framework 复制到扩展构建步骤中不会起作用。

    如果您有多个对相同文件的引用,那么最好从您的项目中完全删除每个与 CocoaPods 相关的文件/文件夹,然后再次运行 pod install 以确保一切就绪再次正常启动。

    告诉我你的情况!

    【讨论】:

    • 谢谢。我尝试这样做,但又出现了一堆错误,所以我最终从头开始创建一个新项目并将我的源代码迁移到那里。
    • 嗨@lithium,你能解决这个问题吗?我有同样的问题
    • 是的,我从头开始创建了新项目,之后一切正常。不是我想推荐的解决方案,但它对我有用。
    • 嗨,@lithium 我尝试从头开始创建新项目但仍然无法正常工作,无论如何谢谢T_T
    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多