cuixinyu
cuixinyu
  • 发布:2026-04-16 11:21
  • 更新:2026-04-16 11:21
  • 阅读:10

【报Bug】5.07离线打包xcode26 libmp3lame.a报错64-bit mach-o member 'tabinit.o' not 8-byte aligned

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 26.4 (25E246)

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iphone17 pro max

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:

打包失败

预期结果:

打包失败

实际结果:

打包失败

bug描述:

10:06:36 [10:06:36]: [35m[33m▸[0m [39;1mCopying[0m Localizable.strings[0m
10:06:36 [10:06:36]: [35m[33m▸[0m [39;1mCopying[0m InfoPlist.strings[0m
10:06:36 [10:06:36]: [35m[33m▸[0m [39;1mCopying[0m Localizable.strings[0m
10:06:36 [10:06:36]: [35m[33m▸[0m [39;1mCopying[0m InfoPlist.strings[0m
10:06:36 [10:06:36]: [35m[33m▸[0m [39;1mCompiling[0m LaunchScreenAD.storyboard[0m
10:06:40 [10:06:40]: [35m[33m▸[0m [39;1mCompiling[0m LaunchScreen.storyboard[0m
10:06:40 [10:06:40]: [35m[33m▸[0m [39;1mPrecompiling[0m /Users/kdwl/.jenkins/workspace/有为洗车/build_ios/HBuilder-Hello/HBuilder-Hello/HBuilder-Hello-Prefix.pch[0m
10:06:40 [10:06:40]: [35m[33m▸[0m [39;1mCompiling[0m main.m[0m
10:06:40 [10:06:40]: [35m[33m▸[0m [39;1mCompiling[0m ViewController.m[0m
10:06:40 [10:06:40]: [35m[33m▸[0m [39;1mLinking[0m HBuilder[0m
10:06:40 [10:06:40]: ▸ [35m[31m❌ ld: 64-bit mach-o member 'tabinit.o' not 8-byte aligned in '/Users/kdwl/code/uni_lx_sdk/5.07/ios/SDK/SDK/Libs/libmp3lame.a'[0m
10:06:40 [10:06:40]: ▸ [35m ARCHIVE FAILED [0m
10:06:40 [10:06:40]: ▸ [35mThe following build commands failed:[0m
10:06:40 [10:06:40]: ▸ [35m Ld /Users/kdwl/Library/Developer/Xcode/DerivedData/HBuilder-Hello-eluocfgqxtnluoejfscrzoywxkbv/Build/Intermediates.noindex/ArchiveIntermediates/HBuilder/InstallationBuildProductsLocation/Applications/HBuilder.app/HBuilder normal (in target 'HBuilder' from project 'HBuilder-Hello')[0m
10:06:40 [10:06:40]: ▸ [35m Archiving workspace HBuilder-Hello with scheme HBuilder[0m
10:06:40 [10:06:40]: ▸ [35m(2 failures)[0m
10:06:41 [10:06:41]: [31mExit status: 65[0m

5.07离线打包xcode26报错64-bit mach-o member 'tabinit.o' not 8-byte aligned in '/Users/kdwl/code/uni_lx_sdk/5.07/ios/SDK/SDK/Libs/libmp3lame.a
我得手动执行一个脚本去转换才可以打包,很不方便,还有别的方法吗,以下是我的脚本

!/bin/bash

修复静态库 .o 文件 8 字节对齐问题

适用于 Xcode 26 / 新版 ld 要求

set -e

获取当前脚本所在目录

BASE_DIR="$(cd "$(dirname "$0")" && pwd)"

SDK 库目录(同级目录下的 SDK/SDK/Libs)

LIBS_DIR="$BASE_DIR/SDK/SDK/Libs"
WORK_DIR="/tmp/fix_alignment_work"

fix_library() {
local LIB_PATH="$1"
local LIB_NAME=$(basename "$LIB_PATH")

echo "=========================================="    
echo "正在修复: $LIB_NAME"    
echo "=========================================="    

# 备份原文件    
if [ ! -f "${LIB_PATH}.bak" ]; then    
    cp "$LIB_PATH" "${LIB_PATH}.bak"    
    echo "✅ 已备份为 ${LIB_NAME}.bak"    
else    
    echo "⚠️  备份已存在,跳过备份"    
fi    

# 获取架构列表    
ARCHS=$(xcrun lipo -info "$LIB_PATH" | sed 's/.*are: //' | sed 's/.*is architecture: //')    
echo "包含架构: $ARCHS"    

# 创建工作目录    
rm -rf "$WORK_DIR"    
mkdir -p "$WORK_DIR"    

local THIN_LIBS=()    

for ARCH in $ARCHS; do    
    echo "  处理架构: $ARCH"    
    local ARCH_DIR="$WORK_DIR/$ARCH"    
    mkdir -p "$ARCH_DIR"    

    # 提取单架构    
    xcrun lipo "$LIB_PATH" -thin "$ARCH" -output "$ARCH_DIR/thin.a"    

    # 使用 libtool 重新打包(会修复对齐问题)    
    cd "$ARCH_DIR"    
    xcrun ar x thin.a    
    rm -f thin.a __.SYMDEF "__.SYMDEF SORTED"    

    # 用 libtool 重新创建静态库    
    xcrun libtool -static -o "$ARCH_DIR/fixed.a" "$ARCH_DIR"/*.o 2>/dev/null || \    
    xcrun ar rcs "$ARCH_DIR/fixed.a" "$ARCH_DIR"/*.o    

    THIN_LIBS+=("$ARCH_DIR/fixed.a")    
    cd - > /dev/null    
done    

# 合并所有架构    
xcrun lipo -create "${THIN_LIBS[@]}" -output "$LIB_PATH"    

echo "✅ $LIB_NAME 修复完成"    
echo ""    

# 清理    
rm -rf "$WORK_DIR"    

}

echo "? 开始修复静态库对齐问题..."
echo ""

fix_library "$LIBS_DIR/libmp3lame.a"
fix_library "$LIBS_DIR/libTouchJSON.a"

echo "=========================================="
echo "? 全部修复完成!"
echo "原始文件已备份为 .bak 文件"
echo "请重新编译项目测试"
echo "=========================================="

2026-04-16 11:21 负责人:无 分享
已邀请:

要回复问题请先登录注册