From 73f29264690d87e2b5a7c13f0ecb012897201a9c Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Tue, 23 Apr 2024 00:58:04 +0800 Subject: [PATCH] feat: turn off `countly` --- ios/Runner.xcodeproj/project.pbxproj | 36 +++++++++++++------------- lib/core/analysis.dart | 6 ++--- lib/data/model/ssh/virtual_key.dart | 10 +++---- lib/data/res/build_data.dart | 8 +++--- lib/data/store/setting.dart | 2 ++ lib/l10n/app_de.arb | 1 + lib/l10n/app_en.arb | 1 + lib/l10n/app_es.arb | 1 + lib/l10n/app_fr.arb | 1 + lib/l10n/app_id.arb | 1 + lib/l10n/app_ja.arb | 1 + lib/l10n/app_nl.arb | 1 + lib/l10n/app_pt.arb | 1 + lib/l10n/app_ru.arb | 1 + lib/l10n/app_zh.arb | 1 + lib/l10n/app_zh_tw.arb | 1 + lib/view/page/home/home.dart | 2 +- lib/view/page/setting/entry.dart | 9 +++++++ lib/view/page/ssh/page.dart | 3 ++- macos/Runner.xcodeproj/project.pbxproj | 12 ++++----- 20 files changed, 61 insertions(+), 38 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index fb183931..73d25a08 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -672,7 +672,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -682,7 +682,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -808,7 +808,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -818,7 +818,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -836,7 +836,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -846,7 +846,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -867,7 +867,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -880,7 +880,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -906,7 +906,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -919,7 +919,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -942,7 +942,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -955,7 +955,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -978,7 +978,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -990,7 +990,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -1019,7 +1019,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1031,7 +1031,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -1057,7 +1057,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1069,7 +1069,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; diff --git a/lib/core/analysis.dart b/lib/core/analysis.dart index 2c4de3d8..1caaad57 100644 --- a/lib/core/analysis.dart +++ b/lib/core/analysis.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:countly_flutter/countly_flutter.dart'; import 'package:toolbox/core/build_mode.dart'; import 'package:toolbox/core/utils/platform/base.dart'; +import 'package:toolbox/data/res/store.dart'; class Analysis { static const _url = 'https://countly.lolli.tech'; @@ -12,9 +13,8 @@ class Analysis { static Future init() async { if (enabled) return; - if (!BuildMode.isRelease) { - return; - } + if (!BuildMode.isRelease) return; + if (!Stores.setting.collectUsage.fetch()) return; if (isAndroid || isIOS) { enabled = true; final config = CountlyConfig(_url, _key) diff --git a/lib/data/model/ssh/virtual_key.dart b/lib/data/model/ssh/virtual_key.dart index 3c263353..8a18e0b6 100644 --- a/lib/data/model/ssh/virtual_key.dart +++ b/lib/data/model/ssh/virtual_key.dart @@ -166,11 +166,11 @@ enum VirtKey { } String? get help => switch (this) { - VirtKey.sftp => l10n.virtKeyHelpSFTP, - VirtKey.clipboard => l10n.virtKeyHelpClipboard, - VirtKey.ime => l10n.virtKeyHelpIME, - _ => null, - }; + VirtKey.sftp => l10n.virtKeyHelpSFTP, + VirtKey.clipboard => l10n.virtKeyHelpClipboard, + VirtKey.ime => l10n.virtKeyHelpIME, + _ => null, + }; } enum VirtualKeyFunc { toggleIME, backspace, clipboard, snippet, file } diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 1a495149..e300ef2e 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,9 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 868; - static const String engine = "3.19.6"; - static const String buildAt = "2024-04-22 18:23:32"; - static const int modifications = 5; + static const int build = 871; + static const String engine = "3.19.5"; + static const String buildAt = "2024-04-23 13:44:51"; + static const int modifications = 6; static const int script = 45; } diff --git a/lib/data/store/setting.dart b/lib/data/store/setting.dart index ed1adc83..e1269014 100644 --- a/lib/data/store/setting.dart +++ b/lib/data/store/setting.dart @@ -271,6 +271,8 @@ class SettingStore extends PersistentStore { late final horizonVirtKey = property('horizonVirtKey', false); + late final collectUsage = property('collectUsage', true); + // Never show these settings for users // // ------BEGIN------ diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index b4824676..f653ac93 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Wenn das Terminal ein sicheres Tastenfeld öffnet, können Sie es aktivieren.", "collapseUI": "Zusammenbrechen", "collapseUITip": "Ob lange Listen in der Benutzeroberfläche standardmäßig eingeklappt werden sollen oder nicht", + "collectUsage": "Nutzungsinformationen sammeln (unabhängig von der Privatsphäre).", "conn": "Verbindung", "connected": "in Verbindung gebracht", "container": "Container", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index b798ead6..c3e9548a 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "If the terminal pops up a secure keyboard, you can enable it.", "collapseUI": "Collapse", "collapseUITip": "Whether to collapse long lists present in the UI by default", + "collectUsage": "Collect usage information (unrelated to privacy).", "conn": "Connection", "connected": "Connected", "container": "Container", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 9a7fd235..8a6417b7 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Si el terminal muestra un teclado seguro, puedes activarlo.", "collapseUI": "Colapsar", "collapseUITip": "¿Colapsar por defecto las listas largas en la UI?", + "collectUsage": "Recopilar información de uso (no relacionada con la privacidad).", "conn": "Conectar", "connected": "Conectado", "container": "Contenedor", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 093a9d9f..3979f0da 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Si le terminal affiche un clavier sécurisé, vous pouvez l'activer.", "collapseUI": "обвал", "collapseUITip": "Réduction ou non des longues listes présentes dans l'interface utilisateur par défaut", + "collectUsage": "Collecter des informations d'utilisation (sans rapport avec la vie privée).", "conn": "Connexion", "connected": "Connecté", "container": "Conteneurs", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 279f980e..e0fe804d 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Jika terminal munculkan keyboard aman, Anda bisa mengaktifkannya.", "collapseUI": "Runtuh", "collapseUITip": "Apakah akan menciutkan daftar panjang yang ada di UI secara default atau tidak", + "collectUsage": "Mengumpulkan informasi penggunaan (tidak terkait dengan privasi).", "conn": "Koneksi", "connected": "Terhubung", "container": "Wadah", diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index 04ee397f..c69831f0 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "ターミナルがセキュアキーボードを表示した場合、それを有効にできます。", "collapseUI": "UIを折りたたむ", "collapseUITip": "UIの長いリストをデフォルトで折りたたむかどうか", + "collectUsage": "使用情報を収集する(プライバシーとは関係ない)。", "conn": "接続", "connected": "接続済み", "container": "コンテナ", diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index e689c4ab..f6c8f716 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Als de terminal een beveiligd toetsenbord weergeeft, kunt u dit inschakelen.", "collapseUI": "Inklappen", "collapseUITip": "Of lange lijsten in de UI standaard moeten worden ingeklapt", + "collectUsage": "Gebruiksinformatie verzamelen (niet gerelateerd aan privacy).", "conn": "Verbinding", "connected": "Verbonden", "container": "Container", diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index cac3d9ee..ede04ed6 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Se o terminal abrir um teclado seguro, você pode ativá-lo.", "collapseUI": "Colapsar", "collapseUITip": "Deve colapsar listas longas na UI por padrão?", + "collectUsage": "Coletar informações de uso (não relacionadas à privacidade).", "conn": "Conectar", "connected": "Conectado", "container": "Contêiner", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 086ae6b9..de9af698 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "Если терминал отображает безопасную клавиатуру, вы можете ее активировать.", "collapseUI": "свернуть", "collapseUITip": "Свернуть длинные списки в UI по умолчанию", + "collectUsage": "Сбор информации об использовании (не связано с конфиденциальностью).", "conn": "подключение", "connected": "подключено", "container": "контейнер", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 3fbae1e3..b650fe93 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "如果终端弹出安全键盘,可以开启", "collapseUI": "折叠", "collapseUITip": "是否默认折叠UI中存在的长列表", + "collectUsage": "搜集使用信息(与隐私无关)", "conn": "连接", "connected": "已连接", "container": "容器", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index 8e91185b..d8d0bfa1 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -43,6 +43,7 @@ "cnKeyboardCompTip": "如果終端彈出安全鍵盤,您可以啟用它。", "collapseUI": "折疊", "collapseUITip": "是否預設折疊UI中存在的長列表", + "collectUsage": "搜集使用信息(與隱私無關)", "conn": "連接", "connected": "已連接", "container": "容器", diff --git a/lib/view/page/home/home.dart b/lib/view/page/home/home.dart index b12875d8..9161dd07 100644 --- a/lib/view/page/home/home.dart +++ b/lib/view/page/home/home.dart @@ -158,7 +158,7 @@ class _HomePageState extends State Widget _buildBottomBar() { return NavigationBar( selectedIndex: _selectIndex.value, - height: kBottomNavigationBarHeight * 1.2, + height: kBottomNavigationBarHeight * 1.1, animationDuration: const Duration(milliseconds: 250), onDestinationSelected: (int index) { if (_selectIndex.value == index) return; diff --git a/lib/view/page/setting/entry.dart b/lib/view/page/setting/entry.dart index 5bc25875..002aacd0 100644 --- a/lib/view/page/setting/entry.dart +++ b/lib/view/page/setting/entry.dart @@ -1043,6 +1043,7 @@ class _SettingPageState extends State { return ExpandTile( title: Text(l10n.more), children: [ + if (isAndroid || isIOS) _buildCollectUsage(), _buildCollapseUI(), _buildCupertinoRoute(), if (isDesktop) _buildHideTitleBar(), @@ -1087,4 +1088,12 @@ class _SettingPageState extends State { trailing: StoreSwitch(prop: _setting.editorSoftWrap), ); } + + Widget _buildCollectUsage() { + return ListTile( + title: const Text('Countly'), + subtitle: Text(l10n.collectUsage, style: UIs.textGrey), + trailing: StoreSwitch(prop: _setting.collectUsage), + ); + } } diff --git a/lib/view/page/ssh/page.dart b/lib/view/page/ssh/page.dart index 39db369a..7208498e 100644 --- a/lib/view/page/ssh/page.dart +++ b/lib/view/page/ssh/page.dart @@ -189,7 +189,8 @@ class _SSHPageState extends State with AutomaticKeepAliveClientMixin { return SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( - children: _virtKeysList.expand((e) => e).map(_buildVirtKeyItem).toList(), + children: + _virtKeysList.expand((e) => e).map(_buildVirtKeyItem).toList(), ), ); } diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index f35e4fba..471b547a 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -481,7 +481,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -608,7 +608,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -618,7 +618,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -638,7 +638,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 868; + CURRENT_PROJECT_VERSION = 871; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; @@ -649,7 +649,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.868; + MARKETING_VERSION = 1.0.871; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = "";