Real app packages used by Appium and Maestro. Large binaries stay out of git (see root .gitignore); populate this folder locally with the command below.
From this directory:
cd mobile-apps
npm install # no dependencies; optional — only needed for the npm script name
npm run downloadOr directly:
node mobile-apps/download-wikipedia-apk.mjsThe script reads F-Droid’s org.wikipedia metadata for suggestedVersionCode, then downloads the matching APK from https://f-droid.org/repo/org.wikipedia_<versionCode>.apk and saves it as mobile-apps/wikipedia.apk (same application id org.wikipedia as in the Maestro flows and Appium smoke test).
Then install on a device or emulator:
adb install -r mobile-apps/wikipedia.apkAlternatively, open Wikipedia on F-Droid or Wikimedia GitHub releases, download a universal APK, and save it as wikipedia.apk in this folder.
| Platform | File | Bundle / application id |
|---|---|---|
| Android | mobile-apps/wikipedia.apk |
org.wikipedia |
| iOS | See Wikipedia iOS | Bundle id from your build or the App Store build you automate |
- Android: F-Droid publishes a direct APK URL for
org.wikipedia, so this repo can automatewikipedia.apk. - iOS: There is no equivalent public, legal, stable URL to pull the same app the App Store ships as an
.ipafor everyone. The Wikipedia iOS GitHub releases do not attach.ipabinaries (they are source/tag releases only). Apple’s model is install via App Store, TestFlight, or your own signed build output.
So .ipa files are optional local artifacts you create or export; place them in mobile-apps/ if you use them (they remain gitignored).
| Goal | Typical artifact | Notes |
|---|---|---|
| Physical iPhone / iPad automation | Often no file | Install Wikipedia from the App Store (or TestFlight if you have access). Maestro flows can target the installed app by bundle id (appId in YAML). Appium uses bundleId and does not need an .ipa if the app is already installed. |
| Simulator (Maestro / Appium / Xcode) | Something.app from your build |
Build the Wikipedia iOS project in Xcode (or xcodebuild). Use the .app product under DerivedData / Products for the simulator. You can copy that bundle to mobile-apps/ (e.g. Wikipedia.app) for a stable path in your own scripts—simulator .app is not the same as a device .ipa. |
| Device install from a file | wikipedia.ipa (convention) |
If you have an Apple Developer account, Archive in Xcode → Distribute App → e.g. Ad Hoc or Development → you get an .ipa. Save it as mobile-apps/wikipedia.ipa (name is optional; keep it consistent with your Appium/Maestro config). That .ipa is signed for your devices / provisioning profile, not a global public binary. |
| Path | Use |
|---|---|
mobile-apps/wikipedia.ipa |
Device-oriented archive you exported (Ad Hoc / Dev / Enterprise as applicable) |
mobile-apps/Wikipedia.app |
Simulator app bundle you copied from an Xcode build |
This repo’s Maestro and Appium examples are wired for Android + wikipedia.apk. To add iOS runs, point Maestro/Appium at bundleId and, where required, app / simulator .app paths per their docs—using the bundle id from your chosen build (Xcode Signing & Capabilities / target Info for the Wikipedia iOS repo).