测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | Apache 2 |
发布上次发布 | 2017年3月 |
Maintained by Will Rust, Percy Hanna, KM Dev.
此工作空间包含用于构建 SDK 作为框架(KISSmetricsSDK.framework
)和所需公共接口(KISSmetricsAPI.h
)的源文件。此处的源文件不打算直接用于您的应用程序。
有关实现细节,请参阅:http://support.kissmetrics.com/article/show/ios-sdk-v2
设置框架项目需要几个步骤,并且可能随 Xcode 版本的不同而有所不同。此处不列出所有步骤,请参考以下教程:http://blog.db-in.com/universal-framework-for-ios/
在 AppDelegate 及您将会跟踪的所有类中导入 API 类
#import <KISSmetricsSDK/KISSmetricsAPI.h>
手动:(如果未使用 KISSmetricsAPI_options.m
,则为必需)在应用程序代理的 didFinishLaunchingWithOptions
方法顶部添加
[KISSmetricsAPI sharedAPIWithKey:@"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"];
自动:(需要 KISSmetricsAPI_options.m
)客户的设置,包括他们的 API 密钥,将存储在 KISSmetricsAPI_options.m
中。我们可以根据新 KM 产品设置期间所做的选择为他们构建此文件,并将其与 KISSmetricsAPI.framework 和 KISSmetricsAPI.h
一起交付。如果包含此文件,则将忽略使用 sharedAPIWithKey 初始化的尝试。即使提供的密钥与 KISSmetricsAPI_options.m
中设置的密钥不同。
SDK 将支持 ARC/non-ARC 和 32bit/64bit 项目。此工作空间包含一个测试项目,可以直接针对构建文件运行应用程序集成测试。
所有 API 文件都位于项目外的 KISSmetricsAPI
目录中。项目将链接到共享的 KISSmetricsAPI
目录。
kma_
为前缀uth_
为前缀KISSmetricsAPI 方案 > iPhone 模拟器
和 运行
KISSmetricsSDK 方案 > iOS 设备
和 运行
UniversaliOS 方案 > iOS 设备
并 运行
你应该能在本仓库根目录中找到编译好的框架 KISSmetricsAPI.framework
。
为了支持arm64、arm7、arm7s,KISSmetricsAPI库的目标和UniversaliOS聚合目标需要针对iOS7和标准架构(包括64位,如armv7、armv7s、arm64)进行构建。为了确认这些架构包含在最终的框架构建中,请进入构建的KISSmetricsAPI.framework目录并运行
otool -V -f KISSmetricsSDK
内部日志用于我们自己的目的。
请勿使用 NSLog
,改用 KMALog
,它可以通过KMALogVerbose来切换,在发布编译好的SDK时适用,且仅在DEBUG模式下有效。(见KMAMacros.c)
我们可能需要定义一个 KMAInfoLog
,它将日志输出到我们客户方的开发者。这也应该有一个客户开发者可以控制的详细模式切换。
我们的SDK在不为DEBUG时的所有情况下应友好地失败。使用 KMAAssert
而不是 NSAssert
,以防止当客户的应用程序为发布构建时我们的SDK进行断言。
仅使用 KMAAssert
对于至关重要的警告给客户开发者。否则使用 NSLog
或 KMAInfoLog
(如果实现)。
我们在单元和应用程序测试中使用OCMockito。 https://github.com/jonreid/OCMockito
KISSmetricsSDK_framework_builder
包含一组单元测试,但由于框架构建器不是一个应用程序,框架的应用程序测试是在 KISSmetricsSDK_buildFiles_arc_imp
下进行的。
你应该首先在 KISSmetricsSDK_buildFiles_arc_imp
中编写应用程序测试,而不是在每次更改SDK之间重新构建框架。
添加到我们SDK框架中的任何分类都必须使用一个独特名称,且其中每个方法也必须使用一个唯一的前言以避免与客户方开发者的分类冲突!
KMA
作为类或常量前缀。kmac_
。kma_
。