Commit Graph

347 Commits

Author SHA1 Message Date
Kabir Oberai
d6f3533fc6 tweaks 2025-07-21 01:09:37 -04:00
Kabir Oberai
3a5ae87cca Add appex docs 2025-07-21 01:04:48 -04:00
Kabir Oberai
7308756c50 Update PublicStaging path (#132)
Previously this was shadowing the user's cwd path onto the device, e.g.
if you were installing from `/home/foo/bar` it would create
`/home/foo/bar/PublicStaging` on the device. For uniformity with other
tools like `ideviceinstaller`, clean this up and just create
`/PublicStaging`.
1.14.0
2025-07-14 00:19:38 -04:00
Erik Bautista Santibanez
edd6b90f53 Add support for App Extensions (#97)
This pull request adds support for Apple's [App
Extensions](https://developer.apple.com/app-extensions/).

Closes: #45

---------

Co-authored-by: ErrorErrorError <16653389+ErrorErrorError@users.noreply.github.com>
Co-authored-by: Kabir Oberai <oberai.kabir@gmail.com>
2025-07-13 23:47:47 -04:00
Erik Bautista Santibanez
bf34edcf6e fix: resolve ASC invalid bearer token (#129)
This pull request resolves potential clock drift between ASC and bearer
token.

Ref: https://github.com/xtool-org/xtool/pull/97#discussion_r2203584344
2025-07-13 20:29:50 -04:00
Kabir Oberai
d691e614b4 Support building with Swift 6.2 (#114) 2025-07-12 16:28:48 -04:00
Amlal El Mahrouss
74d6a91537 Harden mobileprovision.c to avoid UB on OOM (#122)
# fix: hardening `mobileprovision.c` to avoid future crashes.

## Context:

I found two common weakness inside `Sources/CXKit/mobileprovision.c`,
which seems to be an important layer of `xtool`'s signing logic.

### Common weaknesses found:

- CWE-476
- CWE-119

---------

Co-authored-by: Kabir Oberai <oberai.kabir@gmail.com>
2025-06-28 17:34:04 -04:00
Kabir Oberai
187fbfa67b Work around Fastlane pipeline bug (#118)
Workaround for https://github.com/fastlane/fastlane/issues/29587
1.13.0
2025-06-19 20:23:02 -04:00
Kabir Oberai
bf057263cc Support unxipping Xcode betas (#115)
Xcode betas are stored in the xip as Xcode-beta.app. Support this by
avoiding hardcoding the `Xcode.app` path.
2025-06-10 17:09:06 -04:00
Kabir Oberai
9e80b7d04f Linux: increase http connect timeout (#111)
Tentative fix for #69, ref
https://github.com/xtool-org/xtool/issues/69#issuecomment-2913232533
2025-06-01 19:02:06 +05:30
Kabir Oberai
0d19aa6f04 Support VSC swiftlint extension (#108) 2025-06-01 13:49:27 +05:30
Kabir Oberai
0425f9edeb Add SwiftLint (#104)
Closes #72
2025-05-31 19:38:57 +05:30
Kabir Oberai
5beec34370 Validate path to Xcode.app/xip (#100)
Fixes #16
2025-05-27 18:11:08 +05:30
Kabir Oberai
3fb39717cd Drop the "Logging in" stage (#99)
This was vestigial, and besides the fact that we don't actually do any
work in this stage, we also never update the progress here so it gets
stuck at 0%.
2025-05-27 16:45:35 +05:30
Kabir Oberai
4ed9715243 Update build workflow triggers (#98) 2025-05-27 16:20:36 +05:30
Kabir Oberai
6730ea3896 Make ALL response enums extensible (#92)
Another bugfix for #64. Fifth… time's the charm?
1.12.2
2025-05-25 19:09:17 +05:30
Kabir Oberai
8d8ba6fb94 FetchDeviceOperation: account for pagination (#91)
- Always try to register the device and just return gracefully if it
fails (prevents races, pagination issues)
- Allow `SigningContext` (and therefore `AutoSigner`) to be created
without a target device: just skip device registration.
2025-05-25 03:56:19 +05:30
Kabir Oberai
72db71c871 DeveloperServices: support paginated requests (#89)
Realized that we need to paginate due to #87
2025-05-25 03:29:43 +05:30
Kabir Oberai
efc1ed943f Fix duplicate App ID registration (#90)
We pull the list of App IDs in `upsertApp` to see if we already created
the App ID. This broke when the user had too many App IDs, since DS
returned a paginated response and we only looked at the first page.

We could paginate the whole list (as seen in #89) but that's slow.
Instead, just filter the query to the expected App ID. This is a prefix
search so we might still receive multiple responses, but it's much less
likely that the user has like 10(? I'm not sure what the default/max
pagination limit is) apps registered with the XTL-ABC.com.foo.bar prefix
(they could have PlugIns but usually just a small number of them.)

This is a tentative fix for #87.
2025-05-25 02:42:22 +05:30
Kabir Oberai
693e60faef Support entitlements with XcodePacker (#88) 2025-05-24 02:28:17 +05:30
Kabir Oberai
6df7e4009b Document entitlements (#86) 2025-05-24 02:02:35 +05:30
Kabir Oberai
f76e1eda04 patch.js: improve ergonomics (#85) 2025-05-24 01:36:12 +05:30
Kabir Oberai
8f31686c92 Only add iOS-type devices to profile (#84)
Another tentative fix for #64
1.12.1
2025-05-24 00:56:29 +05:30
Kabir Oberai
3b17975fe7 Add support for custom entitlements (#82)
Closes #46
1.12.0
2025-05-24 00:35:46 +05:30
Kabir Oberai
48a2d30684 Fix changeCurrentDirectory warning (#81)
This is `discardableResult` on macOS (perhaps because it goes through
objc bridging?) but not on Linux so we get a warning on the latter
2025-05-23 23:32:45 +05:30
Kabir Oberai
b5d49a63cf Improve OpenAPI error handling (#78)
- Make some enums non-exhaustive (closes #77)
  - Also a tentative fix for #62 and #64
- Improve logging on deserialization failure

We now use raw JS to patch the OpenAPI spec instead of openapi-overlay.
It's a lot more flexible this way.
1.11.5
2025-05-23 19:05:02 +05:30
Kabir Oberai
cd3d72c6b7 OpenAPI spec tweaks (#76)
- Add `BundleIdPlatform.macos` (potential fix for #64)
- Fix deprecation warnings
- Improve overlay organization
1.11.4
2025-05-22 22:37:47 +05:30
Kabir Oberai
2265449730 Support for logging OpenAPI responses (#75)
Allow setting `XTL_DEV_LOG` to a regex (e.g. `export
XTL_DEV_LOG='profiles_.*'`) to log the responses of all matching
operations

Also add `BundleIdPlatform.services` as seen
[here](60bbc198c8/Makefile (L9))
2025-05-22 22:03:37 +05:30
Kabir Oberai
3a4290c85e Support building for iOS simulator (#74)
Closes #68

## On any platform

You can now do

```bash
xtool dev build --triple arm64-apple-ios-simulator [--ipa]
```

To build a .app/.ipa that works on the simulator.

## On macOS

You can do

```bash
xtool dev --simulator
```

To one-shot build-and-install on the booted simulator.
2025-05-22 19:35:51 +05:30
Kabir Oberai
38be5315ee Fix macOS category build warning (#73)
xcodebuild wants us to set a category for the Mac app
2025-05-22 19:22:52 +05:30
Kabir Oberai
fbbd8366ca Support xtool --version (#53) 1.11.3 2025-05-21 18:16:46 +05:30
Kabir Oberai
73f42d9de2 Add make clean (#71) 2025-05-21 18:13:02 +05:30
Kabir Oberai
da745aa337 Add Make rules, CONTRIBUTING.md (#70) 2025-05-21 17:14:43 +05:30
Kabir Oberai
1113e66e92 Fix readme image (again) (#67) 2025-05-20 03:45:17 +05:30
Kabir Oberai
17adc91e63 Even more DocC tweaks (#66) 2025-05-20 03:42:18 +05:30
Kabir Oberai
26e076b95f More DocC improvements (#65) 2025-05-20 03:10:36 +05:30
Kabir Oberai
25fd269b47 Update Netlify footer copy (#63)
Netlify wants specific copy in order to be eligible for their [Open
Source plan](https://www.netlify.com/legal/open-source-policy)
2025-05-19 00:52:20 +05:30
Kabir Oberai
02ea670a91 Add footer to docs (#61) 2025-05-19 00:02:05 +05:30
Kabir Oberai
dd5de802e6 Remove docs.yml action (#60) 2025-05-18 22:32:58 +05:30
Kabir Oberai
c2a0bee558 Set up Netlify redirects (#59) 2025-05-18 22:15:19 +05:30
Kabir Oberai
42b9147e8b Netlify support (#58) 2025-05-18 21:50:39 +05:30
Kabir Oberai
d78b2f9c29 Fix readme image (#57) 2025-05-18 07:29:47 +05:30
Kabir Oberai
dfb0e36d0e GitHub Pages (#56) 2025-05-18 07:25:55 +05:30
Kabir Oberai
975fd3362e Add more details to bug report template (#54) 2025-05-17 20:13:07 +05:30
Kabir Oberai
77b086d2d8 More XTL renaming (#51) 2025-05-17 18:32:58 +05:30
Kabir Oberai
274594bf25 Update Code of Conduct email (#50) 2025-05-17 17:55:15 +05:30
Kabir Oberai
03ca71a7c6 Add issue templates (#49) 2025-05-17 17:26:33 +05:30
Kabir Oberai
6a33a563f5 Create SECURITY.md (#48) 2025-05-17 17:18:55 +05:30
Kabir Oberai
62b3efbf99 Add Contributor Covenant code of conduct (#47) 2025-05-17 17:13:47 +05:30
Kabir Oberai
65c120fd00 AppImage: fix zsync file name 1.11.2 2025-05-16 01:03:02 +05:30