在iOS设备上找不到文件,但在模拟器中工作



当我在模拟器上测试我的应用程序时,一切都很好。但当我在iOS设备上测试时,我得到了这个错误:

*** Terminating app due to uncaught exception 'FileNotFound', reason: 'file '/Users/name/Documents/appname/GFX/MainMenu.png' not found'

我检查了Build Phases Copy Bundle Resources,并添加了所有内容。当我在Xcode中突出显示该文件时,在实用程序中选中了Target Membership。

我也尝试省略加载文件的代码,但我在另一个文件上得到相同的错误。似乎只有应用程序图标和启动图像加载正常。

请注意,我正在使用麻雀框架(如果这有任何区别)。纹理是这样加载的:

SPTexture *gameMenuTexture = [SPTexture textureWithContentsOfFile:(@"/Users/name/Documents/appname/GFX/MainMenu.png")];
SPImage *gameMenuImage = [SPImage imageWithTexture:(gameMenuTexture)];
[self addChild:gameMenuImage];

帮助将非常感激。我在论坛上寻找答案。谢谢!

问题在于硬编码路径:

@"/Users/name/Documents/appname/GFX/MainMenu.png"

在设备中,指定的路径中没有任何文件夹。

如果它在bundle中使用:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"MainMenu" ofType:@"png"];
SPTexture *gameMenuTexture = [SPTexture textureWithContentsOfFile:filePath];

测试如下SPTexture *gameMenuTexture = [SPTexture textureWithContentsOfFile:(@"MainMenu.png")];

你的模拟器只是一个在Mac上运行的应用程序。它可以很容易地访问我们Mac上的文件,如/Users/name/Documents/appname/GFX/MainMenu.png。

你的iOS设备不能直接访问Mac上的文件。最近,当你发布你的应用程序时,第三方用户几乎不能访问你Mac上的任何东西。

仔细想想。这是有道理的。

相关内容

  • 没有找到相关文章

最新更新