Skip to content

Move to newer keyring fork (fixes iOS builds)#460

Open
gBasil wants to merge 1 commit intomajd:mainfrom
gBasil:build/ios
Open

Move to newer keyring fork (fixes iOS builds)#460
gBasil wants to merge 1 commit intomajd:mainfrom
gBasil:build/ios

Conversation

@gBasil
Copy link
Copy Markdown

@gBasil gBasil commented Mar 25, 2026

This moves from https://github.com/99designs/keyring to a maintained fork of it, https://github.com/ByteNess/keyring. I contributed support for iOS builds to it, and this PR makes ipatool buildable for iOS.

Resolves #136.

Note that:

  1. The GitHub Actions workflows need updating, which I haven't done, because I'm not sure what resources are available on the macOS runners.
  2. The Go version in go.mod was bumped. I'm not sure if you want it to stay at 1.23.0.
  3. I've been only able to get it build for newer iOS versions (specifically 15.0+, for reasons I've outlined here), but I'm reasonably certain that you could get it to work for older versions.

This fixes iOS builds
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates ipatool’s keyring dependency from 99designs/keyring to the maintained byteness/keyring fork to enable iOS builds (resolving #136).

Changes:

  • Replaced github.com/99designs/keyring imports with github.com/byteness/keyring across command and keychain packages/tests.
  • Updated module dependencies to github.com/byteness/keyring v1.9.0 and refreshed go.sum.
  • Bumped the go.mod Go version directive to go 1.25.0 (and removed the toolchain directive).

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pkg/keychain/keyring.go Updates keyring import to the new fork for the keyring interface types.
pkg/keychain/keychain_set.go Updates keyring import used by Set implementation.
pkg/keychain/keychain_set_test.go Updates keyring import used in mocks/tests.
pkg/keychain/keychain_get_test.go Updates keyring import used in mocks/tests.
cmd/common.go Updates keyring import for runtime keyring initialization.
go.mod Swaps keyring dependency, bumps Go version, and brings in new indirect deps.
go.sum Updates checksums for the new dependency graph.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

go 1.23.0

toolchain go1.23.2
go 1.25.0
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The module now declares go 1.25.0, but the repo’s GitHub Actions workflows are pinned to Go 1.23.0. With this change, CI/builds using Go 1.23 will fail with a “go.mod requires go >= 1.25.0” error; either bump the workflows/tooling to 1.25 (or higher) or keep the go directive at the supported version.

Suggested change
go 1.25.0
go 1.23.0

Copilot uses AI. Check for mistakes.
go 1.23.0

toolchain go1.23.2
go 1.25.0
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The toolchain go1.23.2 directive was removed. If the project relies on the toolchain directive to keep local builds/CI reproducible (or to avoid developers using an older Go), consider keeping it (updated to the intended version) or documenting the expected Go toolchain version elsewhere.

Suggested change
go 1.25.0
go 1.25.0
toolchain go1.25.0

Copilot uses AI. Check for mistakes.
@majd
Copy link
Copy Markdown
Owner

majd commented Apr 5, 2026

Thanks, @gBasil! Let's address the Go version bump and retain the current version to ensure the current workflows do not break.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2.0 iOS build

3 participants