从 Xcode 6 重新构建应用程序时出现 OSStatus 错误 2003334207

Posted

技术标签:

【中文标题】从 Xcode 6 重新构建应用程序时出现 OSStatus 错误 2003334207【英文标题】:OSStatus error 2003334207 while re-buiding the App from Xcode 6 【发布时间】:2015-06-26 07:58:56 【问题描述】:

我正在使用 AVAudioPlayer 播放保存在 Iphone 的 Document 目录中的录制音频。 当我第一次录制音频然后播放时,它工作正常(设备连接到系统并且应用程序正在通过 Xcode 运行)。

但是当我通过 Xcode 停止正在运行的应用程序并再次通过 Xcode 运行应用程序时,我收到错误 Error Domain=NSOSStatusErrorDomain Code=2003334207 "The operation couldn’t be completed. (OSStatus error 2003334207.)"

文件位置:file:///var/mobile/Containers/Data/Application/410AB24E-5FB0-4401-AC59-3C03D676E951/Documents/26-06-2015--13:10:47.m4a

我的代码:

fileLocation = @"file:///var/mobile/Containers/Data/Application/410AB24E-5FB0-4401-AC59-3C03D676E951/Documents/26-06-2015--13:10:47.m4a"

NSURL *fileUrl = [NSURL URLWithString:fileLocation];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
[player setDelegate:self];

NSURL *fileUrl = [NSURL URLWithString:fileName];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
[player setDelegate:self];

我正在使用 Xcode 6 并在 ios 8 中运行应用程序

P.S:我已经阅读了很多与此问题相关的文档以及 statckoverflow 本身的几个问题,但我没有找到答案。

【问题讨论】:

【参考方案1】:

在 iOS8 下,您保存的路径在启动时将无效。您看到的 id “410AB24E-5FB0-4401-AC59-3C03D676E951”会随着每次启动而改变。

解决方案是保存文件名而不是完整路径,并通过获取 Documents(或 tmp)文件夹的路径并将文件名附加到它来重新创建 URL 或完整路径。

【讨论】:

每次更新 App 或设备的操作系统后,该 ID 是否会更改? 每次启动应用后。换句话说,当您的应用程序终止,然后由用户重新启动时(或者当您正在测试并在 Xcode 中运行时),该 ID 将发生变化。 很容易检查。使用 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 获取 Documents 目录的新路径。将其与您拥有的最后一个进行比较。启动应用的超时时间会有所不同。 是的,我已经检查过了。非常感谢。 :) 检查并确保您使用的是 fileURL 而不是纯 URL。代替- URLWithString:,使用:- fileURLWithPath:isDirectory:- initFileURLWithPath:isDirectory:+ fileURLWithPath:

以上是关于从 Xcode 6 重新构建应用程序时出现 OSStatus 错误 2003334207的主要内容,如果未能解决你的问题,请参考以下文章

尝试在模拟器或设备上构建 React Native 项目时出现 Xcode 错误

归档 iOS 应用程序时出现 Xcode 错误

Xcode 单元测试 - 仅为设备构建时出现链接错误

在 Xcode 4 下构建 PhoneGap 时出现未定义符号错误?

xcode5:构建时出现 Apple LLVM 5.1 错误

使用最新的 xcode/OSX 版本构建项目时出现奇怪的应用程序行为