Commit Graph

158 Commits

Author SHA1 Message Date
Kabir Oberai
50ad3f421c Support unxipping Xcode betas 2025-06-10 17:01:51 -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
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
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
693e60faef Support entitlements with XcodePacker (#88) 2025-05-24 02:28:17 +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
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
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.
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
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
fbbd8366ca Support xtool --version (#53) 2025-05-21 18:16:46 +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
dfb0e36d0e GitHub Pages (#56) 2025-05-18 07:25:55 +05:30
Kabir Oberai
77b086d2d8 More XTL renaming (#51) 2025-05-17 18:32:58 +05:30
Kabir Oberai
54d03f525a Improve SDK handling (#40)
* Use swift-sdk commands instead of file ops

* comment
2025-05-16 00:06:39 +05:30
Kabir Oberai
2538d18ab0 Update macOS installation, suggest cask/.app 2025-05-14 13:40:38 +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
Nanashi.
0ab48ac44f docs: add note about downloading Xcode.xip programmatically (#17)
* docs: add warning to Xcode.xip

* Copy tweaks

* Another tweak

---------

Co-authored-by: Kabir Oberai <oberai.kabir@gmail.com>
2025-05-11 22:46:28 +05:30
Kabir Oberai
51cab9a32e Package xtool as a .app on macOS (#12)
* Package xtool as a .app on macOS

* Need hardened runtime for notarization

* Rename product to xtool.app
2025-05-10 15:15:31 +05:30
Kabir Oberai
205041caa0 Refine NewCommand
Tweak template, respect quiet flag on macOS
2025-05-09 11:10:15 +05:30
Kabir Oberai
bc0e195ba3 Add WSL info 2025-05-09 01:32:40 +05:30
Kabir Oberai
7272b7b990 Drop heartbeat on non-iOS 2025-05-09 00:26:57 +05:30
Kabir Oberai
307df68794 Create sdks directory if needed 2025-05-08 23:41:34 +05:30
Kabir Oberai
e45e2873d5 XTool target -> xtool
DocC/SPI doesn’t like the target and product having diff names
2025-05-07 23:48:08 +05:30
Kabir Oberai
2d83b60c0b Merge branch 'main' into update-readme 2025-05-07 18:04:02 +05:30
Kabir Oberai
a44a1a8e65 Add macOS install steps 2025-05-07 18:03:50 +05:30
Kabir Oberai
e5eb0d3c4f Improve macOS SDK handling 2025-05-07 18:03:37 +05:30
Kabir Oberai
1890a16212 Better readme 2025-05-07 15:39:27 +05:30
Kabir Oberai
7417957dfb Update docs 2025-05-06 13:47:59 +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
1790ecbcef Rename target to XTool 2025-05-06 11:50:27 +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
bb21ff046a SupersignCLISupport -> XToolSupport 2025-05-06 11:05:29 +05:30
Kabir Oberai
6e958a2ad3 libSupersign -> XKit 2025-05-06 11:01:25 +05:30
Kabir Oberai
b61214b5de And more 2025-05-05 18:25:05 +05:30
Kabir Oberai
6d7bdaf030 More sentence case 2025-05-05 18:24:25 +05:30