【问题标题】:Symlinks get messed up in TFS符号链接在 TFS 中变得混乱
【发布时间】:2014-10-18 01:20:06
【问题描述】:

我在我的应用上安装了 Crashlytics,并在我的本地机器上完美构建。

但在推送到 TFS 存储库后,Jenkins 构建服务器无法构建项目。

我有两个设置试验:-

1- 正常设置(即将 .framework 文件拖入 proj)

我得到这个错误:-

致命错误:找不到“Crashlytics/Crashlytics.h”文件

导入 Crashlytics/Crashlytics.h

    ^ 1 error generated.

2- 通过 CocoaPods 安装

我得到这个错误:-

file was built for unsupported file format ( 0x56 0x65 0x72 0x73 0x69 0x6F 0x6E 0x73 0x2F 0x43 0x75 0x72 0x72 0x65 0x6E 0x74 ) which is not the architecture being linked (armv7): {PATH}/CrashlyticsFramework/Crashlytics.framework/Crashlytics
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_Crashlytics", referenced from:

      objc-class-ref in ViewController.o
      objc-class-ref in AppDelegate.o

ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何关于如何修复此错误的线索?

** 更新**

我注意到 Crashlytics.framework 中的符号链接都搞砸了(即 Crashlytics 符号链接打开一个带有 Versions/Current/Crashlytics 的文本文件)

【问题讨论】:

    标签: ios tfs jenkins crashlytics


    【解决方案1】:

    好的,我有点修好了。 看来 TFS 不能很好地处理符号链接,因此 Crashlytics.framework 在 Jenkins 上搞砸了。

    为了解决这个问题,我添加了这个脚本文件 FixCrashlytics.sh,它具有以下内容:-

    pushd "${WORKSPACE}"/Crashlytics.framework/Versions
    ln -sfn A Current
    popd
    
    pushd "${WORKSPACE}"/Crashlytics.framework
    ln -sfn Versions/Current/Headers Headers
    ln -sfn Versions/Current/Resources Resources
    ln -sf Versions/Current/Crashlytics Crashlytics
    popd
    

    然后我在 Build Execute Shell

    中运行了以下行

    sh "${WORKSPACE}/FixCrashlytics.sh"

    希望有一天能对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 2013-01-19
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多