我使用xcodebuild
命令行工具使用archive
操作构建了一个构建脚本。
失败与其中一个pod中缺少标题有关。 (它恰好是HockeySDK)。
=== BUILD TARGET Pods-HockeySDK OF PROJECT Pods ===
....
CompileC ... /Library/TeamCity/../Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m:34:9:
fatal error:
'CrashReporter/CrashReporter.h' file not found
该行是:
#import <CrashReporter/CrashReporter.h>
在档案中,(source is here)
/../MyApp/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m
实际的标题可以在这里的框架中找到:
/../MyApp/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h
我注意到XCode项目导航器中有2个指向该文件的链接,不确定这是否是线索:
所以我认为这是一个缺少的标题搜索路径?但是,我已经运行了pod安装并将更改推送到构建服务器。
我们正在使用HockeySKD - 3.5.4(最新版)。 The podspec使用此语法链接到崩溃报告器框架(不确定它是如何工作的)。
s.ios.vendored_frameworks = 'Vendor/CrashReporter.framework'
pods项目中的搜索路径如下所示:
答案 0 :(得分:2)
由于TeamCity git checkout导致pod头文件损坏,构建失败。
修复结帐模式从自动在服务器上更改为自动在代理上(需要选择显示高级)并在结帐时启用清理一个版本。
答案 1 :(得分:0)
我有这个确切的问题,但是我无法通过选择我的结帐来解决这个问题,并自动代理&#34;因为我的回购有太多的项目。我需要在这个项目中进行子项目,所以我必须依靠签出&#34;自动在服务器&#34 ;.
cocoapods的问题是,当您在teamcity上的git中检查它们时,符号链接会被破坏。我添加了一个新的构建步骤来修复它,如下所示:
rm /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers
rm /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/HockeySDK
rm /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Resources
ln -s Versions/Current/Headers /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Headers
ln -s Versions/Current/HockeySDK /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/HockeySDK
ln -s Versions/A/Resources /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Resources
rm /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Versions/Current
ln -s A /Git/YourCheckoutDir/Pods/HockeySDK/HockeySDK-iOS/HockeySDK.embeddedframework/HockeySDK.framework/Versions/Current