由于项目 接入其他SDK.Frameworks导致上架报错如下: Asset validation failed Unsupported Architectures. The executable for Runner.app/Frameworks/xxxxx.framework contains unsupported architectures '[x86_64, i386]'. (ID: f407a686-0ef1-459d-a76c-ac4c1fae6575) Asset validation failed The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker. (ID: 8feffdca-e9b4-40ba-9d78-52fc1db00b30)
【解决方案如下】 第一步: 第二步:
这一步需要 确保 【项目中的frameworks 必须在Embed Frameworks选项下引用】 第三步:
粘贴如下下代码
echo "Target architectures: $ARCHS"
APP_PATH="{WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
echo FRAMEWORK_EXECUTABLE_PATH")
FRAMEWORK_TMP_PATH="$FRAMEWORK_EXECUTABLE_PATH-tmp"
remove simulator's archs if location is not simulator's directory
case "${TARGET_BUILD_DIR}" in
*"iphonesimulator")
echo "No need to remove archs"
;;
*)
if FRAMEWORK_EXECUTABLE_PATH" -verify_arch "i386") ; then
lipo -output "FRAMEWORK_EXECUTABLE_PATH"
echo "i386 architecture removed"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "FRAMEWORK_EXECUTABLE_PATH"
fi
if FRAMEWORK_EXECUTABLE_PATH" -verify_arch "x86_64") ; then
lipo -output "FRAMEWORK_EXECUTABLE_PATH"
echo "x86_64 architecture removed"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "FRAMEWORK_EXECUTABLE_PATH"
fi
;;
esac
echo "Completed for executable $FRAMEWORK_EXECUTABLE_PATH"
echo FRAMEWORK_EXECUTABLE_PATH")
done