如何获取 INFOPLIST_FILE 名称 iOS

Posted

技术标签:

【中文标题】如何获取 INFOPLIST_FILE 名称 iOS【英文标题】:how to get INFOPLIST_FILE name iOS 【发布时间】:2016-07-04 15:07:11 【问题描述】:

我项目中的每个目标都必须有不同的 info.plist。我想以编程方式从 BuildSettings> Packaging> Info.plist 文件中获取名称,但不知何故我无法真正检索 plist 列表文件名。有没有办法以编程方式检索 plist?

NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleInfoPlistURL")

只给我

Info.plist -- file:///Users/XXXX/Library/Developer/CoreSimulator/Devices/XXXXXX-9B37-4C3D-88E9-XXXXX62B470/data/Containers/Bundle/Application/7XXXXXXXB-BE36-4D3E-9C90-XXXXX/PROJECT%20KOL.app/

【问题讨论】:

【参考方案1】:

其实NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleInfoPlistURL")返回一个NSURL对象。从中提取绝对字符串,这将为您提供 plist 文件的名称。检查下面的代码。很抱歉在Objective-C 中给出答案,因为我不知道Swift

NSDictionary *infoDict = [NSBundle mainBundle].infoDictionary;
NSString *plistFilePath = [[infoDict objectForKey:@"CFBundleInfoPlistURL"] absoluteString];
NSString *plistFileName = [[plistFilePath componentsSeparatedByString:@"/"] lastObject];

plistFileName 是必需的文件名(扩展名为 .plist)

【讨论】:

以上是关于如何获取 INFOPLIST_FILE 名称 iOS的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS中获取WLAN ISP名称?

如何在 iOS 中获取 WLAN ISP 名称?

如何获取默认的 iOS 浏览器名称?

如何在 IOS 中获取所有名册名称

如何使用 Cordova 获取 iOS 用户设置的设备名称?

如何在 UITesting swift 4 iOS 中获取应用程序名称