美文网首页
iOS 去除framework中的模拟器架构[x86_64]

iOS 去除framework中的模拟器架构[x86_64]

作者: 什么东东额 | 来源:发表于2021-01-25 14:09 被阅读0次

部分SDK中包含模拟器架构,目的是能够在模拟器中编译SDK
但是打包ipa包,提交到App Store时,会报错
ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]'."

解决方法:在Xcode中加入一个脚本,目的在打包时删除SDK中的x86架构,只保留iOS设备的ARM架构。

image.png

#!/bin/sh

# Strip invalid architectures

strip_invalid_archs() {
binary="$1"
echo "current binary ${binary}"
# Get architectures for current file
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
stripped=""
for arch in $archs; do
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
if [ -f "$binary" ]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
stripped="$stripped $arch"
fi
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
}

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"

strip_invalid_archs "$FRAMEWORK_EXECUTABLE_PATH"
done


去除framework中的架构
https://www.jianshu.com/p/595090d19c39

相关文章

网友评论

      本文标题:iOS 去除framework中的模拟器架构[x86_64]

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