使用 Carthage 构建时如何选择 Swift 工具链

2023-12-03

我正在创建一个 iOS 应用程序并使用 Carthage 来构建外部库。由于我目前使用的库都是 Swift 2 和 Swift 3,所以我有点紧张。因此,我希望拥有一个 Swift 2 分支和一个 Swift 3 分支进行开发,然后在库全部兼容 Swift 3 时合并它们。

但是,我无法选择使用 Carthage(版本 0.18)构建哪个工具链。

这是我的 Cartfile 的内容:

# Swift 2 libraries
github "stephencelis/SQLite.swift" ~> 0.10.1
github "Haneke/HanekeSwift"

# Swift 3 libraries
#github "stephencelis/SQLite.swift" "swift3"
#github "Haneke/HanekeSwift" "feature/swift-3"
#github "kitasuke/PagingMenuController"
#github "Alamofire/Alamofire" ~> 4.0

目前,这是通过使用构建的carthage update。以下是一些输出,验证我当前正在使用 Swift 2:

$ swift --version
Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
Target: x86_64-apple-macosx10.9
$ ls -lh $(which swift)
-rwxr-xr-x  1 root  wheel    18K Jul  8 19:52 /usr/bin/swift

现在我想切换到使用 Swift 3 进行构建。我安装了多个工具链/Library/Developer/Toolchains,这是我运行安装程序时 OSX 安装它们的位置:

$ ls -lh /Library/Developer/Toolchains
drwxr-xr-x  6 root  wheel   204B Sep 30 20:07 swift-2.2.1-SNAPSHOT-2016-04-23-a.xctoolchain
drwxr-xr-x  7 root  wheel   238B Sep 30 17:41 swift-3.0-RELEASE.xctoolchain
drwxr-xr-x  7 root  wheel   238B Oct  6 20:53 swift-3.0.1-PREVIEW-2.xctoolchain
lrwxr-xr-x  1 root  wheel    30B Oct  8 12:51 swift-latest.xctoolchain -> swift-3.0-RELEASE.xctoolchain/

请注意,我同时安装了 Xcode8 和 Xcode7:

$ ls /Applications/Xcode*
/Applications/Xcode.app:
Contents
/Applications/Xcode8.app:
Contents
$ xcodebuild -version
Xcode 7.3.1
Build version 7D1014

现在,假设我有以下场景:

$ cat Cartfile
github "Alamofire/Alamofire" ~> 4.0
$ carthage update --toolchain com.apple.dt.toolchain.Swift_3_0
*** Fetching Alamofire
*** Checking out Alamofire at "4.0.1"
*** xcodebuild output can be found in /var/folders/wg/fjk346qs7mx8fhplf8_805wm0000gn/T/carthage-xcodebuild.zfHVn5.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
warning: failed to load toolchain 'com.apple.dt.toolchain.Swift_3_0': Could not find toolchain: com.apple.dt.toolchain.Swift_3_0

我就是无法让它发挥作用。所以我的问题是:

如何使用其他工具链使用 Carthage 进行构建?

这是我尝试过的:

  1. 更改符号链接swift-latest.xctoolchain到其他事情。没有什么区别。
  2. 手动将工具链添加到我的PATH变量在.bashrc像这样,但没有什么区别。

    $ cat ~/.bashrc
    export PATH="$PATH:/Library/Developer/Toolchains/swift-2.2.1-SNAPSHOT-2016-04-23-a.xctoolchain/usr/bin/"
    export PATH="$PATH:/Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/"
    export PATH="$PATH:/Library/Developer/Toolchains/swift-3.0.1-PREVIEW-2.xctoolchain/usr/bin/"
    
  3. 运行构建TOOLCHAINS=com.apple.dt.toolchain.Swift_3_0 carthage build和类似,但没有什么区别(仍然找不到工具链)。


作为迦太基0.17有一个选项--toolchain这允许人们指定用于构建的确切工具链 ID。用法示例:

carthage update --toolchain org.swift.402017072a

