应用程序加载器错误,二进制文件无效。

4

当我尝试将我的应用程序发送到App Store时,我遇到了以下错误:

二进制文件无效。 LC_ENCRYPTION_INFO加载命令中的加密信息缺失或无效,或二进制文件已经加密。这个二进制文件似乎没有使用苹果的链接器进行构建。

我不知道我的应用程序哪里出错了。


缺少信息:您是否使用XCode构建?XCode的版本是多少? - dandan78
请查看我在另一个问题中的答案:http://stackoverflow.com/a/31611959/1698467 它也可能解决您的问题。 - skywinder
1个回答

1
我有同样的问题。 我的解决方案: 从有效架构中删除arm64,我上传的最后一个IPA没有arm64,所以我比较了LC_ENCRYPTION_INFO。
我使用了这个命令来获取LC_ENCRYPTION_INFO。
otool -arch all -Vl YOURAPP.app/YOURAPP | grep -A5 LC_ENCRYP

使用 ARM64 的结果:

    
      cmd LC_ENCRYPTION_INFO
      cmdsize 20
    cryptoff  16384
    cryptsize 2375680
    cryptid   0
Load command 13
--
          cmd LC_ENCRYPTION_INFO
      cmdsize 20
    cryptoff  16384
    cryptsize 2375680
    cryptid   0
Load command 13
--
          cmd LC_ENCRYPTION_INFO_64
      cmdsize 24
    cryptoff  16384
    cryptsize 2801664
    cryptid   0
        pad   0

没有ARM64的结果

          cmd LC_ENCRYPTION_INFO
      cmdsize 20
    cryptoff  16384
    cryptsize 2375680
    cryptid   0
Load command 13
--
          cmd LC_ENCRYPTION_INFO
      cmdsize 20
    cryptoff  16384
    cryptsize 2375680
    cryptid   0
Load command 13

我希望这能对你有所帮助。如果有人知道为什么删除ARM64可以解决这个问题,我也很感兴趣。


我遇到了一个问题,但是这是在一个PhoneGap构建的应用程序中。我能否使用从他们那里获得的ipa文件来解决这个问题,或者如果我提取ipa并在那里进行一些操作呢?我在提取的guts上运行了您的终端命令,并得到了以下结果: cmdsize 20 cryptoff 16384 cryptsize 147456 cryptid 0 Load command 12 - davimusprime
今天成为了一个大规模的问题...在更新itunesconnect后,上传应用程序的要求发生了很大变化。我尝试在项目和所有子项目中更改架构为$(ARCHS_STANDARD_32_BIT)(就像这里:https://dev59.com/32Eh5IYBdhLWcg3whTsR),但问题并没有得到解决。 - KepPM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接