如何访问某个 info.plist?

Posted

技术标签:

【中文标题】如何访问某个 info.plist?【英文标题】:How do I access a certain info.plist? 【发布时间】:2021-11-16 09:41:07 【问题描述】:

我有多个 info.plist 文件并希望以编程方式访问它们。我在这里阅读了如何做到这一点:

https://sarunw.com/posts/how-to-read-info-plist/

但是当我尝试时:

let infoPlistPath = Bundle.main.url(forResource: "Myplist-Info", withExtension: "plist")
print(infoPlistPath)

它返回 nil。

我尝试将plist 添加到相应的目标中,结果相同。 我还尝试将plist 添加到设置copy bundle resource。但它仍然返回 nil。

我该如何做到这一点?

【问题讨论】:

那是你的 plist 文件的真实名称吗?区分大小写等?你能截图你的 XCode 视图吗? 不,不是,因为公司政策等原因,我只是在 SO 上写了一些别的东西。我已经尝试了多个 info.plist 文件,但都是一样的......如果有帮助,我正在尝试在 unitTest 中访问它们。 ***.com/questions/19151420/… ? 谢谢,但我尝试将它放在常规 viewController 的测试之外,结果是一样的:/ 仍然没有 编译应用然后打开IPA文件:plist文件在里面吗?测试文件是否正确复制到包中的简单方法。 【参考方案1】:

我附上了获取Info.plist所有属性的代码。

func getDataFromInfoPlist()
    if let path = Bundle.main.path(forResource: "Info", ofType: "plist") 
       let infoListValue = NSDictionary(contentsOfFile: path)
        do 
            let JsonData = try JSONSerialization.data(withJSONObject: infoListValue as Any, options: .prettyPrinted)
            let val = NSString(data: JsonData, encoding: String.Encoding.utf8.rawValue)! as String
            print(val)
         catch 
            print(error.localizedDescription)
        

    
    print(nsDictionary as Any)

【讨论】:

谢谢,但它是一样的。所有 info.plist 文件都返回 nil...

以上是关于如何访问某个 info.plist?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - iOS 模拟器部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 7.0 && 无法找到构建输入文件 GoogleService-Info.pl

如何以编程方式访问 iOS 中其他已安装应用程序的 info.plist?

苹果拒绝应用程序要求提供访问位置目的字符串 Info.plist

向 info.plist 添加了自定义键,当我从 Swift 的游乐场访问时,它是 nil

info.plist

应用的 Info.plist 必须包含一个 NSContactsUsageDescription 键