美文网首页
移除动态库内armv7架构

移除动态库内armv7架构

作者: 清宵寒夜 | 来源:发表于2021-07-11 10:20 被阅读0次

    在工程中添加脚本删除,在target->Build Phases ->Embed Frameworks 后之后添加一个Run Script
    在脚本中输入如下代码

    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)
    if [ ! -n $FRAMEWORK_EXECUTABLE_NAME  ];then
    #如果framework文件不存在info.plist则直接取frmeworl名为二进制文件名
    FRAMEWORK_EXECUTABLE_NAME=$FRAMEWORK
    fi
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
    
    strip_invalid_archs "$FRAMEWORK_EXECUTABLE_PATH"
    done
    

    相关文章

      网友评论

          本文标题:移除动态库内armv7架构

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