Jenkins(三)自动化打包其他错误(iOS)

其他错误

其他文章:
Jenkins(一)初步认识
Jenkins(二)自动化打包(iOS)
Jenkins(三)自动化打包其他错误(iOS)
Jenkins(四)自动化打包帮助(iOS)
iOS 再谈打包(证书、自动化、持续集成等)从开始到结束(精简)

1、build发生的错误
[CJTestCIDemo] $ /usr/bin/agvtool vers -terse
No marketing version found (CFBundleVersion)
Technical version (CFBundleVersion) found in project configuration: .
Marketing version (CFBundleShortVersionString) used by Jenkins to produce the IPA: 
Technical version (CFBundleVersion) used by Jenkins to produce the IPA: 
Cleaning build directory: /Users/lichaoqian/Project/AutoPackaging/builds
FATAL: Unable to delete '/Users/lichaoqian/Project/AutoPackaging/builds'. Tried 3 times (of a maximum of 3) waiting 0.1 秒 between attempts.

错误信息的截图如下:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

修改方法只需将
Build output directory中的路径改为$WORKSPACE下就可以。至于为什么其他目录下不可以,暂时不清楚。

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

2、ARCHIVE FAILED
** ARCHIVE FAILED **


The following build commands failed:
    CompileStoryboard CJTestCIDemo/Base.lproj/Main.storyboard
    CompileStoryboard CJTestCIDemo/Base.lproj/LaunchScreen.storyboard
(2 failures)
Build step 'Xcode' marked build as failure
Finished: FAILURE

错误信息的截图如下:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

最后发现是编译问题,去掉safe area后,重新提交后,再构建就可以了。

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

3、ARCHIVE SUCCEEDED 但xxxExport.plist错误
** ARCHIVE SUCCEEDED **

Cleaning up previously generated .ipa files
Cleaning up previously generated .dSYM.zip files
Packaging IPA
FATAL: /Users/lichaoqian/Project/AutoPackaging/CJ/ad-hocFZ5YDHE5JZExport.plist

错误信息的截图如下:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

修改方法只需将 Output directory中的路径改为$WORKSPACE下就可以。至于为什么其他目录下不可以,暂时不清楚。(这个与问题1中的Build output directory路径设置是一样的原因),即修改后为:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

4、EXPORT FAILED

2018-01-16 17:00:44.747 xcodebuild[4385:839819] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7fd950ec4860>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
    "Error Domain=IDEProvisioningErrorDomain Code=9 \"\"CJTestCIDemo.app\" requires a provisioning profile.\" UserInfo={NSLocalizedDescription=\"CJTestCIDemo.app\" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the \"provisioningProfiles\" dictionary in your Export Options property list.}"
)}
error: exportArchive: "CJTestCIDemo.app" requires a provisioning profile.

Error Domain=IDEProvisioningErrorDomain Code=9 ""CJTestCIDemo.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="CJTestCIDemo.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

** EXPORT FAILED **

Failed to build /Users/Shared/Jenkins/Home/workspace/CJTestCIDemo/AutoPackaging/package/Beyond.ipa
Build step 'Xcode' marked build as failure
Finished: FAILURE

错误信息的截图如下:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

错误原因分析参考:
Xcode 9 在 Jenkins 自动打包脚本 中使用 Xcode integration 插件打包失败的原因

其中讲到的原因为:因为 Xcode 9 默认不允许访问钥匙串的内容,必须要设置 allowProvisioningUpdates 才会允许,但是由于 Xcode integration 插件封闭,并不能对其进行修改加上这个属性,所以决定使用 Shell 脚本代替插件

分析问题

直接用命令行打包

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

尝试用命令行直接打包Jenkins目录下的xcworkspae文件。我们先来看下不完善的命令:

所以输入如下命令
xcodebuild -archivePath "/Users/lichaoqian/Desktop/TestCI/CJTestCIDemo.xcarchive" -workspace "/Users/Shared/Jenkins/Home/workspace/CJTestCIDemo/CJTestCI/CJTestCIDemo/CJTestCIDemo.xcworkspae" -sdk iphoneos -scheme "CJTestCIDemo" -configuration "ad-hoc" archive

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

执行后,发现如下图错误:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

分析结果是权限问题,所以我们在刚才执行的命令前面加上
sudo,即

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

此时,执行后没有上面的问题了,但是出现的问题,如下图:

《Jenkins(三)自动化打包其他错误(iOS)》 image.png

之后我们用不是Jenkins目录下的CJTestCIDemo.xcworkspae实验,到底是不是证书,发现还是一样的问题。最后再sudo去掉,发现打包成功了。所以,Jenkins目录下的那个CJTestCIDemo.xcworkspae的打包,并不能通过添加sudo来解决。

    原文作者:dvlproad
    原文地址: https://www.jianshu.com/p/6be82e17a21e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