在应用程序运行时获取存档时dSYM所拥有的UUID

26

有没有办法在运行时从应用程序获取dSYM文件具有的UUID?

我尝试了一些样例代码,但返回的UUID与dSYM文件的不同。

谢谢。


为应用程序构建生成的UUID与同时生成的dSYM的UUID相同。这些UUID(对于每个架构)会自动添加到两个文件中。为什么需要在运行时获取此UUID? - Kerni
3个回答

58
dwarfdump -u <PathToYourAppsDsym>

这将向您显示相应的dsym的关联UUID。


7

如果您想知道与iOS应用程序相关联的UUID,有一个巧妙的技巧可以帮助您获取:

$> mdls -name com_apple_xcode_dsym_uuids -raw "$APP_NAME.app.dSYM" | grep -e \" | sed 's/[ |\"]//g'

这段代码会查询应用程序UUID密钥的Spotlight元数据,你传递.dSYM文件是因为它与应用程序相关联。grep命令只考虑实际UUID行;sed命令清除空格和引号。我使用这个方法是因为需要将.xcarchive目录上传到服务器,该服务器不存储任何Spotlight元数据,所以需要将其显式放置在那里。所有这些都是在将崩溃日志与特定版本的二进制文件相关联的上下文中完成的。
注意:请将$APP_NAME替换为您的应用程序名称。

谢谢,但我需要从我的应用程序内部获取这个。使用Objective-C代码是否可行? - George Taskos
我不确定我是否正确理解了你的问题,但是".app"文件不知道DSYM文件的任何信息。您可以解释得更详细一些吗?为什么您需要这样做呢? - gagarwal
所以我将能够正确地符号化。看起来我必须有dSYM文件构建的UUID,对应于应用程序映像基址UUID,但这是不一致的。我可能在这方面有错误。 - George Taskos
1
我已经解决了我的问题,非常感谢。如果您有兴趣,答案早在我的原始帖子中就有了 https://dev59.com/VmIj5IYBdhLWcg3w04Qo,我只是将项目存档,结果得到了错误的dSYM UUID,而不是我正在测试的那个。 - George Taskos

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接