错误ITMS-90085: "二进制文件中没有体系结构.Lipo未能检测到bundle可执行文件中的任何体系结构



我们已经构建了一个Xamarin应用程序(iOS, Android)与几个本地绑定。该应用程序在设备和模拟器上运行良好,我们能够建立一个存档没有任何问题(显然)。

问题是,当我们想要上传构建到应用商店(使用应用程序加载器或xcode 7.3.1),我们得到以下错误:
ERROR ITMS-90085: “No architectures in the binary. Lipo failed to detect any architectures in the bundle executable.”

在应用程序上运行lipo -info会得到以下响应:

Architectures in the fat file: NameOfMyApp.iOS.app/NameOfMyApp.iOS are: armv7 arm64

在发布这个问题之前,我们已经彻底地搜索了答案,并确定了以下内容:

  • 产品名称正确
  • Xcode已安装
  • 应用程序加载器是最新版本
  • Bundle Id正确

如果有人有一个想法的帮助将非常感激!

谢谢,a .

我最近因为一个完全不同的原因遇到了这个错误。在提交应用商店之前,我们使用这个非常流行的脚本从应用程序中删除未使用的架构。

问题是,这个脚本做了完全错误的事情,如果你包括一个手表应用程序,并与Xcode 10构建!它查找ARCHS变量中的所有体系结构,并从胖二进制文件中删除所有其他体系结构,问题是

  • arch不包含watch架构,并且
  • 从Xcode 10开始,手表二进制文件是胖的(由于新的手表)

在XCode 9中,脚本会跳过watch内容,但现在它错误地剥离了它们。

我通过修改脚本来修复这个错误,而不是只删除模拟器架构。

EXTRACTED_ARCHS=()
GOOD_ARCHS=()
PRESENT_ARCHS=($(lipo -archs "$FRAMEWORK_EXECUTABLE_PATH"))
if [[ "${#PRESENT_ARCHS[@]}" -lt 2 ]]
then
    echo "Framework is not a Fat binary, skipping..."
    continue
fi
for ARCH in "${PRESENT_ARCHS[@]}"
do
    if [[ "$ARCH" != x86_64 && "$ARCH" != i386 ]]
    then
        echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
        lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
        GOOD_ARCHS+=("$ARCH")
        EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    fi
done

我们在项目中做了一些本地绑定。在其中一个绑定中,我们在项目的根目录中包含了一个框架,该框架是一个文件夹,其中包含包含lib.a的子文件夹。事实证明,在编译时,整个框架文件夹结构被复制到生成的IPA中,这就是导致问题的原因。解决方案是简单地提取lib。A并将其移动到项目的根目录,并删除框架文件夹。生成的IPA不再具有框架文件夹,并且提交顺利通过,没有任何故障。

可能当你在匆忙中忘记将Build Environment更改为Generic iOS Device进行归档时,有时会出现此错误!

在这里找到图片!

在我的例子中,这个错误有点误导。它与体系结构无关,只是找不到二进制文件本身。

我通过CMake生成一个应用程序扩展,使用add_library。CMake将扩展的可执行文件从MyExtension重命名为libMyExtension.so

因为"CFBundleExecutable必须匹配bundle目录减去它的扩展名。",我不得不调整我的CMakeLists.txt文件,以防止扩展的可执行文件被重命名:

set_target_properties(${APPEX_NAME} PROPERTIES
        XCODE_ATTRIBUTE_EXECUTABLE_SUFFIX ""
        XCODE_ATTRIBUTE_EXECUTABLE_PREFIX ""
)

在我的例子中

turn "嵌入&

然后重启Xcode。不需要使用pod update或pod disintegrate

最新更新