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文件里的属性值的主要内容,如果未能解决你的问题,请参考以下文章
获取 Info.plist 的所有 CFBundleTypeExtensions