按正常流程Archive项目,可以打包成功,使用Application Loader上传App Store时提示
WechatIMG263.jpeg
经度娘查询,报错 ERROR ITMS-90087 ;ERROR ITMS-90209;ERROR ITMS-90125 为项目中使用的三方framework包含[x86_64]架构,这是苹果不允许的,解决办法:工程中添加shell脚本解决,如图:
WechatIMG264.jpeg
脚本如下:
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
由于本人使用的三方SDK使用的 pods管理,加入脚本之后Archive不成功,提示这样的错误:
EDF6626D-D99D-414D-8685-D364F0DFFA99.png
(这个坑耽误了好长时间,mmp)。。。由于之前没有遇到过类似的错误,摸不着头脑,百度,Google了好多都没有解决,后来去项目中查看Pods管理的三方SDK,发现Pods target 一栏的 Products文件夹下面报红,自我猜测是因为pods管理的sdk没有引入进项目,才报上面的错误,解决办法:首先删除Podfile里依赖的三方库,然后重新pod install,等pod install 成功之后,首先编译项目,Xcode会自动下载依赖的三方库并导入项目,等Products一栏没有报红的文件夹了,再重新Archive,上架。。。。。
希望可以帮助同样遇到这个问题的小伙伴!☺
网友评论