工具链的ID来自密钥CFBundleIdentifier in Info.plist工具链的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Carthage 构建时如何选择 Swift 工具链 的相关文章

  • 此版本的 OSX 无法执行必要的 dSYM 转换

    31merror could not complete submission of dSYM at Users XXUSERXX Library Developer Xcode DerivedData ProjectName flcouee
  • 不能快速使用“分析”吗? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 以前使用 Objective C 代码时 我可以 分析 CMD Shift B Xcode 会警告我我的各种错误行为 看
  • 如何在 Xcode 4.5 中制作 .ipa 文件?

    由于我将 xCode 升级到 4 5 我找不到将我的 iOS 应用程序另存为 ipa 文件的选项 我想通过 Testflight 分发该文件 有什么建议么 这是存档选项的屏幕截图 然后 在组织者的文件夹中构建您的存档Archives选项卡
  • wcslen() 在 Xcode 和 VC++ 中的工作方式不同

    我找到wcslen 在 VC 2010 中返回正确的字母计数 而 Xcode 则不然 例如 下面的代码在 VC 2010 中返回正确的 11 但在 Xcode 4 2 中返回错误的 17 const wchar t p L 123abc 1
  • 如何迁移到新的 SwiftUI 应用协议?

    我正在开发一个 SwiftUI 应用程序 该应用程序仍然具有场景 应用程序委托文件 并希望将其迁移到新的 SwiftUI 应用程序协议 这只是删除场景 应用程序委托文件 然后将我的 ContentView 在我的例子中为初始视图 添加到 m
  • 在 iPhone 5s 或 64 位模拟器上测试 32 位 iOS 应用程序

    我有一个使用第三方库的应用程序 64 位版本的库存在错误 因此我不得不恢复到 32 位版本的框架 我想在 5s 上测试这个版本 但从 XCode 中 它将尝试在 64 位中构建 并且由于这个 32 位框架 构建将失败 我需要发布一个版本 但
  • 是什么导致 Xamarin Forms 构建上出现“无法识别的选择器发送到类”错误?

    首先是关于我的系统的一些事情 Mac 操作系统版本 10 13 6 Xcode 版本 10 Visual Studio for Mac 7 6 6 我对 Xamarin 表单完全陌生 想要尝试和学习 我想做的只是创建一个新的 xamarin
  • iOS 6 仅支持一个视图的不同方向

    我只想将应用程序中的一个视图旋转到左横向或右横向 我的所有其他视图均处于纵向模式 并且我已将我的应用程序设置为仅支持纵向模式 随着 iOS 6 中方向的改变 我不知道如何做到这一点 我已经尝试过下面发布的内容 谁能告诉我我做错了什么 谢谢
  • iOS:如何将视图从登录切换到主要内容 SwiftUi

    首先 我对 iOS 开发和 Swift 非常陌生 从 PHP 来到这里已经两周了 我正在构建一个简单的应用程序 当用户登录 已确认 时 视图切换到主要内容 所以目前我有一个 LoginView 这是首先加载的 我想知道当我单击 LoginV
  • GCC 4.7/4.8 作为 Xcode 的 C/C++ 编译器

    我现在正在开发一个 C 项目 我希望使用 C 11 功能 在这个项目中 我正在使用该库NTL用于数论的东西 由于 Xcode 具有舒适自动完成功能 我使用 Xcode 编写代码 并且 NTL 库与标志 lntl 静态链接 现在 我希望使用一
  • Swift3 中的数组排序

    在我的代码中 我有一个如下所示的结构 struct Object var name String var count Int 我现在正在创建一个包含 10 个对象的数组 这些对象具有随机名称和随机计数 有没有一个简单的方法a 按字母顺序对它
  • 如何在 Xcode 项目设置中使用相对路径?

    如何在 Xcode 项目设置中使用相对路径 假定 构建设置 中的所有路径都相对于包含 xcodeproj 文件的目录 使用标准 Unix 路径标记 project directory parent directory 因此 如果您的项目文件
  • Swift 3:将 UIButton 扩展添加到 ViewController

    我是 iOS Swift 的初学者 尝试创建一个没有 Storyboard 的简单应用程序 我创建了一个UIButton扩展名 我想在我的视图中添加一个简单的按钮 稍后将设置约束 不幸的是 该按钮不可见 如果有人帮助我 我将不胜感激 谢谢你
  • 如何在 swift 3 中发布原始数据?

    如果我使用 Postman 发布原始数据 就会收到响应 我正在使用这个代码 var dict Dictionary
  • 解析后 UITableView 委托和数据源在单独的类中

    我需要从一个单独的类设置 UITableView 委托和数据源 方法调用解析后数据准备就绪 但每次我的表都是空的 我正在使用 ARC 这是简化的代码 HomeViewController h import
  • iOS 新手。预期的表达错误?

    这看起来很不寻常 因为该方法与我的 showAnswer 方法完全相同 所以我想我应该在这里问 import QuizViewController h interface QuizViewController end implementat
  • 错误:模块是为不兼容的目标arm64-apple-ios8.0创建的

    有一个名为 Appetize 的网站 需要 app 捆绑包 应用程序的 iOS 模拟器版本 才能在在线模拟器中显示您的应用程序 以下是所需应用程序包的指南 https support appetize io help how to uplo
  • 让约束在尺寸类别中发挥作用

    所以 我正在 Xcode 6 beta 中尝试尺寸类 我对图像设置了一些限制 使其根据 iPhone 纵向和横向对应的尺寸类别处于不同的位置 这些限制在下图中可见 正如您所看到的 当我处于紧凑 紧凑状态时 一些约束被 安装 而其他约束则没有
  • Xcode 本地化设置中没有加号或减号按钮

    我需要在两天内翻译 iOS 应用程序 但我的 XCode 版本 4 4 和 4 5 Developer Preview 都没有给我添加其他语言的选项 我只能选择单击 Make localized 但我只能选择英语 选择它后 Xcode 中的
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let

