feat(ios): prepare App Store release v1.0.0
- Add PrivacyInfo.xcprivacy for Apple privacy manifest requirement - Remove debug permissions (NSLocalNetworkUsageDescription, NSBonjourServices) - Replace launch image with custom branding - Update StoreKit config with real Apple ID and team ID - Remove placeholder disclaimer from login screen, fix checkbox alignment - Add ExportOptions.plist for IPA export
This commit is contained in:
@@ -11,8 +11,6 @@ import '../../../settings/presentation/screens/legal_document_screen.dart';
|
||||
import '../../../settings/presentation/utils/legal_document_assets.dart';
|
||||
import '../../../../l10n/app_localizations.dart';
|
||||
import '../../../../shared/theme/design_tokens.dart';
|
||||
import '../../../../shared/widgets/app_modal_dialog.dart';
|
||||
import '../../../../shared/widgets/gua_icon.dart';
|
||||
import '../../../../shared/widgets/toast/toast.dart';
|
||||
import '../../../../shared/widgets/toast/toast_type.dart';
|
||||
|
||||
@@ -187,26 +185,6 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
);
|
||||
}
|
||||
|
||||
void _showPolicyDialog(String title, String content) {
|
||||
showDialog<void>(
|
||||
context: context,
|
||||
builder: (dialogContext) {
|
||||
return AppModalDialog(
|
||||
title: title,
|
||||
message: content,
|
||||
iconWidget: const GuaIcon(),
|
||||
actions: [
|
||||
AppModalDialogAction(
|
||||
label: AppLocalizations.of(dialogContext)!.dialogConfirm,
|
||||
primary: true,
|
||||
onPressed: () => Navigator.of(dialogContext).pop(),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _openLegalDocument(LegalDocumentType type) async {
|
||||
final l10n = AppLocalizations.of(context)!;
|
||||
await Navigator.of(context).push<void>(
|
||||
@@ -410,7 +388,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
),
|
||||
const SizedBox(height: AppSpacing.md),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Checkbox(
|
||||
value: _agreementChecked,
|
||||
@@ -421,11 +399,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
},
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: AppSpacing.sm,
|
||||
),
|
||||
child: RichText(
|
||||
child: RichText(
|
||||
text: TextSpan(
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
@@ -447,9 +421,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
.privacyPolicy,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: l10n.agreementSeparator,
|
||||
),
|
||||
TextSpan(text: l10n.agreementAnd),
|
||||
TextSpan(
|
||||
text: l10n.termsOfService,
|
||||
style: TextStyle(
|
||||
@@ -464,27 +436,12 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
.termsOfService,
|
||||
),
|
||||
),
|
||||
TextSpan(text: l10n.agreementAnd),
|
||||
TextSpan(
|
||||
text: l10n.disclaimer,
|
||||
style: TextStyle(
|
||||
color: colors.primary,
|
||||
decoration:
|
||||
TextDecoration.underline,
|
||||
),
|
||||
recognizer: TapGestureRecognizer()
|
||||
..onTap = () => _showPolicyDialog(
|
||||
l10n.disclaimer,
|
||||
l10n.disclaimerContent,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user