gpt4 book ai didi

ios - 以编程方式编辑 plist

转载 作者:行者123 更新时间:2023-11-28 22:07:15 24 4
gpt4 key购买 nike

当我要投入生产时,我从来不记得要更改任何东西,所以我只是使用苹果提供的这种方法 ( https://developer.apple.com/library/mac/qa/qa1361/_index.html ) 来检测我是在调试还是在生产中,所以我的所有更改都是为我做的 (切换到真实广告,使用生产 url 等)

我有以下 Urban Airship 的 plist

AirshipConfig.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>analyticsEnabled</key>
<false/>
<key>inProduction</key>
<false/>
<key>developmentAppKey</key>
<string>SOMESTRINGHERE</string>
<key>developmentAppSecret</key>
<string>SOMESTRINGHERE</string>
<key>productionAppKey</key>
<string>SOMESTRINGHERE</string>
<key>productionAppSecret</key>
<string>SOMESTRINGHERE</string>
</dict>
</plist>

现在,对于 Urban Airship,当我发布到应用商店时,我必须将 inProduction 更改为 true,而当我调试时,我必须将其更改为 false

因此,在我的应用委托(delegate)中,我尝试使用以下 if 更改 plist。我仍在尝试获取 plist 的内容以查看它是否正常工作,但我一直在获取 (null) 作为我的 NSLog

if([Def AmIBeingDebugged]){
//Development set to false
NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"AirshipConfig" ofType:@"plist"];
NSLog(@"%@", [NSArray arrayWithContentsOfFile:plistPath]);
}else{
//Production set to true
}

任何关于设置正确 plist 值的帮助将不胜感激,因为我遇到了困难并且无法弄清楚为什么它总是 (null) 因为我认为我需要这些内容以便我可以重写文件。

最佳答案

首先为所有 Xcode 构建配置创建单独的 AirshipConfig.plist 副本,并以 AirshipConfig_$(CONFIGURATION).plist 格式命名它们(例如 AirshipConfig_Debug.plistAirshipConfig_Release.plist)。然后将它们的内容更新为您想要的任何内容(例如,将 inProduction 设置为适当的值。)

然后在 Xcode 中为您的应用程序目标创建一个新的“运行脚本”构建阶段,并将其命名为“Copy Urban Airship config file to bundle”。将其添加为脚本的内容:

cp "${SRCROOT}/MyProjectName/AirshipConfig_${CONFIGURATION}.plist" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AirshipConfig.plist"

这会将正确构建配置的配置文件复制到您的应用程序包中,并使用外部库期望的文件名 (AirshipConfig.plist)。 只需确保上述示例中配置文件的源路径正确即可。

关于ios - 以编程方式编辑 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23665957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com