We monitor 175 App Store storefronts to answer one question —

Is GeekHub for GitHub censored by Apple?

Gone.

GeekHub for GitHub is gone from every App Store storefront we test. It was last seen available on Sep 20, 2020.

223 tests on record·last checked 27 days ago

Why it is unavailable

Five things can put an app out of one App Store. Each is weighed below against what can be seen from outside — open a card for the reasoning.

  • A government or a court demanded itPossible

    and Apple complied. Apple publishes a count of these per country each year and never says which apps they were. Apple's 2025 App Store Transparency Report

  • A local rule about paying for itPossible

    gambling licences, financial rules, tax — the kind of law that governs a transaction. Apple can obey every one of them by refusing the payment, which is why this is the only restriction we would accept and the only one that cannot touch a free app.

  • Apple applied a rule, unaskedPossible

    either its own review guidelines, or its own reading of a local law, with nobody having demanded anything. This is the largest category in Apple's own removal figures by a wide margin, and it covers distribution permits as well as content — Apple kept a free Bible app out of mainland China in 2021 for want of one. Apple's 2025 App Store Transparency Report

  • The developer withheld itPossible

    freely, or under legal advice of their own, or because Apple's guidelines require that kind of app to be limited to certain countries. Switching a country off is easy for a developer to do in Apple's own tools: it needs no new version of the app, and it leaves no public trace other than the app being unavailable.

  • Something brokeUnlikely

    a rejected update, a lapsed certificate, a payment or licensing problem, a mistake nobody has got round to noticing.

How this is weighed, and what it cannot tell you

Weighed from the evidence under each card, not from a model. There is no published figure for how Apple's removals divide up, so these are ordered words rather than percentages. For scale on the same-day counts: across the whole record an app leaves a storefront with fewer than two others, so a dozen at once is not a dozen coincidences.

None of this is certain, and a citation does not make it so: Apple naming a Chinese agency tells you what Apple said, not everything that happened. What can be said is that the readings alone cannot separate these five — a developer switching off a country and a government ordering it removed arrive at Apple's catalogue looking identical — and that nobody has ever measured how they divide across the App Store. The one careful study of the question was done on Google's store, using an error message Apple does not emit.

Apple publishes no record of which apps are unavailable in which of its App Stores. For the removals it makes on a government's demand it publishes the agency and the law behind every one — 2,045 of the 166,899 apps it removed during 2025 — and never which app. Where a reason reaches the public at all, it is usually because a developer chose to say so. Apple's App Store Transparency Report

Know of a statement, notice or order we have missed? Tell us →

GeekHub for GitHub

Developer: Jian Zhou · Category: Developer Tools · Paid app · Released: Oct 14, 2019 · Rating: 5.0★

View in App Store ↗
0stores where available
48stores where blocked
4.02Bpeople behind the block
48of 175 stores tested
223tests on record

Life of this app

  1. Oct 14, 2019Released on the App Store
  2. Sep 20, 2020First tested by AppleCensorship
  3. Sep 20, 2020Last seen available anywhere
  4. May 23, 2023Gone from 48 storefronts
  5. Aug 22, 2026Most recent test

Testing history

One column per month, every month from the first reading to the last. Height follows how many readings we took that month; red is the share of them that found the app unavailable. An empty month is one nobody tested.

2020-092026-08

Found availableFound unavailable

Availability by storefront

Every storefront we test, current status first. Data is a measurement, not a promise: each row carries its own date.

