【问题标题】:Cocoapod fails to build on Travis-CI - "expected a type"Cocoapod 无法在 Travis-CI 上构建 - “预期类型”
【发布时间】:2015-04-30 01:21:09
【问题描述】:

目标:通过 travis-ci 和工作服构建一个具有 CI 支持的 cocoapod。

子目标:清除 git repo 中的 Pods/,同时仍包括 PodfilePodfile.lock

参考回购:SRRandomUser

注意:虽然确实存在一个简单的变通解决方案(只是从我的 .gitignore 中删除 Pod/,但我提出这个问题是因为它可能有助于理解这个问题以供未来工作。


这是我发现自己所处的情况:

  1. 使用FSNetworking 进行网络请求。
    • 它的一个类FSNData 有一个类方法withImage:jpegQuality:fileName:,它接受UIImageCGFloat 作为参数。
    • 在不为UIKitCoreGraphics 添加@import 的情况下构建此文件会导致在引用UIImageCGFloat 参数时出现expected a type 的编译器错误
    • 在本地,这不是问题,因为我可以添加模块 @imports,但是由于我没有提交整个 Pods/ 目录,因此不会推送这些更改
  2. Travis 收到了构建并尝试构建,但由于 FSNData 没有导入 CoreGraphicsUIKit,当 Travis 去构建项目时,it throws the error in SRRandomUserGenerator 因为该类是 #importing受影响的FSNData 类:

✗ 编译 SRRandomUserGenerator.m (73 ms)

In file included from /Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/SRRandomUser/SRRandomUserAPIManager.h:10:
In file included from /Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNConnection.h:36:
/Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNData.h:42:18: error: expected a type
+ (id)withImage:(UIImage*)image jpegQuality:(CGFloat)quality fileName:(NSString*)fileName;
                    ^
/Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNData.h:42:46: error: expected a type
+ (id)withImage:(UIImage*)image jpegQuality:(CGFloat)quality fileName: (NSString*)fileName;
                                               ^
2 errors generated.

所以,我的问题是:

  • 如何使该警告静音以使构建无论如何运行或
  • 如何让 Pod 包含正确的构建框架?

非常感谢,所以。

【问题讨论】:

  • 查看这篇文章:somethingaboutios.wordpress.com/2016/02/05/…。也许可以帮助您解决问题。
  • @Gabriel.Massana 非常棒的帖子,而且文档中非常缺乏的主题。我不认为它直接解决了我遇到的问题,但我认为我接下来的步骤是以您所写的类似方式使用travis.ymlscript 部分。对我来说,我的项目中的内置库似乎没有被链接以供 CocoaPod 使用......不知何故。老实说,在你的评论让我再次思考之前,我已经很久没有真正看过这个了:)

标签: objective-c continuous-integration llvm cocoapods travis-ci


【解决方案1】:

我建议尝试通过 Cocoapods.org 搜索您需要的框架。如果您使用的是 Cocoapods,这通常意味着它已链接到您的项目(因此实际上无法消除错误,尤其是在这种情况下,您使用的框架似乎依赖于其他框架)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2016-12-16
    相关资源
    最近更新 更多