gpt4 book ai didi

ios - 检查并删除 IPA/Archive 中不支持的架构 [x86_64, i386]

转载 作者:IT王子 更新时间:2023-10-29 07:49:30 24 4
gpt4 key购买 nike

问题:

将应用提交到App Store时报如下错误:


不受支持的架构。您的可执行文件包含不受支持的体系结构 '[x86_64, i386]

问题:

  1. 如何解决上述错误?

  2. 如何检查存档或 IPA 使用的架构?

  3. 如何确保 Release 存档不包含 x86_64i386(模拟器架构)。

    • 是只能通过脚本实现还是在 Build Settings 或其他地方有设置?

最佳答案

如果应用程序在分发期间包含模拟器架构,Apple 已开始提示。

如何解决上述错误?

解决方案:

在项目目标的运行脚本中添加以下代码,这会在构建过程中从您的应用程序中删除模拟器架构(x86_64 和 i386):

外壳:

/bin/sh

代码:

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done

解决方案:

还有一个解决方案,如果你只想做一次。但要小心,因为在执行以下步骤后,您将无法在模拟器上运行应用程序。在将应用程序部署到 Testflight/App-store 之前执行此操作。

从终端进入项目的 ProjectFramework.framework 文件夹。运行以下命令:

lipo -remove i386 ProjectFramework_SDK -o ProjectFramework_SDK 
lipo -remove x86_64 ProjectFramework_SDK -o ProjectFramework_SDK

从框架检查架构?

$ lipo -info PathToProject/ProjectName.framework/ProjectName

输出将是:→ 胖文件中的架构:ProjectName 是: i386 x86_64 armv7 arm64

引用。文档: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/

关于ios - 检查并删除 IPA/Archive 中不支持的架构 [x86_64, i386],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com