我想将这个答案的功劳归功于这篇文章,因为他指出了FireBase Remote Config and A/B testing。
正如提问者所问,我将解释实现它所涉及的步骤。
服务器上的配置
访问https://console.firebase.google.com/并使用您的 Google 帐户登录。
选择创建项目并单击iOS
输入应用ID和昵称,然后点击注册应用
它将显示指向GoogleService-Info.plist下载的链接,然后将其拖放到项目中
选择下一步
它会告诉你运行你的应用程序来验证安装你可以选择跳过这一步
从登录页面选择远程配置
选择添加变量并输入您选择的变量名称,但我输入ABTestVariationType并将值留空并选择发布更改
从侧栏中选择A/B 测试,然后单击创建实验,然后选择远程配置
在即将出现的弹出窗口中输入您选择的名称我输入为A/B 测试 POC输入一些关于它的描述,无论如何这是可选的
在目标用户中选择您的应用程序 ID,在目标用户百分比中选择100%,然后单击下一步,然后它将显示变体部分
在变体部分将有一个名为“控制组”的常规类别,默认加载 50% 和一个 50% 填充的变体框和空白框,您可以在其中输入任何名称,但我会输入变体 2。现在单击添加参数 8 次现在您可以看到每个变体有 10% 并命名所有变体,我将变体 3、变体 4 命名为变体 10。
在同一变体部分中,单击远程配置中的添加参数
现在您可以看到每个变体参数旁边出现一个框。您可以输入唯一值来识别每种风味。我将为第一个变体输入值 1,为第二个变体输入值 2,例如我将为最后一个变体完成值 10,然后单击下一步
然后出现目标部分,您可以选择其中一个,但我会选择Retention(15+) days并单击Review并单击start Experiment并在出现的提示中选择start again
在应用程序中集成
在您的项目中添加以下 pod
pod 'Firebase/Core'
pod 'Firebase/RemoteConfig'
拖放在服务器配置期间下载的GoogleService-Info.plist
使用以下样板代码启动 firebase
@import Firebase;
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions(NSDictionary *)launchOptions
{
[FIRApp configure];
return YES;
}
4.拥有RcValues类,这是您项目中的另一个样板代码
#import "RcValues.h"
@import Firebase;
@implementation RcValues
+(RcValues *)sharedInstance
{
static RcValues *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[RcValues alloc] init];
});
return sharedInstance;
}
-(id)init{
self=[super init];
if(self)
{
[self AcivateDebugMode];
[self LoadDefaultValues];
[self FetchCloudValues];
}
return self;
}
-(void)LoadDefaultValues
{
[FIRRemoteConfig.remoteConfigsetDefaults:
@{@"appPrimaryColor":@"#FBB03B"}];
}
-(void)FetchCloudValues
{
NSTimeInterval fetchInterval=0;
[FIRRemoteConfig.remoteConfigfetchWithExpirationDuration:
fetchInterval completionHandler:^(FIRRemoteConfigFetchStatus
status, NSError *_Nullable error)
{
NSLog(@"error:%@",error);
[FIRRemoteConfig.remoteConfig activateFetched];
}];
}
-(void)AcivateDebugMode{ //
FIRRemoteConfig.remoteConfig.configSettings=debugSettings;
FIRRemoteConfigSettings *config = [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES];
FIRRemoteConfig.remoteConfig.configSettings=config;
}
@end
5.调用appdelegate中的类didFinishinglaunchoptions
RcValues *Obj=[RcValues sharedInstance];
这将下载用于 ABtesting 的键值
6.使用以下代码从firebase获取AB测试密钥到您的应用程序
self.flavourNumber.text=[FIRRemoteConfig.remoteConfig
configValueForKey:@"ABTestVariationType"].stringValue;
根据键值,您可以根据需要显示不同的 UI。
Firebase 将负责发送正确的值,您不必担心自己将用户分组。
附言
请按照以下教程获取更详细的信息,这只是一个摘要,我会在空闲时间尝试总结或添加更多图片以便更容易理解如果可能的话我将尝试在 github 中添加示例项目并在此处链接
firebase-tutorial-ios-ab-testing
firebase-remote-config-tutorial-for-ios