xcodebuild 构建操作以分发带有剥离 dSYM 的动态框架

Lub*_*bbo 5 debug-symbols ios ios-frameworks dsym

我曾经使用以下方法构建用于内部开发的动态框架

xcodebuild -workspace <workspace_path> build -configuration "Release"
Run Code Online (Sandbox Code Playgroud)

现在我们正在向 3rd 方开发人员提供框架,我们希望从框架二进制文件中删除符号。

我注意到使用build选项二进制文件总是包含符号,即使项目配置为:

DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
STRIP_INSTALLED_PRODUCT = YES
STRIP_STYLE = non-global
Run Code Online (Sandbox Code Playgroud)

似乎使用archivexcodebuild 操作,框架是用没有符号的二进制文件和单独的 dSYM 文件生成的。

但是存档操作会产生一个 .xcarchive 空目录(在~/Library/Developer/Xcode/Archives/<DATE>

生成的工件(二进制文件和 dSYM)可以在 ~/Library/Developer/Xcode/DerivedData/<project_build_dir>/Build/Intermediates/ArchiveIntermediates/<framework_name>.framework/BuildProductsPath/Release-iphoneos

  • archive用于构建动态框架是否正确?
  • 工件不应该放在相关的 .xcarchive 中吗?
  • 是否有其他设置可用于将生成的工件正确放置在 .xcarchive 中?
  • 您通常如何构建和分发动态框架?

----- 编辑:2017 年 6 月 9 日 -----

  • 是否有其他设置可用于将生成的工件正确放置在 .xcarchive 中?
  • 工件不应该放在相关的 .xcarchive 中吗?

设置后:

Skip Install (SKIP_INSTALL) = NO 
Run Code Online (Sandbox Code Playgroud)

.xcarchive 正确填充了二进制 dSYM 和其他东西。