我有一个由应用程序链接到的静态库。库代码打开应用程序包中的包中的文件,打开方式如下:
NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"];
这工作正常。
但是我想在库中添加一些单元测试代码,所以我有一个逻辑测试目标。由于该文件位于应用程序的捆绑包中,而不是静态库的捆绑包中,因此我复制了该Config.plist
文件并将其添加到测试代码目标中Copy Bundle Resources
。但是,当我执行测试代码时,找不到该文件。这是为什么?
由于上述内容令人困惑,这里是工作区结构的摘要。
Workspace contains:
Application Project with application target, which contains (X)
Config.plist (a)
Library project which contains:
Library target, which contains:
the code opening the file in the bundle (b)
Test library target, which contains: (Y)
A Copy of the Config.plist (c)
因此,如果我构建 X,那么当 b 运行时它可以找到 a。但是当我在运行时构建 Y 时,b 找不到 c。