问题标签 [carthage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
534 浏览

ios - 在 Xcode 7 中,我怎样才能拥有同名的静态库目标和框架目标?

我正在尝试将现有的 GitHub 存储库(RMStore,但它可以应用于任何存储库)转换为与Carthage兼容。这需要向 Xcode 项目添加一个框架目标。我希望调用生成的框架RMStore.framework,但是我无法为名为RMStore的 Xcode 项目创建一个新目标,因为已经有一个具有该名称的目标,它构建了一个静态库(我不想摆脱那个目标)。

我创建了一个名为RMStoreFramework的新目标,但生成的框架名为RMStoreFramework.framework,这不是我想要的。那么,有没有办法:

  1. 创建两个具有相同名称的目标,或者,
  2. 使生成的框架的名称与目标名称不同?
0 投票
12 回答
42243 浏览

objective-c - 模块“myFramework”的伞头文件不包括标题“otherFramework.h”

我的 Swift / iOS9 框架 'viewer_protocol' 使用另一个外部 Objective-C 框架(CocoaAsyncSocket)。我正在使用 Carthage 构建 CocoaAsyncSocket。到目前为止一切正常:在我的框架 Xcode 项目中有一个示例应用程序,使用我的框架没有任何问题。

现在我想在不同的 Xcode 项目中使用我的框架 - 尽管使用 Carthage。我只包含我的框架作为依赖项,Carthage 自动将依赖项解析为 CocoaAsyncSocket。我将这两个框架嵌入到这个新的 Xcode 项目中并构建了我的应用程序:这里一切正常 - 除了一个我无法摆脱的警告:

这是我的框架标题:

如您所见,CocoaAsyncSocket.h 已导入。此外,在我的框架内,包含 CocoaAsyncSocket.h 文件:

我的框架文件夹

我在这里缺少什么?我在我的框架内使用了其他几个外部框架,它们没有任何警告——所有这些外部框架都是用 Swift 编写的——CocoaAsyncSocket 是纯 Objective-C。

这是我的框架 module.modulemap:

更新

我找到了一个解决方案:将我的框架标题中的导入语句从

现在 Xcode 找到头文件并且警告消失了。

0 投票
1 回答
229 浏览

ios - sqlite.swift 与迦太基

我在我的 Swift 项目中使用 sqlite.swift。到目前为止,我使用 Cocoapods 来安装/更新库。

是否可以在 Carthage 安装使用 Cocoapods 的 sqlite.swift ?

0 投票
0 回答
291 浏览

ios - 如何使用 Carthage 制作面向未来的项目

我有一个项目,我在其中使用 Carthage 进行依赖管理。我希望它能够轻松克隆并立即为Future Me © 运行。我已经提交Carthage/Checkouts,但有些框架带有预构建二进制文件。您可以使用标志强制下载源‑‑no‑use‑binaries,但添加框架文件会更容易。什么(以及为什么)应该和不应该在我的 .gitignore 中以使项目面向未来?

0 投票
0 回答
459 浏览

xcode - Carthage 框架目标找不到依赖项

我创建了一个库,我想通过 CocoaPods 和 Carthage 分发它。

我无法使用 Carthage 构建共享框架目标,我收到构建错误,基本上说明它找不到 Alamofire 和 SwiftyJSON,它们是我的框架的依赖项。我已将 SwiftyJSON 和 Alamofire 添加到我的 Cartfile 以及我的共享框架目标的 Linked Frameworks and Libraries 部分。

如果我首先运行 Pod install 一切正常,大概是因为 CocoaPods 使我的依赖项可用,但显然这不是一个好的解决方案。

0 投票
1 回答
399 浏览

xcode - tvos:Alamofire 框架的 iTunesConnect 验证失败:不包含位码

上传到 iTunesConnect 以进行 TestFlight 分发后,我的 tvOS 应用程序验证失败。

验证失败并显示以下消息:

无效的可执行文件 - 可执行文件“MyApp.app/Frameworks/Alamofire.framework/Alamofire”不包含位码。

我的购物车文件:github "Alamofire/Alamofire" "tvOS".

我正在使用 XCode 7.1 的发行版。我没有看到ENABLE_BITCODE我的 tvOS 目标。(我假设我的目标启用了位码,因为它对于 tvOS 是强制性的)。此外,BITCODE_GENERATION_MODE设置bitcode为 Alamofire tvOS 分支。

otool -l Carthage/Build/tvOS/Alamofire.framework/Alamofire | grep LLVM不返回任何东西。所以,似乎我缺少位码支持。

在模拟器和真实设备上一切正常。

如何使用 Carthage 构建支持位码的 Alamofire 框架版本,以便通过 Apple 服务器端验证?

0 投票
0 回答
557 浏览

swift - Carthage ld:警告:找不到选项“空搜索路径”的目录

我试图将 carthage 与一个全新的空项目一起使用,并在此处向 Cartfile 添加两个依赖项,如下所示:

接下来我要去:

并在构建 XCGLogger 后得到以下错误:

我试图删除和添加不同的搜索路径但没有运气:(

0 投票
0 回答
328 浏览

ios - 条件框架链接(SDWebImage vs WebImage)

我有一个引用“SDWebImage”的自定义框架。问题是 SDWebImage 使用的不同模块/框架名称,如自述文件中所述: https ://github.com/rs/SDWebImage#usage

自从我改用嵌入 Swift Code 后,我摆脱了 Cocoapods,因为它给我带来了太多问题,改用 Carthage。到目前为止一切正常,但现在我遇到了一个问题,即 Carthage 依赖WebImage项链接到“”框架,而使用我的框架的项目通过 Cocoapods 链接到“ SDWebImage”。

我已经将与 WebImage 的链接切换为weak via -weak_framework WebImage,因此我没有收到链接错误,但问题仍然存在。

在我的框架中,我通过导入 WebImage 源

在运行时找不到,因为它需要SDWebImage/SDWebImageManager.h. 由于弱链接,我没有收到任何错误,但所有对象都是 nil,因此没有执行任何操作。

显然,我似乎可以通过运行时检查以某种方式解决这个问题,但是如果符号名称相同,只是使用不同的命名空间,我该怎么做呢?有没有办法“有条件地”使用 SDWebImage(如果可用)和 WebImage 否则?

我还尝试(弱)链接到 SDWebImage 框架和 WebImage,从两个源导入标头,但显然这既不是很干净也不起作用,似乎 SDWebImageManager 已解决/链接到先导入的任何一个。

之前有人对 SDWebImage 有任何想法或遇到过问题吗?

0 投票
0 回答
429 浏览

ios - 框架的可选集成代码:可选依赖还是单独的框架?

我是框架 X 的作者,我想分发一点点胶水代码,以选择性地与框架 Y 和 Z 集成。客户端应该能够将 X 用作独立框架,但能够使用集成代码如果他们也使用 Y 和/或 Z。

头条问题是:目前是否有这样做的最佳实践,以及权衡是什么?详细的子问题如下。

我的具体情况:我是Siesta的作者。与 SwiftyJSONAlamofire集成只需要一点代码。但是,Siesta 不需要这些框架中的任何一个。

我看到两个可接受的选择:

  1. 在我的 Xcode 构建中将框架 Y 和 Z 配置为框架 X 的可选依赖项。
  2. 分发单独的框架:X 核心、X+Y 粘合和 X+Z 粘合。

选项 1 乍一看似乎很有希望。这不正是可选依赖项的用途吗?但我担心,因为:

  • 我没有看到广泛使用的可选依赖项。
  • 我不清楚我是否会通过这样做将客户固定到特定版本的 Y 和 Z。
  • 那些使用 Carthage 从源代码构建 X 的人呢?看起来即使他们不使用 Y 或 Z,他们也必须在他们的框架中包含这些框架Cartfile.private才能构建 X。

选项 2 很简单,但我担心开销。即使是 noop 框架的时钟也超过 250k。在最终的应用程序中仍然那么糟糕吗?如果我走那条路,我应该关注每个框架的开销吗?

还有其他我不知道的权衡吗?

0 投票
0 回答
393 浏览

xcode - 使用 Carthage 构建 Alamofire 1.3.1 失败

我一直面临无法使用 Carthage 构建 Alamofire 的问题。

我的环境如下:

  • OSX 10.10.5
  • Xcode 6.4
    • 还已经安装了 7.0 和 7.1。
  • 迦太基 0.9.3
  • 尝试安装 Alamofire 1.3.1(最新的 Swift 1.2 版本)

我尝试了下面的命令然后发生错误。

然后我尝试使用 Xcode 构建。

打开Alamofire.xcworkspace并点击 Cmd+B 然后失败并出现以下错误:

Xcode 错误图片

我从未见过警告Unable to find swiftCore; please set SWIFT_LIBRARY_PATH (currentry '') to the folder containing swiftCore

我认为这个警告与这个问题有关,但我不知道如何解决这个问题......

有什么解决办法吗?