-
-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathHead.astro
More file actions
164 lines (150 loc) · 5.51 KB
/
Copy pathHead.astro
File metadata and controls
164 lines (150 loc) · 5.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
import Default from "@astrojs/starlight/components/Head.astro";
import PlausibleAnalytics from "@/components/PlausibleAnalytics.astro";
const baseUrl = "https://www.rocketsim.app";
const { entry } = Astro.props;
const title = entry?.data?.title ?? "RocketSim Docs";
const description = entry?.data?.description ?? "";
const slug = entry?.slug ?? "";
const pageUrl = `${baseUrl}/${slug}`;
const breadcrumbItems = [
{ name: "Home", url: baseUrl },
{ name: "Docs", url: `${baseUrl}/docs` },
];
if (title !== "RocketSim Docs" && title !== "404") {
breadcrumbItems.push({ name: title, url: pageUrl });
}
const isFaqPage = slug.endsWith("support/faq");
const schemas: Record<string, unknown>[] = [];
if (title !== "RocketSim Docs" && title !== "404") {
schemas.push({
"@context": "https://schema.org",
"@type": "TechArticle",
headline: title,
description,
url: pageUrl,
author: {
"@type": "Organization",
name: "RocketSim",
url: baseUrl,
},
publisher: {
"@type": "Organization",
name: "RocketSim",
url: baseUrl,
logo: `${baseUrl}/images/rocketsim-app-icon.png`,
},
mainEntityOfPage: {
"@type": "WebPage",
"@id": pageUrl,
},
});
}
if (breadcrumbItems.length > 1) {
schemas.push({
"@context": "https://schema.org",
"@type": "BreadcrumbList",
itemListElement: breadcrumbItems.map((item, index) => ({
"@type": "ListItem",
position: index + 1,
name: item.name,
item: item.url,
})),
});
}
const faqEntries = isFaqPage
? [
{
q: "Do you offer out-of-the App Store distribution?",
a: "Yes. Get in touch via support@rocketsim.app.",
},
{
q: "Are there non-recurring subscriptions as well?",
a: "Yes, you can consider buying Team Licenses at rocketsim.app/team-insights.",
},
{
q: "I can't reimburse App Store subscriptions, is there an alternative?",
a: "Yes, RocketSim offers Team Licenses as an alternative at rocketsim.app/team-insights.",
},
{
q: "Do you provide the option for commercial or team licenses?",
a: "Yes, check out Team Licenses at rocketsim.app/team-insights.",
},
{
q: "Can I buy a lifetime license?",
a: "No, but you can earn a lifetime license through SwiftLee Weekly's referral program. Join the newsletter and follow the instructions.",
},
{
q: "Why is my video not accepted by App Store Connect?",
a: "Videos are optimized for App Previews following Apple's specifications. Make sure to use a Simulator matching a device from the App Preview specifications.",
},
{
q: "Why wouldn't I just use xcrun simctl?",
a: "RocketSim uses xcrun simctl under the hood but enhances the output with touches, device bezels, and a visual interface for quicker access.",
},
{
q: "Why does RocketSim need screen recording permissions?",
a: "RocketSim is sandboxed and needs screen recording permissions to read Simulator window titles, which it uses to determine the currently active Simulator.",
},
{
q: "Where can I follow active development?",
a: "RocketSim is developed by Antoine van der Lee. You can follow him or the official RocketSim Twitter account at twitter.com/rocketsim_app for updates.",
},
{
q: "Where can I report bugs or feature requests?",
a: "Issues and feature requests are managed on GitHub at github.com/AvdLee/RocketSimApp/issues.",
},
{
q: "I only get JPEG images, how can I get PNG images again?",
a: "You've likely enabled App Store Connect (ASC) Optimization. ASC requires JPEG images without alpha layer. Disable the option and you should get PNGs again.",
},
{
q: "Why are my iPad captures upside-down?",
a: "RocketSim cannot detect landscape-left or landscape-right and defaults to one rotation. Rotate your Simulator twice and restart the recording.",
},
{
q: "Can I create transparent captures?",
a: "Yes, disable App Preview Optimized and set your background color to transparent.",
},
{
q: "Network Speed Control isn't working, what can I do?",
a: "Quit Xcode, all Simulators, and RocketSim, then reopen them. Check System Settings → Privacy & Security for pending permissions. On macOS Sequoia, enable the Network Extension in System Settings → General → Login Items & Extensions.",
},
]
: [];
if (isFaqPage && faqEntries.length > 0) {
schemas.push({
"@context": "https://schema.org",
"@type": "FAQPage",
mainEntity: faqEntries.map((faq) => ({
"@type": "Question",
name: faq.q,
acceptedAnswer: {
"@type": "Answer",
text: faq.a,
},
})),
});
}
---
<Default {...Astro.props}><slot /></Default>
<!-- Favicon -->
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="icon" href="/favicon.ico" sizes="32x32" />
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<!-- Theme color matching RocketSim dark theme -->
<meta name="theme-color" content="#000000" />
<meta name="color-scheme" content="dark light" />
<!-- Additional meta for better SEO -->
<meta name="author" content="RocketSim" />
{
schemas.map((schema) => (
<script
type="application/ld+json"
is:inline
set:html={JSON.stringify(schema).replace(/<\//g, "<\\/")}
/>
))
}
<PlausibleAnalytics />