美文网首页
集中构建报错,An empty identity is not

集中构建报错,An empty identity is not

作者: 山已几孑 | 来源:发表于2020-11-24 15:22 被阅读0次

开发环境: Xcode12,Objective-C,iOS14
打包环境: Xcode11,Objective-C, iOS13.2

构建过程中报错,主要信息如下:

An empty identity is not valid when signing a binary for the product type 'Application'

xcodebuild failed with code 65

经各种查(百度、google)
网上的解决办法基本如下几种:

  1. 开automatically manage signing, 关automatically manage signing,通过切换状态来更改Project的一些配置。
  2. 添加CODE_SIGN_ALLOWED=NO到build settings, 原理猜测,应该是构建过程中忽略CODE_SIGNING的检查。
  3. 重新配置一套证书和profile
  4. info.plist 丢失

结果嘛,1无效,2构建能过,但是打包ipa的时候报错了,3不可能,证书不归我们管,4info.plist一直在,且identifier没问题。


上面的办法,只是我这没有用,你们可以试试


最后发现在Xcode12里面,Build Setting 中 Code sign identity,下面提供了独立SDK的code sign 设置,


Code Sign Identity

此时在project.pbxproj 中以文本方式打开,code sign identity 配置变成如下样式:

{
            isa = XCBuildConfiguration;
            baseConfigurationReference = 3047A50F1AB8059700498E2A /* build-debug.xcconfig */;
            buildSettings = {
                ALWAYS_SEARCH_USER_PATHS = NO;
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
                CLANG_ENABLE_MODULES = YES;
                CLANG_ENABLE_OBJC_ARC = YES;
                CODE_SIGN_IDENTITY = "Apple Development";
                "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
    ...

观察最后一句代码,"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";Xcode11 中,还不支持这种。。。。

问题的解决就是把,这行代码删掉(Release&Debug),Xcode中,buildSetting中无法删除该设置,并且,文本中删掉,回到项目中还是可以找到,这时就千万别动这个选项了。

这里就是An empty identity is not valid when signing a binary for the product type 'Application'错误的解决过程。


后面还出了个情况iOS development certificate not found XXX类似这种报错,也是return code 65,这种一般是证书未配置导致的,集中构建过程中应构建release模式,服务器肯定没配develop的证书,
因此,修改scheme中,archive 的模式为Release

scheme

后面打包就成功了!🎆🎆🎆

相关文章

网友评论

      本文标题:集中构建报错,An empty identity is not

      本文链接:https://www.haomeiwen.com/subject/mjeliktx.html