gpt4 book ai didi

iphone - 启用 ARC lite 的应用程序仅在发布配置中在第二代 iPod 上崩溃

转载 作者:可可西里 更新时间:2023-11-01 06:11:39 24 4
gpt4 key购买 nike

我有一个启用了 ARC lite 的应用程序(启用了 ARC 而没有将弱引用归零,Apple LLVM 4.0)。部署目标设置为 iOS 4.0。它已经在 iOS 4.0 到 5.1.1 上进行了测试。当我使用调试构建并通过 Xcode 安装时它总是工作正常,但是当我创建一个带有发布配置的临时构建时,它总是在使用 iOS 4.2.1 的第二代 iPod 上启动时崩溃,但在其他设备(甚至第三代)上工作正常装有 iOS 4.3 的 iPod)。

崩溃日志说找不到符号:_objc_retainAutoreleasedReturnValue调用 main 方法时崩溃(然后是 dyld_stub_binder,dyld::fastBindLazySymbol)

我做了一些搜索,当一个启用了 arc 的库包含在一个没有 arc 的项目中时,通常会发生这种崩溃。但在我的例子中,整个项目都启用了 arc。

有什么线索吗?

非常感谢。

[编辑] 更新:我可以使用 NSLog 来调试临时构建。

main.m 是这样的:

int main(int argc, char *argv[]) {
NSLog(@"ok before entering autorelease pool");
@autoreleasepool {
NSLog(@"ok after entering autorelease pool");
return UIApplicationMain(argc, argv, nil, NSStringFromClass([XXX class]));
}
}

NSLog(@"ok after entering autorelease pool") 被成功调用,但 application:didFinishLaunchingWithOptions: 从未进入。

最佳答案

好像跟命令行构建工具有关。我曾经使用 xcodebuild 命令来存档临时构建:xcodebuild -scheme myscheme 清理构建存档

然后发生了这次崩溃。

然后我尝试从 Xcode 归档,临时构建实际上在所有设备上都能正常工作。太奇怪了(请记住,临时构建的命令行适用于比 iPod 第二代更新的设备)。

现在我将只使用 Xcode 中的存档按钮。但我在 Apple 开发论坛上发布了这个问题: https://devforums.apple.com/message/711334

关于iphone - 启用 ARC lite 的应用程序仅在发布配置中在第二代 iPod 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11842465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com