通过美丽的着陆页提高您的应用可见性,通过集成所需和吸引人的内容,将您的应用提升到一个新的水平。
iOS SDK
专注于您的核心业务,让 Apprack 来处理其余工作。
Apprack iOS SDK 允许您专注于核心业务,通过接管所有的屏幕,这些屏幕您不需要花时间开发,例如使用条款、隐私政策、版本说明、设置、支持表单等屏幕。
要使用 SDK,您只需要在 apprack.io 上有一个账户。
apprack.io 还能够为您的应用生成一个着陆页,以帮助您推广和营销。
访问 apprack.io 了解更多信息。
SDK 中包含的内容
Apprack iOS SDK 包含多种屏幕和功能。您可以全部使用,也可以仅使用一个——任何组合都是可能的。您可以使用设置控制器,该控制器链接到所有其他提供的屏幕。您还可以仅使用隐私政策屏幕,或者仅使用设置屏幕来推广您的其他应用。
屏幕
- 设置屏幕
- 如果在iOS设置中您的应用请求了任何隐私类别(照片、日历、联系信息等),将自动链接到您的应用设置
- 链接到App Store中的应用评分屏幕
- 包含版本号(也提示用户有新的更新可用)
- 集成SDK中包含的所有其他屏幕
- 可以使用自定义部分或完全自定义
UIView
来扩展 - 部分(如支持表单、发行说明、法律屏幕等)可以在apprack.io上任何时间启用/禁用 — 改变在您的应用程序中将立即可见
- 链接到您的社交媒体配置文件(Twitter、Facebook、Instagram等) 即将推出
- 推广您的其他应用程序 即将推出
- 支持表单
- 支持消息将自动包含调试信息(应用程序版本、iOS版本、设备型号等)
- 发行说明
- 全自动发行说明,始终与您的App Store发行同步。apprack.io知道您的版本何时上线并直接从App Store获取最新版本的发行说明
- 法律屏幕
- 可以在apprack.io上随时编辑法律文件 — 改变在您的应用程序中将立即可见
- 提供屏幕
- 使用条款
- 隐私策略
- 印记
- 法律
功能
- 检查可用更新
- SDK可以在App Store中检查新版本,并提示用户更新
- 新版本的发行说明可以直接链接,以增加更新的动力
- 此功能可以在apprack.io上随时启用/禁用 — 改变在您的应用程序中将立即可见
- 请求评分
- SDK可以使用苹果提供的官方
SKStoreReviewController
请求用户在App Store中进行评分和评价 - 使用apprack.io上的设置来指定何时以及是否提示用户(通过所需的应用程序启动次数、自首次安装以来的天数等)
- SDK可以使用苹果提供的官方
如何使用它?
要获得SDK的初步印象,请检查此存储库并启动提供的示例应用程序。示例应用程序以Objective-C和Swift提供。
要将它集成到您的应用程序中,我们强烈建议使用CocoaPods安装SDK。
使用Cocoapods安装
iOS SDK可以通过Cocoapods获取,它是Cocoa项目的依赖管理器。
您可以使用以下命令安装它:
$ gem install cocoapods
要将SDK集成到您的Xcode项目中,请在您的Podfile
中指定它:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Apprack'
end
然后,运行以下命令:
$ pod install
验证您的应用程序
当应用程序启动时,它需要通过apprack.io进行自身验证以便能够包含所需的内容。为此,只需在-application:didFinishLaunchingWithOptions:
中调用-initializeWithAppKit:andApiKey:
Objective-C
#import <APRFramework/APRFramework.h>
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
// the ids for your app can be found on your apprack.io dashbaord in the SDK section
NSString* appKit = @"415a4162-f52a-4b7b-bc02-b582e535dc56";
NSString* apiKey = @"4vzHzK6WaUsnonCG715QYQ";
[APRAppManager.sharedManager initializeWithAppKit:appKit andApiKey:apiKey];
return YES;
}
Swift
import APRFramework
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// the ids for your app can be found on your apprack.io dashbaord in the SDK section
let appKit = "415a4162-f52a-4b7b-bc02-b582e535dc56"
let apiKey = "4vzHzK6WaUsnonCG715QYQ"
APRAppManager.shared().initialize(withAppKit: appKit, andApiKey: apiKey)
return true
}
显示屏幕
要显示SDK提供的屏幕,请使用APRAppManager
的属性(如settingsViewController
、imprintViewController
、changelogViewController
等)。所有屏幕均应在UINavigationController
中显示。
以模式显示
Objective-C
UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:APRAppManager.sharedManager.settingsViewController];
[self presentViewController:navigation animated:YES completion:nil];
Swift
let navigation = UINavigationController(rootViewController: APRAppManager.shared().settingsViewController)
self.present(navigation, animated: true, completion: nil)
在现有的导航控制器上推入
Objective-C
[self.navigationController pushViewController:APRAppManager.sharedManager.settingsViewController animated:YES];
Swift
self.navigationController?.pushViewController(APRAppManager.shared().settingsViewController, animated: true)
设置屏幕
将SDK提供的所有屏幕包含在其中的最佳方式是包含提供的设置屏幕。其他屏幕,例如支持表单、发布说明、隐私政策、法律声明和版权信息,均可以从设置中访问。
自定义
您可以通过在apprack.io上的SDK部分自定义要显示或链接的内容。
APRSettingsViewController
有几个颜色属性可用于自定义设置屏幕的外观,以完美适应您应用的配色方案。
backgroundColor
UIColor
属性用于设置控制器的背景颜色。
cellBackgroundColor
UIColor
属性用于设置单元格的背景颜色。
borderColor
UIColor
属性用于设置单元格的边框颜色。
finePrintColor
UIColor
属性用于设置版权信息和小字内容的颜色。
textColor
UIColor
属性用于设置单元格的文本颜色。
cellSpacing
- 属性用于指定单元格之间的空间。
sectionSpacing
- 属性用于指定节之间的空间。
privacySettingsLinkEnabled
- 属性用于启用或禁用设置屏幕是否应包含指向iOS设置应用中的应用设置部分的链接。如果启用,则仅在您的应用请求访问设置应用中列出的内容时(例如联系人、日历、位置等)显示。
扩展
您可以通过添加自己的视图或使用我们提供的函数添加带有自定义内容和操作的单元格来扩展设置屏幕。
- 要通过提供自己的视图扩展设置屏幕,请在
APRSettingsController
上使用-addCustomView:
添加视图。自定义视图将在所有预定义单元格之前显示。 - 或者选择使用我们提供的预定义单元格扩展设置屏幕
自定义和扩展设置示例
Objective-C
APRSettingsViewController* settingsController = APRAppManager.sharedManager.settingsViewController;
// customize it
settingsController.backgroundColor = UIColor.grayColor;
settingsController.cellBackgroundColor = UIColor.darkGrayColor;
settingsController.textColor = UIColor.whiteColor;
settingsController.tintColor = UIColor.yellowColor;
// extend it
[settingsController addDefaultTopMargin];
[settingsController addCellWithTitle:@"Title Text"];
UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
imageView.image = [UIImage imageNamed:@"sample"];
[imageView.heightAnchor constraintEqualToConstant:44].active = YES;
[imageView.widthAnchor constraintEqualToConstant:44].active = YES;
[settingsController addCustomView:imageView];
[settingsController addCellWithTitle:@"Title Text" accessoryText:@"Accessory Text" andCallbackHandler:^{
NSLog(@"Do something on selection.");
}];
[settingsController addCellWithTitle:@"Switch" switchValue:YES andCallbackHandler:^(BOOL isOn) {
NSLog(@"Do something on value change. Switch is %@ now.", isOn ? @"on" : @"off");
}];
// present it
UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:settingsController];
[self presentViewController:navigation animated:YES completion:nil];
Swift
let settingsController = APRAppManager.shared().settingsViewController
// customize it
settingsController.backgroundColor = .gray
settingsController.cellBackgroundColor = .darkGray
settingsController.textColor = .white
settingsController.tintColor = .yellow
// extend it
settingsController.addDefaultTopMargin()
settingsController.addCell(withTitle: "Title Text")
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 44, height: 44))
imageView.image = UIImage(named: "sample")
imageView.heightAnchor.constraint(equalToConstant: 44).isActive = true
imageView.widthAnchor.constraint(equalToConstant: 44).isActive = true
settingsController.addCustomView(imageView)
settingsController.addCell(withTitle: "Title Text", accessoryText: "Accessory Text") {
print("Do something on selection.")
}
settingsController.addCell(withTitle: "Switch", switchValue: true) { isOn in
print("Do something on value change. Switch is \(isOn ? "on" : "off") now.")
}
// present it
let navigation = UINavigationController(rootViewController: settingsController)
self.present(navigation, animated: true, completion: nil)
本地化
Apprack SDK 当前支持以下语言本地化:
- 英语
- 德语
更多语言的本地化正在开发中。
如果您能为我们提供尚未支持的语言的本地化,您将免费获得最多六个月的会员服务。
如果您想添加您自己的本地化,请翻译 APRStrings.strings
文件中找到的键并将其添加到您的 Localizable.strings
文件中。也可以只添加特定的字符串,用您喜欢的措辞覆盖我们的本地化。
检查可用更新
SDK 可以检查 App Store 上是否有新版本,并提示用户更新。可选地,可以直接链接新版本的发行说明,以增加更新的动力。
要使 SDK 提示更新警报,您可以选择以下任一方式:
- 在 apprack.io 上启用 SDK 配置中的“更新可用警报”
- 在这种情况下,SDK 会检查是否有可用的更新,如果存在新版本并且支持用户设备,则会在应用程序启动后自动提示用户更新。
- 在另一时间手动检查是否有新版本
- 为此,请在
APRAppManager
上调用-showUpdateAlertOnController:
。
- 为此,请在
Objective-C
[APRAppManager.sharedManager showUpdateAlertOnController:self];
Swift
APRAppManager.shared().showUpdateAlertOnController(self)
请求评价
SDK 可以使用苹果提供的官方 SKStoreReviewController
请求用户在 App Store 评价和评论。使用 apprack.io 上的设置指定何时提示您的用户(按所需的应用启动次数、自首次安装以来的天数等)
当是请求评价的好时机时,只需在 APRAppManager
上调用 -shouldRequestReview
。
Objective-C
[APRAppManager.sharedManager shouldRequestReview];
Swift
APRAppManager.shared().shouldRequestReview()
请注意,即使所有检查(自首次启动以来的天数等)都成功,也不能保证弹出评价提示。
苹果限制每年显示警报的次数约为三次!
因此,您不应该在与活跃用户交互时调用 shouldRequestReview
;例如,不要创建一个“评价应用”按钮并调用 shouldRequestReview
,因为在大多数情况下,对您的用户来说不会发生任何事情。
个人数据
该SDK收集每个用户和每个应用唯一的标识符,根据GDPR的规定,这属于个人数据。此外,还收集有关应用和设备的信息,例如应用版本、iOS版本、设备型号和类型,以及apprack SDK的版本。所有数据都安全地在德国的服务器上处理和存储。我们为您提供数据处理协议,以方便您使用。
发现错误或缺少功能?
- 在 https://github.com/apprack/apprack-ios-sdk 上创建问题
- 请联系我们 [email protected]