[](https://travis-ci.org/Wesley Shi/Neumob)
Neumob 为 iOS 提供了一种简单的 API,用于加速您的移动应用流量。简单地将 Neumob SDK 包含并初始化,使用一行代码即可使您的应用访问我们的云网络并加速应用数据流量。
在您可以加速您的应用程序之前,您需要完成我们的简单注册流程以免费获取 Neumob 账户,在那里您可以注册您的应用程序并获取客户端密钥。如果您是第一次使用 Neumob,请查看 门户,您可以在 5 分钟内启动运行!
要查看完整更新的 iOS 指南,请查看我们的 入门指南
最低兼容的 iOS 版本是 7.0。
Neumob 有启用和未启用 bitcode 版本。要区分 Neumob 的哪个版本启用了 bitcode,请检查发布版本的最后一位数字。
例如:
x.x.x.1 -> Bitcode Enabled = No
x.x.x.2 -> Bitcode Enabled = Yes
要确定您的应用程序是否启用了 bitcode,请在 XCode 中导航到您的项目,并在 构建选项 下的 构建设置 中检查 启用 Bitcode 属性。
如果您使用 CocoaPods,请将以下某行添加到您的 podfile 中,然后运行 pod install 或 pod update。
pod 'Neumob', '3.7.2.1' // Xcode 7 - Bitcode not enabled
pod 'Neumob', '3.7.2.2' // Xcode 7 - Bitcode enabled
手动安装(拖放)
初始化是修改您应用程序以与 Neumob 通信的过程。要使用 Neumob,您必须在 AppDelegate 的实现文件中导入 Neumob 头文件。对于 Swift 应用程序,将此导入放置在 bridging-header.h 文件中。
// AppDelegate.m or bridging-header.h
#import <Neumob/Neumob.h>
仅在 AppDelegate 的 application:didFinishLaunchingWithOptions: 方法的开始处,在主线程上调用一次 Initialize Neumob。
// Objective C
[Neumob initialize:@"NEUMOB_CLIENT_KEY"];
// Swift
Neumob.initialize("NEUMOB_CLIENT_KEY");
您的客户端密钥可以通过注册应用程序在门户上检索。现在 Neumob 已集成到您的 iOS 应用程序中!
如果您希望在初始化完成后收到通知,可以在完成后执行的可选参数 completionHandler 中添加,该参数在 initialize 完成后执行。使用 authenticated、initialized 和 accelerated API 调用来检查 Neumob 的状态。
authenticated 返回一个布尔值,指示用于初始化 Neumob 的客户端密钥是否经过认证。没有经过认证的客户端密钥不能初始化 Neumob。
initialized 返回一个布尔值,指示 Neumob 已启用并准备好加速您的网络请求。
accelerated 返回一个布尔值,指示 Neumob 是否正在加速您的请求。您可以通过调整门户上的 passthrough 参数来配置是否以加速方式使用 Neumob。我们建议使用 accelerated 方法进行 A / B 测试。
以下是验证 Neumob 初始化的一个例子。
// Objective C
[Neumob initialize:@"NEUMOB_CLIENT_KEY" completionHandler:^{
if ([Neumob initialized]) {
BOOL accelerated = [Neumob accelerated];
...
} else if ([Neumob authenticated]) {
...
}
}];
// Swift
Neumob.initialize("NEUMOB_CLIENT_KEY", completionHandler: {
if (Neumob.authenticated()) {
boolean accelerated = Neumob.accelerated()
...
} else if (Neumob.initialized()) {
...
}
})
目前,我们不推荐在完成块内部执行您自己的初始化代码。请注意,该块不在主线程上运行。
如果您想通过 Neumob 的自定义协议和云设置是否加速当前会话的网络请求,可以使用 setAcceleration API。该方法应一次调用一次,并且应在初始化 Neumob 之前进行。
// Objective C
BOOL shouldAccelerate = ... // Determine whether this session should be accelerated
[Neumob setAcceleration:shouldAccelerate];
// Initialize Neumob
// Swift
let shouldAccelerate = ... // Determine whether this session should be accelerated
Neumob.setAcceleration(shouldAccelerate);
// Initialize Neumob
默认情况下,Neumob 会记录可能对验证 Neumob 初始化有用的消息。要禁用或调整要打印的日志消息,请使用 setLogLevel API。要获取当前的日志级别,请使用 logLevel API。
// Objective C
[Neumob setLogLevel:NMLogLevelNone];
NSLog(@"Current Neumob log level is none: %@", [Neumob logLevel] == NMLogLevelNone ? @"true" : @"false");
// Swift
Neumob.setLogLevel(NMLogLevel.None);
print("Current Neumob log level is none: \(Neumob.logLevel() == NMLogLevel.None)")
可用的日志级别按喧嚣程度顺序如下
如果您出于任何原因想禁用 Neumob,请转到您的应用设置门户并选择应启用的应用版本和/或 Neumob SDK 版本的组合。一旦禁用,Neumob 将不会在客户端设备上初始化。
Neumob iOS SDK 具有原生依赖关系,导致 Xcode 调试器在 SIGPIPE 中停止。这些 SIGPIPE 不会对您的应用程序产生负面影响,您可以通过添加“process handle SIGPIPE -n false -s false”调试器命令的断点来忽略它们。
Neumob iOS SDK 使用并注册了一个自定义 NSURLProtocol,您可以通过为 SDK 版本和应用程序版本实现黑名单或白名单来选择您希望 Neumob 加速或不加速的主机。如果您使用第三方 API,如 Google Analytics,我们建议将这些主机添加到黑名单中。
如果您有任何问题或疑虑,请联系 Neumob,邮箱:[email protected]
商业许可证。请参阅我们的 服务条款和条件。