Commit Graph

28 Commits

Author SHA1 Message Date
Kabir Oberai
f29f6ba601 Clean up some entitlements code (#165)
- We already do the `isFree` declarations in
`DeveloperServiceCapability.swift`. Don't need to duplicate it on the
entitlement types.
- Add support for creating capabilities with raw names
2025-09-28 19:04:28 -04:00
Antonio Cheong
c303e27eb1 Bump device versions to fix #25 (#163) 2025-09-28 17:32:04 -04:00
Kabir Oberai
836fca8daf Improve tmpdir management (#147)
- We now have a single tmpdir "root" that can be recreated at launch to
clean up old stragglers
- The location of this tmpdir root can be controlled by `XTL_TMPDIR` or
`TMPDIR`. In general the path is `$TMPDIR/sh.xtool`.

With this change it should be possible to `export XTL_TMPDIR=/var/tmp`
if `/tmp` doesn't have enough space, which fixes #23.
2025-08-10 01:43:09 -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`.
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
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
0425f9edeb Add SwiftLint (#104)
Closes #72
2025-05-31 19:38:57 +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
6730ea3896 Make ALL response enums extensible (#92)
Another bugfix for #64. Fifth… time's the charm?
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
8f31686c92 Only add iOS-type devices to profile (#84)
Another tentative fix for #64
2025-05-24 00:56:29 +05:30
Kabir Oberai
3b17975fe7 Add support for custom entitlements (#82)
Closes #46
2025-05-24 00:35:46 +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.
2025-05-23 19:05:02 +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
77b086d2d8 More XTL renaming (#51) 2025-05-17 18:32:58 +05:30
Kabir Oberai
fa74cd9b10 Fix ADI permissions (#33) 2025-05-14 12:11:08 +05:30
Kabir Oberai
17d3d1019b Improve handling of paid developer accounts (#20)
* getTeamIsFree -> XcodeAuthData.team().isFree

* Only revoke certificates if on a free team

* Update OpenAPI spec, handle AVP

* Fix App ID capabilities on paid accounts
2025-05-12 18:14:36 +05:30
Kabir Oberai
b3c12ef4d2 Add build --ipa (#24) 2025-05-12 16:33:57 +05:30
Kabir Oberai
7272b7b990 Drop heartbeat on non-iOS 2025-05-09 00:26:57 +05:30
Kabir Oberai
925134a86d Supersette -> XADI 2025-05-06 13:09:18 +05:30
Kabir Oberai
7245b34f4f More renaming and regrouping 2025-05-06 12:31:48 +05:30
Kabir Oberai
f7ecd612fc Rename more stuff 2025-05-06 11:42:55 +05:30
Kabir Oberai
6778e66e55 Rename main product 2025-05-06 11:30:59 +05:30
Kabir Oberai
6e958a2ad3 libSupersign -> XKit 2025-05-06 11:01:25 +05:30