问题标签 [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.
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 找到头文件并且警告消失了。
ios - sqlite.swift 与迦太基
我在我的 Swift 项目中使用 sqlite.swift。到目前为止,我使用 Cocoapods 来安装/更新库。
是否可以在 Carthage 安装使用 Cocoapods 的 sqlite.swift ?
ios - 如何使用 Carthage 制作面向未来的项目
我有一个项目,我在其中使用 Carthage 进行依赖管理。我希望它能够轻松克隆并立即为Future Me © 运行。我已经提交Carthage/Checkouts,但有些框架带有预构建二进制文件。您可以使用标志强制下载源‑‑no‑use‑binaries
,但添加框架文件会更容易。什么(以及为什么)应该和不应该在我的 .gitignore 中以使项目面向未来?
xcode - Carthage 框架目标找不到依赖项
我创建了一个库,我想通过 CocoaPods 和 Carthage 分发它。
我无法使用 Carthage 构建共享框架目标,我收到构建错误,基本上说明它找不到 Alamofire 和 SwiftyJSON,它们是我的框架的依赖项。我已将 SwiftyJSON 和 Alamofire 添加到我的 Cartfile 以及我的共享框架目标的 Linked Frameworks and Libraries 部分。
如果我首先运行 Pod install 一切正常,大概是因为 CocoaPods 使我的依赖项可用,但显然这不是一个好的解决方案。
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 服务器端验证?
swift - Carthage ld:警告:找不到选项“空搜索路径”的目录
我试图将 carthage 与一个全新的空项目一起使用,并在此处向 Cartfile 添加两个依赖项,如下所示:
接下来我要去:
并在构建 XCGLogger 后得到以下错误:
我试图删除和添加不同的搜索路径但没有运气:(
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 有任何想法或遇到过问题吗?
ios - 框架的可选集成代码:可选依赖还是单独的框架?
我是框架 X 的作者,我想分发一点点胶水代码,以选择性地与框架 Y 和 Z 集成。客户端应该能够将 X 用作独立框架,但能够使用集成代码如果他们也使用 Y 和/或 Z。
头条问题是:目前是否有这样做的最佳实践,以及权衡是什么?详细的子问题如下。
我的具体情况:我是Siesta的作者。与 SwiftyJSON或Alamofire集成只需要一点代码。但是,Siesta 不需要这些框架中的任何一个。
我看到两个可接受的选择:
- 在我的 Xcode 构建中将框架 Y 和 Z 配置为框架 X 的可选依赖项。
- 分发单独的框架:X 核心、X+Y 粘合和 X+Z 粘合。
选项 1 乍一看似乎很有希望。这不正是可选依赖项的用途吗?但我担心,因为:
- 我没有看到广泛使用的可选依赖项。
- 我不清楚我是否会通过这样做将客户固定到特定版本的 Y 和 Z。
- 那些使用 Carthage 从源代码构建 X 的人呢?看起来即使他们不使用 Y 或 Z,他们也必须在他们的框架中包含这些框架
Cartfile.private
才能构建 X。
选项 2 很简单,但我担心开销。即使是 noop 框架的时钟也超过 250k。在最终的应用程序中仍然那么糟糕吗?如果我走那条路,我应该关注每个框架的开销吗?
还有其他我不知道的权衡吗?
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 然后失败并出现以下错误:
我从未见过警告Unable to find swiftCore; please set SWIFT_LIBRARY_PATH (currentry '') to the folder containing swiftCore
我认为这个警告与这个问题有关,但我不知道如何解决这个问题......
有什么解决办法吗?