10

我最近使用 Carthage 将 SwiftyJSON 添加到了我的 xCode 项目中。

购物车文件

$ cat Cartfile
github "SwiftyJSON/SwiftyJSON" >= 2.1.2

我运行了这个命令来安装 SwiftyJSON

$ carthage update

我将构建的框架添加到我的 xCode 项目中

在此处输入图像描述

我在项目顶部导入了框架

在此处输入图像描述

但我仍然收到此错误:

Use of unresolved identifier 'JSON'

在此处输入图像描述

说真的,我做错了什么?我是 iOS 开发的新手。

更新:我尝试删除框架并将框架重新拖动到链接框架和库,并按照迦太基中的说明将“运行脚本”部分添加到“构建阶段”。

在此处输入图像描述

我确信在此Carthage Update过程中出现了问题,因为我在初次尝试时收到了此错误:

$ carthage update
*** Fetching SwiftyJSON
*** Fetching Alamofire
*** Checking out SwiftyJSON at "2.1.3"
*** Checking out Alamofire at "1.1.4"
*** xcodebuild output can be found in /var/folders/0x/swzt630n3_575tglljpwhn4h0000gn/T/carthage-xcodebuild.Pc6rLg.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
*** Building scheme "Alamofire OSX" in Alamofire.xcworkspace
*** Building scheme "SwiftyJSON" in SwiftyJSON.xcworkspace
** BUILD FAILED **


The following build commands failed:
    Check dependencies
(1 failure)

查了问题后,被告知可以跑了

carthage update --configuration Debug

哪个安装得很好,但还是有问题......

4

4 回答 4

2

似乎您在SwiftyJSON从. 从自述文件页面查看这些步骤:AlamofireCarthageCarthage

脚步 :

  • 创建一个 Cartfile,列出您想在项目中使用的框架。
  • 运行迦太基更新。这会将依赖项获取到 Carthage/Checkouts 文件夹中,然后构建每个。
  • 在应用程序目标的“常规”设置选项卡上,在“链接框架和库”部分中,从磁盘上的 Carthage/Build 文件夹中拖放要使用的每个框架。
  • 在应用程序目标的“Build Phases”设置选项卡上,单击“+”图标并选择“New Run Script Phase”。创建一个包含以下内容的运行脚本:

    /usr/local/bin/carthage copy-frameworks
    

    并在“输入文件”下添加要使用的框架的路径,例如:

    $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
    $(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework
    

看起来你错过了第 4 步。我自己在一个演示 Swift 项目中尝试了这些步骤,它们运行良好。尝试这些步骤,如果您仍有问题,请发表评论。谢谢!

于 2015-03-25T06:33:02.857 回答
1

我切换到 Cocoapods 并且它工作正常。同样,在 iOS 开发方面,我完全是个菜鸟。在寻找依赖管理器时,我查看了 Cocoapods 和 Carthage 以了解他们提供的服务。我对迦太基保持简单的说法很感兴趣:

“Carthage,因为我们想要最简单的工具——一个可以完成工作而不需要接管 Xcode 的依赖管理器”

虽然在有选择时我总是会选择更简单的工具,但我认为我对 iOS 生态系统(阅读:Xcode)的了解不够,无法使用 Carthage。

于 2015-03-25T15:36:57.550 回答
0

TL,DR:不能在模拟器中使用它,使用 iPhone。

我也按照你的方式,我发现 --configuration debug 会将“iOS Developer”身份代码签名为 SwiftyJSON 的项目属性。

AFAIK,代码签名的“iOS 开发人员”身份未使用模拟器运行。当我在 iPhone 6 上运行它时,我的问题得到了解决。

于 2015-04-11T08:31:50.893 回答
0

我不知道为什么你不能在 Carthage 的帮助下添加这个资源,但如果你需要使用 SwiftyJSON,你只需要:

  1. 输入这个网址:SwiftyJSON

  2. 单击“克隆或下载”按钮,然后在“下载 ZIP”中,如下图所示:

单击“克隆或下载”按钮,然后在“下载 ZIP”IMG

  1. 您将获得一个名为“SwiftyJSON-master”的 ZIP 文件

  2. 提取文件

  3. 输入路径:

SwiftyJSON-master/Source/

  1. 您将看到一个文件名:

SwiftyJSON.swift

  1. 将该文件复制到项目的文件中。

  2. 将该文件添加到您的项目目录中。

  3. 该文件将与您可能使用的项目中的其他类一样。

于 2016-08-30T18:49:56.443 回答