首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xcodebuild -create-xcframework - BCSymbolMaps缺失- on M1 Xcode 14.0

xcodebuild -create-xcframework - BCSymbolMaps缺失- on M1 Xcode 14.0
EN

Stack Overflow用户
提问于 2022-11-27 07:21:43
回答 1查看 42关注 0票数 0

我使用相同的bash脚本构建了至少两年的XCFramework,一切都很成功,直到我将Mac转换为M1,Xcode为14.0。

这个脚本非常标准(见下文)。

在MacPro M1上,Xcode 14.0我得到以下错误(在Xcode 13.1上,同样的脚本工作得很好)。

代码语言:javascript
运行
复制
error: the path does not point to a valid debug symbols file: /Users/*******/build/Release-iphoneos.xcarchive/BCSymbolMaps/*

实际上,当我查看build/Releaseiphoneos.xcarchive文件夹时,BCSymbolMaps并不存在。我验证了Xcode设置“调试信息格式”是否与dsym文件相形见绌。

有人能帮我理解一下这个错误是什么吗?为什么它开始发生在M1上,Xcode为14.0?

谢谢

请参阅下面的bash构建脚本。

代码语言:javascript
运行
复制
# Build the framework for device and for simulator (using
# all needed architectures).
xcodebuild archive -scheme "${TARGET_NAME}" -destination="iOS" -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES -archivePath "${SRCROOT}/build/Release-iphonesimulator"
xcodebuild archive -scheme "${TARGET_NAME}" -destination="iOS" -sdk iphoneos        SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES -archivePath "${SRCROOT}/build/Release-iphoneos"



ls -l "${SRCROOT}/build/"

# https://developer.apple.com/forums/thread/655768

# First, get all the UUID filepaths for BCSymbolMaps, because these are randomly generated and need to be individually added as the `-debug-symbols` parameter. The dSYM path is always the same so that one is manually added
echo "XCFramework: Generating IPHONE BCSymbolMap paths..."
IPHONE_BCSYMBOLMAP_PATHS=(${SRCROOT}/build/Release-iphoneos.xcarchive/BCSymbolMaps/*)
IPHONE_BCSYMBOLMAP_COMMANDS=""
for path in "${IPHONE_BCSYMBOLMAP_PATHS[@]}"; do
  IPHONE_BCSYMBOLMAP_COMMANDS="$IPHONE_BCSYMBOLMAP_COMMANDS -debug-symbols $path "
  echo $IPHONE_BCSYMBOLMAP_COMMANDS
done

echo "XCFramework: Generating IPHONE BCSymbolMap paths... --> Done"

# XCFramework with debug symbols - see https://pspdfkit.com/blog/2021/advances-in-xcframeworks/#built-in-support-for-bcsymbolmaps-and-dsyms
xcodebuild -create-xcframework -allow-internal-distribution \
    -framework "${SRCROOT}/build/Release-iphoneos.xcarchive/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework" \
    -debug-symbols "${SRCROOT}/build/Release-iphoneos.xcarchive/dSYMs/${FRAMEWORK_NAME}.framework.dSYM" \
    $IPHONE_BCSYMBOLMAP_COMMANDS \
    -framework "${SRCROOT}/build/Release-iphonesimulator.xcarchive/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework" \
    -debug-symbols "${SRCROOT}/build/Release-iphonesimulator.xcarchive/dSYMs/${FRAMEWORK_NAME}.framework.dSYM" \
    -output "${SF_RELEASE_DIR}/${FRAMEWORK_NAME}.xcframework"
EN

回答 1

Stack Overflow用户

发布于 2022-12-04 20:31:06

您所看到的错误似乎是由于Xcode 14在创建XCFrameworks时处理调试符号的方式发生了变化。在早期版本的Xcode中,包含调试符号信息的BCSymbolMaps目录包含在生成的XCFramework中,但在Xcode 14中,默认情况下不包括此信息。

要修复此错误,我认为在创建-include-bcsymbolmaps命令时,需要将XCFramework标志添加到XCFramework命令中。这将告诉Xcode将BCSymbolMaps目录包含在生成的XCFramework中,并且错误将不再发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74588213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档