我的iOS应用程序需要凭据才能连接到多个API。因为该项目是开源的,所以我不想将凭证检查到源代码库(git)。
最终,我希望能够在我的应用程序代码中执行类似的操作:
googleMapsApiKey = [AppCredentials googleMapsApiKey];
使用不在源代码管理下的配置文件初始化AppCredentials
。
过去,我一直在使用像Python或Ruby这样的动态语言,并且到达solutions like this one以保证凭证不受源代码控制。方法是这样的:
但是,我不知道如何在iOS上应用此方法。我不能只在源根目录中删除'passwords.json'文件,并在应用程序初始化时解析它。我无法在应用包中添加内容,因为捆绑包也会被检入版本控制。
请注意,此不会阻止恶意用户从已编译的应用中提取凭据。我现在不打算解决这个问题。有了这个问题,我只想保留凭证的源代码。
答案 0 :(得分:1)
这实际上是一个SVC问题,从这个角度来看,您只想将配置添加到单个文件中,并让SVC忽略该文件。
通常,我会在'read me'文件中添加在项目有效之前需要在指定位置创建此配置文件。
然后,将文件添加到项目中并为其指定目标成员资格(因此在构建时将其复制到包中)。现在,在代码中,您可以使用类似:
[[NSBundle mainBundle] pathForResource:@"accountConfig" ofType:@"plist"];
获取要加载的文件的路径。