符号链接在TFS中搞砸了

时间:2014-10-18 01:20:07

标签: ios tfs jenkins crashlytics

我将Crashlytics安装到我的应用程序上并在我的本地计算机上完美构建。

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

我有两个设置试验: -

1-正常设置(即将.framework文件拖放到项目中)

我收到此错误: -

  

致命错误:找不到'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的文本文件)

1 个答案:

答案 0 :(得分:3)

好的我有点修理了。 看起来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

然后我在构建执行Shell

中运行以下行
  

sh "${WORKSPACE}/FixCrashlytics.sh"

希望有一天能帮助别人。