Sh 打包报错:errSecInternalComponent 和 CopySwiftLibs

6,397 阅读1分钟

最近 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/

参考:stackoverflow.com/questions/2…

xattr -rc . 用来删除文件的扩展属性。

而且把证书删除,又重新导入了一遍,然后还把证书的信任设置改了下。

参考:github.com/fastlane/fa…