• jenkins ios 命令行使用xcodebuild构建报错build failed:rrSecInternalComponent或者ARCHIVE FAILED:codesign Build/Intermediates.noindex/ArchiveIntermediates 失败


    场景:

        jenkins上设置了自动构建ios app,ios sdk ,mac app, mac sdk 等,2020.3.30号晚上8点之前都是没问题的,完全可以自动构建,但是九点构建就一直报错了,因为怀疑是提交代码导致的,但是使用已经发版的节点构建,也是失败的,ios上的所有jenkins构建都失败了。

        但是,奇怪的是,使用工具xcode就可以正常打包,在ios 终端手动输入jenkins调用的那条打包的命令行,也是可以打包成功的。

    报错如下:

    sdk的xcodebuild 打包命令:xcodebuild  -scheme ${ios_scheme}  -configuration Release  -sdk $sdk_version  clean build

    报错如下:

    ipa(app)的xcodebuild archeieve 打包命令行:

    xcodebuild clean -workspace ${workspace_name}.xcworkspace -scheme ${app_name} -configuration $ios_type
    xcodebuild archive -workspace ${workspace_name}.xcworkspace -scheme ${app_name} -archivePath $archive_path -configuration $ios_type
    echo export ipa .... #导出ipa
    xcodebuild -exportArchive -archivePath $archive_path -exportPath arch/target_ipa -exportOptionsPlist ${app_name}/${app_name}/Info.plist

    报错如下:

     原因:

    原因1:可能是xcode签名机制(code signing mechanism) 的 bug, Xcode 中账号多了,就会产生很多过期的PP文件,Xcode 没有自带删除功能会导致重复导入provisioning profile

    原因2:钥匙串没有授权,被锁住了。 访问签名失败

    解决办法:

         方法1:编译之前解锁钥匙串    

         在编译之前解锁钥匙串,命令行如下:

              security unlock-keychain -p "123456" ~/Library/Keychains/login.keychain  

              -p后面是你的mac的登陆密码,根据自己的实际情况输入。

    办法2:删除provisioning pfofile

          Xcode 中所有的PP文件,都在 ~/Library/MobileDevice/Provisioning Profiles 这个文件夹下;进入该文件夹,删除不需要的;用xcode运行一次,会重新下载有效的新的 provisioning pfofile;如果你不知道哪些是不需要的,你可以把~/Library/MobileDevice/Provisioning Profiles/下的文件全部移动到其他路径下备份。

        必要时,重启mac

    上面两种方法,可以配合使用,如果一种不行,就两种一起用,我是使用了解锁keychain就搞定了,但是看到我的~/Library/MobileDevice/Provisioning Profiles/下有90多个文件,我还是使用了删除provisioning pfofile的办法,不影响使用。

    参考:

    https://www.jianshu.com/p/bde2fbf1dd09

    https://blog.csdn.net/weixin_30376509/article/details/98651263

  • 相关阅读:
    SWTDesigner注册器
    C# 创建、部署和调用WebService的简单示例
    (android实战)应用在线版本更新
    jQuery获取Select选择的Text和 Value(转)
    Android 判断sd卡和sim卡是否可用
    Android开发中如何固定屏幕显示!
    入侵网站简单方法总结
    【Android】防止UI界面被输入法遮挡(画面随输入法自适应)
    关于字符编码的问题
    最好用的mysql密码忘记的解决方法
  • 原文地址:https://www.cnblogs.com/zndxall/p/12604161.html
Copyright © 2020-2023  润新知