Jails 版本 0.0.1

Jails 版本 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Matzo维护。



Jails 版本 0.0.1

  • Matzo

针对iOS和Android原生应用的A/B测试框架。

iOS

要求

  • iOS 5.0 及更高版本

安装

  1. 在Xcode中打开项目。
  2. 选择方案Jails > iOS Device然后Project > Build
  3. 选择方案Jails > iPhone 5.0 Simulator然后Project > Build
  4. 将构建好的libJails.aJails.hRelease-universal or Debug-universal复制到您的项目中。
  5. -ObjC -all_load添加到构建设置中的Other Linker Flags

示例代码

// AppDelegate.m

#import "Jails.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      :
    [Jails breakWithConfURL:[NSURL URLWithString:@"http://your.domain.com/path/to/conf/jails.json"]];
      :
}

Android

要求

  • AspectJ

安装

  1. 从Eclipse Marketplace安装AJDT。
  2. 通过Select Project > Configure > Convert to AspectJ Project将您的项目更改为AspectJ项目。
  3. jails.jaraspectjrt.jar(在Java构建路径的顺序和导出中检查AspectJ Runtime Library)添加到您的项目中。
  4. ActivityAspect.aj添加到您的项目中。

示例代码

// MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
      :
    Jails.breakWithConfURL("http://your.domain.com/path/to/conf/jails.json");
      :
}

Jails.json

{"ClassNameOfViewController": [
  { "ratio": 0 },   // A: 0%
  { "ratio": 100,   // B: 100%
    "branchName": "b",
    "properties": [{
      "name": "scrollView",
      "frame": ["+0", "+44", "+0", "-44"]
    },
    {
      "name": "view",
      "createSubviews": [{
        "class": "UIButton",
        "background": "http://button/image.png",
        "frame": ["0", "0", "320", "44"],
        "action": "http://open/this/url/"
      }]
    }]
  }
]}
required 描述
ClassNameOfViewController o 此类名可以更改。您可以指定UIViewController或UIView的子类。
ratio o A/B测试的百分比。
branchName - 您可以使用此名称作为分析工具的参数。
properties - 您可以使用指定的名称更改每个属性。
属性或createSubviews的键 required 描述
name o 属性变量的变量名
background - 如果您指定为图像的URL,则绘制为模式瓦片或绘制颜色(如果指定HEX颜色代码)。
frame - iOS中UIView的frame。您可以指定相对位置。
text - 对于UILabel:更改标签的文本。对于UIButton:更改按钮的标题。对于UIWebView:更改HTML内容。
action - 对于UIWebView:您可以指定HTML内容的URL。对于UIButton:您可以指定调用openURL:的URL或在addTarget:action:forControlEvents中指定选择器。
hidden - 更改UI元素的可见性。
createSubview - 您可以使用此参数用于原始属性。因此,您无法构建树型层次结构。

工具