随机推荐

  • 出现异常:java.util.ServiceConfigurationError

    运行我的应用程序时出现以下异常 我正在使用jboss 5 1 1和jdk 1 6 01 50 04 828 ERROR HelloWorld Servlet service for servlet HelloWorld threw exce
  • 加载 rgdal 时出错

    我已经成功安装了rgdal与依赖项 GDAL 和 Proj4 一起打包 安装后我成功地将包加载到R中library功能 但是 在我最近一次登录后 当我输入命令时library rgdal 我收到一条错误消息 Error package or
  • 如何使用 IronRuby 的 ErrorListener

    我有一个 C 程序来执行 IronRuby 脚本 但在这样做之前 我想先编译该文件 看看是否有任何错误 但ErrorListener 似乎不能很好地工作 我的代码有什么问题吗 class Program static void Main s
  • 什么线程调用 silverlight WCF 调用上的已完成事件处理程序?

    假设我有 Silverlight 应用程序调用 WCF 服务 void DoStuff MyProxy proxy new MyProxy proxy DoStuffCompleted DoStuffCompleted proxy DoSt
  • 如何在谷歌地图中显示两个地理坐标之间的路线? [复制]

    这个问题在这里已经有答案了 可能的重复 J2ME Android BlackBerry 行车路线 两个位置之间的路线 我只是编写一个应用程序 用于在谷歌地图视图中显示两个坐标 经纬度 之间的路线 显示单个坐标 即使有标记 效果很好 但如何用
  • 从 Windows 服务加载 GUI 应用程序

    我正在编写一个 NET Windows 服务 其作用是启动 GUI 应用程序 其源不可用 该操作是即发即忘 除了初始命令行参数之外没有任何通信 该服务应该作为给定的 Windows 帐户运行 问题 服务启动的应用程序是not显示在桌面上 它
  • HTTP 状态 500 - java.lang.ClassNotFoundException:org.apache.jsp.index_jsp

    我在 Eclipse 中创建了一个 JSP 项目 使用 Tomcat 7 但是当我运行该页面时 我得到一个 ClassnotFoundExcption 在我的项目中 我使用控制器将数据绑定到 JSP 我有一个控制器 一个服务和一个数据对象
  • 致命错误:在非对象上调用成员函数 rowCount()

    我在登录中使用 PDO 按照之前通过 sqli 的指示 并且我已经尝试了以下操作 但是我收到了此致命错误 并且无法弄清楚要提供什么 因此它满足了错误 if query gt rowCount gt 0 session stuff refre
  • 放大二维 UICollectionView

    我创建了一个UICollectionView这是水平和垂直的 它有不同的UICollectionViewCells 一切都布置正确 现在我正在努力做到zoomable The UICollectionViewCells也正确调整了大小 每次
  • 一般解析字符串到日期

    我正在与 Web 服务通信 并且 json 响应中包含日期 问题是这些日期的格式不同 有没有通用的方法来解析这些字符串 您可能应该有一个有序的格式列表来尝试 最好使用乔达时间作为一个比内置 API 好得多的 API 然后依次尝试每个 API
  • Alexa 帐户链接 - “帐户链接凭据无效”

    我正在创建带有帐户链接的 Alexa 技能 我获得了链接授权码并将其兑换为访问令牌 然后 我尝试将所有参数 代码 访问令牌 技能 ID 放入 Alexa Skill Activation API 中 我总是收到一条消息 帐户链接凭据无效 v
  • 更新jar中的.class文件

    我想更新一个 class文件在一个jar与一个新的 最简单的方法是什么 尤其是在 Eclipse IDE 中 本教程详细说明如何更新 jar 文件 jar uf jar file
  • 从 VS2008 升级到 VS2010 后,Web 安装项目删除文件

    我有一个使用 VS2008 构建的 Web 设置项目 我已经将我的解决方案转换为 VS2010 现在当我构建新的安装程序并从 MSI 运行安装时 它安装得很好 然后在最后一步 删除刚刚安装的所有文件 我已将RemovePreviousVer
  • 如何使用inst/extdata中的文件? R 包检查阻止在 R 3.6 中使用 system.file()

    我正在编写 R 包并尝试使用外部文件 我把它放在inst extdata并使用system file extdata file csv package mypackage 在我的函数中加载文件 官方手册只描述了这种获取数据的方式inst e
  • Spring应用程序似乎没有持久化数据

    我正在尝试将一些内容写入我的数据库 但尽管它报告 成功完成请求 但它不起作用 成功后 一切似乎都工作正常 我的控制器正确地重定向了我 Debug DEBUG a d p payment PaymentServiceImpl Requesti
  • 如何让 slickgrid div 根据表格大小调整大小

    我希望我们有一些熟悉 slickGrid 的用户也能看到 StackOverflow 如何使用它 我有一个包含 slickGrid 的 HTML 如下所示 div style width 600px margin 25px 0 0 0 di
  • 领域数据同步不一致

    我遇到一个问题 每次执行相同的查询时 Realm 有时会返回不同的数据 目前我正在使用 SyncAdapter 进行上传 我们的想法是尝试实现离线模式 因此 当用户创建一个项目时 它会被添加到领域数据库中 我通过获取 maxId 并向其添加
  • 实时 Admob 广告突然停止在我的应用中显示

    6 月份 Admob 广告效果非常好 AdMob 向我发送了一封包含验证 PIN 码的信件 以验证我的身份和付款详细信息 七月初左右 几乎所有实时广告都停止在我的应用程序中显示 我仍然发出相同数量的请求 但展示次数太低 我已降至每天 0 0
  • 将 Pandas DataFrame 转换为 JSON

    我将数据存储在 pandas dataframe 中 我想将 tat 转换为 JSON 格式 可以使用以下代码复制示例数据 data Product A B A Zone E A A N E A start 08 00 00 09 00 0
  • 使用 Carthage 构建时如何选择 Swift 工具链

    我正在创建一个 iOS 应用程序并使用 Carthage 来构建外部库 由于我目前使用的库都是 Swift 2 和 Swift 3 所以我有点紧张 因此 我希望拥有一个 Swift 2 分支和一个 Swift 3 分支进行开发 然后在库全部