从 iOS 的 UITests 中读取 Info.plist?

Posted

技术标签:

【中文标题】从 iOS 的 UITests 中读取 Info.plist?【英文标题】:Reading Info.plist from UITests in iOS? 【发布时间】:2017-03-30 13:33:34 【问题描述】:

是否可以在 UITesting 时从 UITests 文件夹文件中的 Info.plist 文件中读取?如果是这样,如何。

到目前为止,我已经尝试过:

if let url =  Bundle.main.url(forResource: "Info", withExtension: "plist"),
        let myDict = NSDictionary(contentsOf: url) as? [String:Any] 
        print(myDict)
    

不过,这会返回一些plist,这不是我在主项目文件夹中拥有的那个。

【问题讨论】:

【参考方案1】:

您需要阅读(或注入)您的测试类的特殊捆绑包。试试这个。将下面 Bundle(for:) 调用中的 OSTests 替换为您的 XCTestCase 子类的名称。

  func testExample() 
    let testBundle = Bundle(for: OSTests.self)
    if let url = testBundle.url(forResource: "Info", withExtension: "plist"),
      let myDict = NSDictionary(contentsOf: url) as? [String:Any] 
      print(myDict)
    
  

然后,您需要确保将测试包复制到您的测试应用中。选择您的测试目标。公开 Build Phases 选项卡中的 Copy Bundle Resources 部分。单击 + 图标并选择您的测试目标的 Info.plist 文件。

这是我当时的结果。

【讨论】:

以上是关于从 iOS 的 UITests 中读取 Info.plist?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 iOS 中读取已安装应用的 info.plist?

“帮助修复”错误:无法从文件中读取属性列表:info.plist

iOS UITests NSLocalizedString 不工作

如何从 UITests 中访问 UITabBarItem?

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?