Test now
AlbaniaALUnavailableOct 31, 20242 years ago
ArgentinaARUnavailableFeb 9, 20234 years ago
BahamasBSUnavailableSep 26, 20233 years ago
BelgiumBEUnavailableJun 16, 20233 years ago
Bosnia & HerzegovinaBAUnavailableJan 19, 20234 years ago
Cape VerdeCVUnavailableDec 4, 20213 years ago
ChadTDUnavailableOct 5, 20233 years ago
China (Mainland)CNUnavailableNov 29, 20212 months ago
EgyptEGUnavailableDec 10, 20242 years ago
EstoniaEEUnavailableNov 29, 20213 years ago
GeorgiaGEUnavailableDec 11, 20233 years ago
GreeceGRUnavailableNov 25, 20223 years ago
GuatemalaGTUnavailableOct 31, 20233 years ago
HondurasHNUnavailableJun 14, 20224 years ago
Hong KongHKUnavailableJan 3, 20223 years ago
HungaryHUUnavailableJul 6, 20224 years ago
IndiaINUnavailableDec 4, 20212 years ago
IsraelILUnavailableAug 10, 202513 months ago
JamaicaJMUnavailableJan 5, 20223 years ago
KosovoXKUnavailableNov 25, 20223 years ago
KuwaitKWUnavailableNov 29, 20213 years ago
LuxembourgLUUnavailableJan 5, 20223 years ago
MadagascarMGUnavailableJan 2, 20234 years ago
MalaysiaMYUnavailableSep 20, 20242 years ago
MaltaMTUnavailableApr 23, 20251 year ago
MauritaniaMRUnavailableMar 29, 20233 years ago
MontenegroMEUnavailableDec 1, 20242 years ago
MontserratMSUnavailableJul 10, 202514 months ago
Myanmar (Burma)MMUnavailableJan 8, 20252 years ago
NauruNRUnavailableJun 26, 202427 days ago
NepalNPUnavailableJan 2, 20232 years ago
NigeriaNGUnavailableFeb 11, 20267 months ago
North MacedoniaMKUnavailableJun 14, 20224 years ago
PalauPWUnavailableJan 15, 20268 months ago
PanamaPAUnavailableJun 26, 20242 years ago
Papua New GuineaPGUnavailableAug 31, 202314 months ago
QatarQAUnavailableMay 6, 20242 years ago
Republic of the CongoCGUnavailableJul 30, 20262 months ago
RussiaRUUnavailableJun 14, 20222 years ago
SlovakiaSKUnavailableAug 5, 20233 years ago
Solomon IslandsSBUnavailableFeb 16, 20234 years ago
South KoreaKRUnavailableAug 22, 202627 days ago
St. Kitts & NevisKNUnavailableJan 25, 20268 months ago
TongaTOUnavailableJul 6, 20224 years ago
Trinidad & TobagoTTUnavailableMay 23, 20233 years ago
UkraineUAUnavailableJun 14, 20222 years ago
United Arab EmiratesAEUnavailableJan 2, 202327 days ago
United StatesUSUnavailableNov 29, 202127 days ago
AfghanistanAFNot tested0
AlgeriaDZNot tested0
AngolaAONot tested0
AnguillaAINot tested0
Antigua & BarbudaAGNot tested0
ArmeniaAMNot tested0
AustraliaAUNot tested0
AustriaATNot tested0
AzerbaijanAZNot tested0
BahrainBHNot tested0
BarbadosBBNot tested0
BelarusBYNot tested0
BelizeBZNot tested0
BeninBJNot tested0
BermudaBMNot tested0
BhutanBTNot tested0
BoliviaBONot tested0
BotswanaBWNot tested0
BrazilBRNot tested0
British Virgin IslandsVGNot tested0
BruneiBNNot tested0
BulgariaBGNot tested0
Burkina FasoBFNot tested0
CambodiaKHNot tested0
CameroonCMNot tested0
CanadaCANot tested0
Cayman IslandsKYNot tested0
ChileCLNot tested0
ColombiaCONot tested0
Costa RicaCRNot tested0
Côte d’IvoireCINot tested0
CroatiaHRNot tested0
CyprusCYNot tested0
CzechiaCZNot tested0
DenmarkDKNot tested0
DominicaDMNot tested0
Dominican RepublicDONot tested0
DR CongoCDNot tested0
EcuadorECNot tested0
El SalvadorSVNot tested0
EswatiniSZNot tested0
FijiFJNot tested0
FinlandFINot tested0
FranceFRNot tested0
GabonGANot tested0
GambiaGMNot tested0
GermanyDENot tested0
GhanaGHNot tested0
GrenadaGDNot tested0
Guinea-BissauGWNot tested0
GuyanaGYNot tested0
IcelandISNot tested0
IndonesiaIDNot tested0
IraqIQNot tested0
IrelandIENot tested0
ItalyITNot tested0
JapanJPNot tested0
JordanJONot tested0
KazakhstanKZNot tested0
KenyaKENot tested0
KyrgyzstanKGNot tested0
LaosLANot tested0
LatviaLVNot tested0
LebanonLBNot tested0
LiberiaLRNot tested0
LibyaLYNot tested0
LithuaniaLTNot tested0
MacaoMONot tested0
MalawiMWNot tested0
MaldivesMVNot tested0
MaliMLNot tested0
MauritiusMUNot tested0
MexicoMXNot tested0
MicronesiaFMNot tested0
MoldovaMDNot tested0
MongoliaMNNot tested0
MoroccoMANot tested0
MozambiqueMZNot tested0
NamibiaNANot tested0
NetherlandsNLNot tested0
New ZealandNZNot tested0
NicaraguaNINot tested0
NigerNENot tested0
NorwayNONot tested0
OmanOMNot tested0
PakistanPKNot tested0
ParaguayPYNot tested0
PeruPENot tested0
PhilippinesPHNot tested0
PolandPLNot tested0
PortugalPTNot tested0
RomaniaRONot tested0
RwandaRWNot tested0
São Tomé & PríncipeSTNot tested0
Saudi ArabiaSANot tested0
SenegalSNNot tested0
SerbiaRSNot tested0
SeychellesSCNot tested0
Sierra LeoneSLNot tested0
SingaporeSGNot tested0
SloveniaSINot tested0
South AfricaZANot tested0
SpainESNot tested0
Sri LankaLKNot tested0
St. LuciaLCNot tested0
St. Vincent & GrenadinesVCNot tested0
SurinameSRNot tested0
SwedenSENot tested0
SwitzerlandCHNot tested0
TaiwanTWNot tested0
TajikistanTJNot tested0
TanzaniaTZNot tested0
ThailandTHNot tested0
TunisiaTNNot tested0
TürkiyeTRNot tested0
TurkmenistanTMNot tested0
Turks & Caicos IslandsTCNot tested0
UgandaUGNot tested0
United KingdomGBNot tested0
UruguayUYNot tested0
UzbekistanUZNot tested0
VanuatuVUNot tested0
VenezuelaVENot tested0
VietnamVNNot tested0
YemenYENot tested0
ZambiaZMNot tested0
ZimbabweZWNot tested0

Testing asks Apple whether it will sell this app in that storefront, right now, by the same method the crawler has used since 2019. Your browser asks Apple directly, so the answer describes what Apple serves your connection — and if your browser cannot reach Apple at all, we ask on your behalf and say so. The result is a link: open it to see Apple's own answer and check ours. Readings are added to the record above; roughly a quarter of the readings taken each day come from people testing.

How we test

Availability is checked against Apple's own catalog servers for every storefront, the same way the App Store app asks. "Unavailable" means Apple's servers say the app cannot be offered in that country — it does not say who asked for the removal. Removals initiated by the developer and removals demanded by governments look the same from outside; the history and context on this page are how we tell them apart.