Thanks for your interest! AppDrop is a small native iOS 6+ jailbreak app — contributions are welcome but please read this first so we're on the same page.
AppDrop is a personal project I maintain in my spare time. I'm not a professional Objective-C / iOS developer. That means:
- I read every PR carefully before merging.
- I won't merge things I don't understand. If you submit something complex, please explain what it does and why in the PR description.
- Response time is on a hobby schedule. Days, sometimes a week. Sorry, that's the deal.
| Type | Effort | Risk to merge |
|---|---|---|
| Translation fixes | small, text only | ⭐ very safe — native speakers welcome to clean up the 7 .lproj/Localizable.strings files |
| Bug reports (Issues) | none | ⭐ ideal — even just a clear "X is broken on iOS 9, here's what I see" |
| Documentation (README, comments, typos) | small | ⭐ very safe |
| iOS 10 testing & fixes | medium | ⭐ wanted — I don't have an iOS 10 device, so the iOS 10 path (skip ipainstaller, save .ipa to Documents/AppDrop/ for Filza-based install) is marked experimental in the README. Anyone with an iOS 10 jailbreak who can confirm the flow works (or report what breaks) is very welcome. |
| iOS 5 / iPad 1 support reinstatement | high | ⭐ welcome — dropped in v2.0.22 due to (a) the iOS 5 Obj-C runtime missing modern subscript dispatch (dict[@"key"], @(42), @{} literals), and (b) the iOS 5 sandbox blocking posix_spawn from the app bundle into /usr/bin/ipainstaller without a platform-application entitlement injected at install time. Both are technically fixable (runtime shim + entitlement-injecting postinst) — if you have a working approach, open an Issue first to discuss the integration strategy. |
| Small bug fixes with clear scope | small | ⭐ usually fine if the diff is short and the fix is obvious |
| New features | varies | |
| Large refactors | high | ❌ very unlikely to merge without prior discussion |
| Architectural changes | high | ❌ same — please discuss in an Issue first |
- Open an Issue first if your change is non-trivial. Describe what you want to do and why. We can agree on the approach before you spend time on code.
- Fork the repo, create a feature branch (
fix-such-and-suchoradd-such-and-such). - Match the existing code style: 4-space indentation, descriptive variable names,
// comments explaining intent, not just what the code says. Look atHTTPSClient.morMachOInspector.mfor examples. - Test on a real iOS 6.0 – 9.3.6 device if you can. iOS 10 testing is also welcome.
- Open a PR with a clear description: what changed, why, and how you tested.
- Be patient with review. I'll ask questions if something is unclear. No hostility intended — I just want to understand what I'm merging.
- Objective-C 2.0 (
@(),@{},dict[@"key"]are fine — iOS 5 was dropped in v2.0.22). - No external dependencies unless absolutely necessary. The only bundled libs are
mbedTLSand systemlibsqlite3+libz. - No analytics / telemetry / phone-home. This is a strict policy. AppDrop talks to archive.org, pollinations.ai, and api.github.com — that's it. PRs adding tracking will be closed.
- Translations: if you add a user-visible string, add the key to all 7
.lproj/Localizable.stringsfiles. The audit will catch missing keys. - iOS 6 compat: the SDK is iOS 6.1, deployment target 6.0. Don't use APIs introduced after iOS 6 without a runtime check. UI widgets must work on the iPad 4's 1024×768 screen.
- Code that adds tracking / analytics / remote configuration / phone-home of any kind.
- Code that pulls in large external dependencies.
- PRs that touch many unrelated files at once. One change per PR.
- PRs with no description.
- PRs that disable the FairPlay check (it exists for a reason).
If you find a security issue (e.g., a malicious .ipa pattern that bypasses the FairPlay check, or a code path that could be tricked into installing arbitrary URLs), please don't open a public Issue — email me through GitHub instead. I'll address it before disclosure.
By submitting a PR, you agree your contribution will be licensed under the MIT License like the rest of the project.
Thanks for taking the time to read this. AppDrop is small but I want it to stay clean and trustworthy — your patience with the review process is what makes that possible.