模拟器和真机都需要运行OCR的需求怎么解决?
UniUbi 发布于2017-11 浏览:1584 回复:3
0
收藏

通常开发都需要模拟器和真机无缝来回切换着开发,自从接了百度OCR以后只能选择真机来运行,因为上线前还要移除模拟器架构才能正常打包上线。
那上线了以后,后续的开发中有没有方案可以同时支持真机和模拟器的?

收藏
点赞
0
个赞
共3条回复 最后由紫剑大侠回复于2018-09
#4紫剑大侠回复于2018-09

请问 AipOcrSdk-Simulator.framework这个库从哪里得来的呢?

3
#3756665228回复于2017-11

666 好帖子。应该来几个图

0
#2UniUbi回复于2017-11

解决了,如果有人需要可以按照此步骤来
1.把模拟器状态下和真机下运行出来的AipOcrSdk合并一下,命令类似这样
lipo -create AipOcrSdk-Simulator.framework/AipOcrSdk AipOcrSdk.framework/AipOcrSdk -output AipOcrSdk

然后使用这个合并以后的包

2.添加脚本到Build Phases的/bin/sh里面,内容如下,起的作用是打包时去掉模拟器架构,防止上传到APPSTORE时苹果弹错误

echo "Target architectures: $ARCHS"

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

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"
echo $(lipo -info "$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 $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "i386") ; then
    lipo -output "$FRAMEWORK_TMP_PATH" -remove "i386" "$FRAMEWORK_EXECUTABLE_PATH"
    echo "i386 architecture removed"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH"
    fi
    if $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "x86_64") ; then
    lipo -output "$FRAMEWORK_TMP_PATH" -remove "x86_64" "$FRAMEWORK_EXECUTABLE_PATH"
    echo "x86_64 architecture removed"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH"
    fi
    ;;
esac

echo "Completed for executable $FRAMEWORK_EXECUTABLE_PATH"
echo $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH")

done
0
TOP
切换版块