最近 Jenkins 打包又报错了:
Codesigning /Users/Shared/Jenkins/Home/workspace/***/build/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/***/InstallationBuildProductsLocation/Applications/***.app/Frameworks/libswiftCoreMedia.dylib
/usr/bin/codesign --force --sign 2A252DD1931364B8ED615013655551EEF4C66515 --verbose /Users/Shared/Jenkins/Home/workspace/***/***/build/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/***/InstallationBuildProductsLocation/Applications/***.app/Frameworks/libswiftCoreMedia.dylib
/Users/Shared/Jenkins/Home/workspace/***/***/build/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/***/InstallationBuildProductsLocation/Applications/***.app/Frameworks/libswiftCoreMedia.dylib: errSecInternalComponent
error: Failed with exit code 1
** ARCHIVE FAILED **
The following build commands failed:
CopySwiftLibs /Users/Shared/Jenkins/Home/workspace/***/***/build/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/***/InstallationBuildProductsLocation/Applications/***.app
(1 failure)
复制代码
原因就是服务器证书没有了,然后又重新创建了一个,但是导入进去之后就报错。
网上说法是:
出现errSecInternalComponent 可能是xcode签名机制(code signing mechanism) 的 bug, Xcode 中账号多了,就会产生很多过期的PP文件,Xcode 没有自带删除功能会导致重复导入provisioning profile. 解决办法:
Xcode 中所有的PP文件,都在 ~/Library/MobileDevice/Provisioning Profiles 这个文件夹下;进入该文件夹,删除不需要的;重新导入新的 provisioning profile
2、重启Mac
但是这样做之后没有用,还是报错。
最后参考这里,
打开命令行终端,进入工程根目录,运行命令
xattr -rc .
还不行就删除下面目录的项目:/Users/denny/Library/Developer/Xcode/DerivedData/
xattr -rc .
用来删除文件的扩展属性。
而且把证书删除,又重新导入了一遍,然后还把证书的信任设置改了下。
参考: github.com/fastlane/fa…