应用安装失败.未找到代码签名

Jos*_*osh 20 xcode code-signing ios ios12 xcode10

我最近升级到Xcode 10并开始更新我们的应用程序以切换4.2的过程在重建第三方框架并为各种问题添加变通方法一天左右之后,我能够在新的模拟器上运行我们的应用程序.

但是,当我尝试在我的个人电话上运行(运行iOS 12.0 GM)时,我在安装应用程序时遇到了错误,如标题中所述.

我知道在SO和互联网上有很多关于这个主题的已经 回答的 问题,但是我无法让这些问题起作用.

它已经阻止了我一天半左右,所以我想知道是否有人对如何减轻这种情况有任何见解.

到目前为止我采取的步骤还没有奏效(也许他们将来会为其他人工作!):

  1. 清除派生数据
  2. 删除并重新下载计算机上的所有配置文件
  3. 清理构建目录(cmd + k&cmd + shft + k)
  4. 从手机中删除原始应用
  5. 重启Xcode(版本10.0(10A254a)[GM])
  6. 重启我的Mac(运行macOS High Sierra的Macbook Pro 2018)
  7. 重启我的设备(运行iOS 12.0 GM的iPhone X)
  8. 上述的许多不同组合,包括一次全部
  9. 在developer.apple.com上重新生成应用程序的配置文件(我们使用手动签名)
  10. 在developer.apple.com上删除并重新创建应用程序的配置文件
  11. 向蒂姆库克牺牲了一只山羊
  12. 确保签名证书与配置文件匹配
  13. 从我的计算机中删除旧版本的Xcode和确保命令行工具在xcode 10.0 gm版本上
  14. 删除并重新安装Xcode 10.0 GM
  15. 确保已code sign on copy检查所有复制的框架
  16. 使用swift 4.2编译器通过Carthage重建所有框架(记住,它都可以在模拟器上运行).
  17. 在SDKSettings.plist中,所需的确保代码签名设置为YES
  18. 删除了我计算机上的所有旧签名证书
  19. 在developer.apple.com上删除并重新创建的证书
  20. 删除并重新将我的设备添加到developer.apple.com
  21. 将代码签名从手动更改为自动
  22. 确保签名证书Developer,而不是Distribution

任何帮助将不胜感激 :)

更新:我尝试在新机器上从头开始重新下载和重建,并出现同样的问题.有趣的是,我可以存档和验证应用程序就好了.

还尝试使用相同的包ID签署一个空项目,它工作正常.所以问题出在我们的第三方框架或者从Xcode 9.4过渡时启用的一些奇怪的设置.开始逐个删除第三方框架,直到我可以编译它.

更新2:仍然没有运气.试图清除大多数框架而没有任何东西.这是设备日志,想知道是否Skipping a profile because of error 0xe8008012与它有关:

https://gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5

更新3:所以我能够通过在构建阶段注释掉carthage copy-frameworks脚本(并在执行此操作后清理/ nuking派生数据)来安装它.当然这意味着它在启动时崩溃,因为它缺少那些框架,但它确实意味着问题是使用carthage或其中一个链接的carthage框架.不是我们的签名证书,配置文件或代码库.要尝试逐个删除这些框架,我会在这里更新.

最终更新终于弄明白了.解决方案结果非常适合(见下文),但希望这个问题可以作为整个互联网上与此问题相关的每个解决方案的汇编哈哈.

Jos*_*osh 8

弄清楚了:

我用carthage遇到了这个问题:https://github.com/Carthage/Carthage/issues/2472并在我将东西转移到xcode 10时使用了他们建议的设置EXPANDED_CODE_SIGN_IDENTITY =''的解决方案.

显然,这条线是导致迦太基在复制框架时受到伤害的原因,导致错误.我下载了最新版本的carthage以解决问题,然后删除了该EXPANDED_CODE_SIGN_IDENTITY=''行,一切正常.真是浪费时间.


mih*_*990 5

不知道这是否也是您的情况,但是我最近在尝试在iPhone上运行React Native应用程序时也遇到了此错误。在我为React Native集成了Lottie库之后,它开始发生

此问题是由构建阶段中添加的以下运行脚本引起的:http : //ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/。该脚本无法从Lottie.framework中提取架构,从而导致"input file (.../Lottie.framework/Lottie) must be a fat file when the -extract option is specified

为了解决这个问题,我在脚本中添加了一个验证以跳过非胖文件:

# ...
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -iq "Non-fat file"
then
echo "This is a non-fat file, skipping"
continue
fi

EXTRACTED_ARCHS=()
# ...
Run Code Online (Sandbox Code Playgroud)


Alf*_*lfi 5

对我来说,这是我的 Carthage 框架代码标志。我通过像这张图片一样设置它们来修复它:

在此处输入图片说明