swift3.0怎么获取info.plist文件里的属性值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift3.0怎么获取info.plist文件里的属性值相关的知识,希望对你有一定的参考价值。

plist是ios上一种基于xml格式的属性列表,在一些简单的程序里面,我们可以用plist文件存储一些基本的信息用来重复使用。先来看看plist文件的结构在XCode里面新建一个PropertyList(在Resouce里面)。总共有三层结构,最顶层是根节点root,是个Dictionary类型(可选),第二层Presidents,是Array类型,第三层依然是Dictionary类型。里面有很多key,以及key对应的值,我们要读取里面的数据就是要根据key来读取。首先构造一个NSDictionary对象dict,包含整个plist文件的所有属性值。然后用objectForKey函数从里面挑出Presidents这层的数组对象arr,arr数组每一个单元都是一个Dictionary类型,我们按属性值找到第一个单元的NSDictionary对象dic2,整个字典对象下面全部都是String类型的字符串了,因此可以直接用objectForKey函数将key对应的值取出来。PS:你需要MACPROXcode 参考技术A 您好,请问您是想知道swift3.0怎么获取info.plist文件里的属性值吗?

Xcode 11 Swift 5 - 无法安装应用程序(无法加载 info.plist 文件)

【中文标题】Xcode 11 Swift 5 - 无法安装应用程序(无法加载 info.plist 文件)【英文标题】:Xcode 11 Swift 5 - Unable to install app (failed to load info.plist file) 【发布时间】:2020-01-10 20:50:17 【问题描述】:

正如标题所说,我无法在设备或模拟器上安装我的应用程序(但是构建成功)。 仅当我使用 Cocoapods 时安装才会失败。

原因似乎是它找不到安装的单个 pod 的 Info.plist 文件。

当我安装到模拟器时,我收到错误消息:

“此时无法安装此应用程序:无法从路径的捆绑包中加载 Info.plist ...有关 plist 的额外信息:ACL="

当我安装到我的设备时,我收到错误消息:

“无法安装。”详细信息中的失败原因是“无法检查应用程序包。”

失败的 pod(例如)是 ZIPFoundation 和 ReachabilitySwift。

在 Pods 项目下,如果我在 Targets 下选择框架,则没有 Info.plist 文件可用,所以我不确定在 pods 安装期间是否没有复制 plist 文件。

# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'

target 'app' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for app
  pod 'ReachabilitySwift'
  pod 'ZIPFoundation'

  target 'appTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'appUITests' do
    # Pods for testing
  end

end

我在 Xcode 11.2.1 中使用 Swift 5。

我已经尝试了很多解决方法,但都没有解决方案,因此我将不胜感激有关该问题的任何提示和信息,因为我目前无法在我的项目中使用任何 Pod。

编辑:

我用一个新项目重现了这个问题。

在项目文件夹中,运行 pod init。 添加 pod 'ReachabilitySwift' 吊舱安装 打开工作区 在模拟器上构建并运行 -> “此时无法安装此应用”

同样,这是使用 Xcode 11.2.1。

【问题讨论】:

很抱歉,这是一个“愚蠢”的问题,但是,您在制作此 pod 文件后是否运行过 pod install 和/或 pod update? 没有愚蠢的问题。是的,我还清除了 Pods 文件夹,删除了 Podfile.lock 和工作区,然后更新了 pod。我已经重置了模拟器,删除了模拟器缓存,删除了 DerivedData,并清理了 Xcode @DawsonLoudon 中的构建文件夹 @boppa 你解决了吗?我有同样的问题。 【参考方案1】:

我今天遇到了同样的问题。运行“pod install”后,我的 cocoapods 卡在任何项目中。刚安装完就突然发生了:https://github.com/yiplee/YPNavigationBarTransition

然后我立即卸载了该插件并完全清除了缓存。还重新安装了 cocoapods。没运气。我正在尝试将 Xcode 升级到 12,现在希望能发生一些奇迹。

编辑:解决方法是为所有 pod 添加一个假 plist

general_pod_info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleDevelopmentRegion</key>
  <string>en</string>
  <key>CFBundleExecutable</key>
  <string>$EXECUTABLE_NAME</string>
  <key>CFBundleIdentifier</key>
  <string>$PRODUCT_BUNDLE_IDENTIFIER</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleName</key>
  <string>$PRODUCT_NAME</string>
  <key>CFBundlePackageType</key>
  <string>FMWK</string>
  <key>CFBundleShortVersionString</key>
  <string>4.3.0</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleVersion</key>
  <string>$CURRENT_PROJECT_VERSION</string>
  <key>NSPrincipalClass</key>
  <string></string>
</dict>
</plist>

【讨论】:

干得好!这是一个临时的解决方案,苹果必须解决这个问题。【参考方案2】:

从 Podfile 中删除 use_frameworks! 是我的解决方案。以下线程帮助我找到了https://forums.developer.apple.com/thread/126598#398211

【讨论】:

以上是关于swift3.0怎么获取info.plist文件里的属性值的主要内容,如果未能解决你的问题,请参考以下文章

ios开发之Info.plist文件相关配置

获取 Info.plist 的所有 CFBundleTypeExtensions

不小心删除了支持文件夹下的 info.plist 文件:怎么办?

Xcode13 “消失”的Info.plist文件

Xcode13 “消失”的Info.plist文件

Xcode13 “消失”的Info.plist文件