无法使用XCode从命令行目标读取plist文件

Unable to read plist files from a command line target using XCode

本文关键字:目标 读取 plist 文件 命令行 XCode      更新时间:2023-10-16

我正在制作一款iOS手机游戏,使用cocos2d-x 3.10和Mac上的cocos studio。

我使用Catch作为单元测试框架。为了使用Catch,我在原来的XCode项目中添加了一个新的目标。在这个目标中,我创建了我的"testXXX.cpp"文件,其中包含我想要运行的单元测试的代码。

我在一个单元测试中遇到了一些麻烦。我在测试一种方法。在这个方法中,我使用cocos2d FileUtils来访问两个配置游戏中某些行为的.plist文件。下面是我使用的代码:

std::string fullPathLevels = cocos2d::FileUtils::getInstance()->fullPathForFilename(OIR_CONFIG_LEVELS);
std::string fullPathRhythmTable = cocos2d::FileUtils::getInstance()->fullPathForFilename(OIR_CONFIG_RHYTHMS);
this->Levels = cocos2d::FileUtils::getInstance()->getValueMapFromFile(fullPathLevels);
this->rhythmTable = cocos2d::FileUtils::getInstance()->getValueMapFromFile(fullPathRhythmTable);

当我构建针对移动或桌面目标的代码时,它工作得很好,但是当我更改到我创建的"命令行"目标时,使用Catch进行测试,然后找不到plist文件。

我已经将plist文件添加到目标成员中,并且它们出现在Build Phases的"Copy Bundle Resources"部分…

我发现命令行应用程序不支持bundle模型。我在这里找到了:https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/AboutBundles/AboutBundles.html

现在我正在使用XCTest (XCode的默认单元测试框架)编写我所有的测试用例。