启用NSZombieEnabled以进行已存档的发布版本构建

4
当我使用连接的iPad运行时,可以通过“启用僵尸对象”或通过将NSZombieEnabled作为环境变量传递来启用NSZombieEnabled。 但是,我似乎无法生成启用NSZombie的构建(即您存档并以特定方式分发的那种构建)。
如何为归档发布构建启用NSZombieEnabled?
我正在使用以下代码从代码内部确定它是否已启用:(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled"))

2
为什么在Ad-hoc构建中需要使用NSZombieEnabled? - Jack Lawrence
@JackLawrence 谢谢你的提问。我的一个测试人员遇到了类似于这个链接https://dev59.com/skrSa4cB1Zd3GeqPZtm0的无法解释的崩溃。也许我应该为他们制作其他类型的构建?我自己无法物理接触这些设备。 - Dan Rosenstark
1个回答

1

NSZombieEnabled并不是你需要的。你应该让他们发送崩溃日志给你。或者你可以使用TestFlight的SDK,将崩溃报告发送到一个你可以监控的Web面板。在那里,你通常能够看到崩溃发生的位置。


我已经阅读了评论。NSZombiesEnabled仅用于调试,不适用于任何形式的分发发布。它不会起作用。关于这个主题存在很多混淆,但我可以百分之百确定,只有在调试时才会激活NSZombiesEnabled。 - james_womack
如果我通过在Xcode中点击“运行”来部署到设备上,那么僵尸对象将被启用,并且它们会在没有激活调试的情况下继续工作。 - Dan Rosenstark
我很高兴TestFlight对你有所帮助。我相信通过Xcode运行与测试人员运行分发版本不同。我曾被苹果开发团队中的某人告知,在分发版本中,NSZombiesEnabled无效,而我之前不小心将其保留了下来,但并没有出现任何问题。如果我被误导了,我深表歉意。我在SO上找到了一个问题,其中被接受的答案与我所听到的苹果公司的说法相矛盾,而得票最高的答案则与我所听到的一致。 - james_womack
2
大约一年前,当我还在使用Xcode 3.2时,我将其选中。界面显示它是目标的一个活动参数,但编译器没有使用它,因为它是一个分发版本。现在,在Xcode 4的存档方案中没有这个选项,因为NSZombiesEnabled不是为分发而创建的,更精细的UI现在反映了这一点。可能有其他方法来实现添加它。 - james_womack
1
谢天谢地。我忘记关闭NSZombie然后构建归档版本。如果不会有影响,我就不需要通知测试人员了。 - Yeung
显示剩余3条评论

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