在我的iOS项目中,我创建了一个单独的plist文件,其中包含所有社交共享密钥和appIds等的值。
如何在项目/目标设置中指定此新plist文件是默认info.plist文件的扩展名? 我可以在主info.plist文件中创建指向新链接的链接吗?
某些第三方库试图在项目info.plist文件中查找键值,因此我没有选择在引用点指定新的plist文件。
我只能在Build Settings>中指定一个文件。包装>的Info.plist
答案 0 :(得分:3)
据我所知,你无法链接两个plist文件。每个目标配置只能设置一个plist。
也许,按照配置分离plist文件就是你要找的东西。 要执行此操作,请转到构建设置>包装> Info.plist文件,展开它并为指定的配置设置不同的plist文件路径(默认情况下有2种配置:Debug和Release)。
答案 1 :(得分:3)
正如@pjanecze所提到的,您可以通过在构建阶段编写脚本来获得所需内容。例如:
if [ $CONFIGURATION != 'Debug' ]; then
build_hash=`git log -1 --format="%h"`
/usr/libexec/PlistBuddy -c "Set :git_sha ${build_hash}" MyInfo.plist
/usr/libexec/PlistBuddy -c "delete :foobar" MyInfo.plist
fi
您可以通过PlistBuddy
访问该手册页来访问有关如何使用man PlistBuddy
的更多信息。
答案 2 :(得分:2)
据我所知,只有一个Info.plist文件,如上所述在Build Settings下指定。
但是,有一种方法可以管理“扩展”plist文件,这取决于应用程序通过- (NSDictionary *)infoDictionary
方法访问info.plist文件的事实。即,你可以:
swizzle infoDictionary
使用您自己的实现进行默认实现;
在infoDictionary
实现中,您将调用原始实现,然后通过阅读“扩展”plist文件条目来扩展返回的NSDictionary
。
您甚至可以定义自己的特殊密钥,例如,kExtensionPlistFile
将在Info.plist中用于指向“扩展”plist文件。