【发布时间】:2016-12-13 01:00:18
【问题描述】:
首先是一些上下文:
我已经按照question 的答案发布了关于如何在两个 iOS 应用程序之间共享 Swift 代码的帖子。 @Silvan-Mosberger 好心地给了我一个使用迦太基的分步食谱,我正在关注。
私有共享框架仅使用 Carthage 进行依赖管理,但我的消费应用程序同时使用 Carthage 和 Pod(因为某些框架仅适用于 Pod)。
我的消费应用程序将 Carthage 用于共享库也使用的所有框架。也就是说,Cartfiles 看起来是一样的,只是消费应用程序也依赖于共享框架。
我的问题(我认为)与 Parse 框架、ParseUI 框架和 ParseFacebookUtilsV4 框架有关。 Parse 可以与 Carthage 一起使用,但 ParseUI 和 ParseFacebookUtilsV4 不能。
我将 Pod 用于 ParseUI 和 ParseFacebookUtilsV4 框架。但是,这两个框架都依赖于 Parse。因此,Pod 提供了一个 Parse 框架(Carthage 提供了一个)。它们应该是相同的版本(我没有指定版本)。
现在到实际问题(TL;DR):
当我运行我的应用程序时,它会立即死亡并出现以下错误:
dyld: Library not loaded: @rpath/Parse.framework/Parse
Referenced from: /var/containers/Bundle/Application/6B8D5312-7690-477F-B406-3CA8F5C994CF/x.app/x
Reason: Incompatible library version: x requires version 1.0.0 or later, but Parse provides version 0.0.0
这可能是 2 个 Parse 框架的问题吗?也许是完全不同的东西?
任何帮助将不胜感激。
彼得...
更新
所以,为了弄清楚发生了什么,我创建了一个新的应用程序项目来模拟失败的应用程序。我正在使用相同的 Carthage 文件和 Podfile。
新应用似乎按预期工作。我可以调用 Parse 库中的方法。没有崩溃。
考虑到崩溃的应用程序中的 pod 内容可能是“陈旧的”,我找到了一种方法来强制更新 pod here,使用以下命令:
#!/usr/bin/env bash
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
不幸的是,这没有帮助。应用程序仍然如上所示崩溃。
有人对这可能是什么有任何建议吗?关于如何确定问题所在有什么建议吗?
我真的需要一些帮助:)。
【问题讨论】:
标签: swift parse-platform frameworks cocoapods carthage