Skip to content

Commit

Permalink
fix: ipsw class-dump --xcfw XCFramework generation #409
Browse files Browse the repository at this point in the history
  • Loading branch information
blacktop committed Apr 28, 2024
1 parent c21e4bb commit bc6e7ef
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 735 deletions.
27 changes: 14 additions & 13 deletions cmd/ipsw/cmd/class_dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ func init() {

classDumpCmd.Flags().Bool("deps", false, "Dump imported private frameworks")
classDumpCmd.Flags().BoolP("xcfw", "x", false, "🚧 Generate a XCFramework for the dylib")
classDumpCmd.Flags().BoolP("generic", "g", false, "🚧 Generate a XCFramework for ALL targets")
// classDumpCmd.Flags().BoolP("generic", "g", false, "🚧 Generate a XCFramework for ALL targets")
classDumpCmd.Flags().BoolP("spm", "s", false, "🚧 Generate a Swift Package for the dylib")
classDumpCmd.Flags().Bool("demangle", false, "Demangle symbol names (same as verbose)")
classDumpCmd.Flags().Bool("headers", false, "Dump ObjC headers")
Expand All @@ -79,7 +79,7 @@ func init() {

viper.BindPFlag("class-dump.deps", classDumpCmd.Flags().Lookup("deps"))
viper.BindPFlag("class-dump.xcfw", classDumpCmd.Flags().Lookup("xcfw"))
viper.BindPFlag("class-dump.generic", classDumpCmd.Flags().Lookup("generic"))
// viper.BindPFlag("class-dump.generic", classDumpCmd.Flags().Lookup("generic"))
viper.BindPFlag("class-dump.spm", classDumpCmd.Flags().Lookup("spm"))
viper.BindPFlag("class-dump.demangle", classDumpCmd.Flags().Lookup("demangle"))
viper.BindPFlag("class-dump.headers", classDumpCmd.Flags().Lookup("headers"))
Expand Down Expand Up @@ -128,13 +128,14 @@ var classDumpCmd = &cobra.Command{
return fmt.Errorf("cannot use --re without --verbose")
} else if len(viper.GetString("class-dump.output")) > 0 && (!viper.GetBool("class-dump.headers") && !viper.GetBool("class-dump.xcfw") && !viper.GetBool("class-dump.spm")) {
return fmt.Errorf("cannot set --output without setting --headers, --xcfw or --spm")
} else if viper.GetBool("class-dump.generic") && !viper.GetBool("class-dump.xcfw") {
return fmt.Errorf("cannot use --generic without --xcfw")
}
// } else if viper.GetBool("class-dump.generic") && !viper.GetBool("class-dump.xcfw") {
// return fmt.Errorf("cannot use --generic without --xcfw")
// }

if viper.GetBool("class-dump.generic") {
log.Warn("Generating XCFramework for ALL targets (this might causes errors as some symbols are not available on all platforms)")
}
// if viper.GetBool("class-dump.generic") {
// log.Warn("Generating XCFramework for ALL targets (this might causes errors as some symbols are not available on all platforms)")
// }

if len(viper.GetString("class-dump.output")) > 0 {
if err := os.MkdirAll(viper.GetString("class-dump.output"), 0o750); err != nil {
Expand All @@ -143,12 +144,12 @@ var classDumpCmd = &cobra.Command{
}

conf := mcmd.ObjcConfig{
Verbose: Verbose || viper.GetBool("class-dump.demangle"),
Addrs: viper.GetBool("class-dump.re"),
Headers: viper.GetBool("class-dump.headers"),
ObjcRefs: viper.GetBool("class-dump.refs"),
Deps: viper.GetBool("class-dump.deps"),
Generic: viper.GetBool("class-dump.generic"),
Verbose: Verbose || viper.GetBool("class-dump.demangle"),
Addrs: viper.GetBool("class-dump.re"),
Headers: viper.GetBool("class-dump.headers"),
ObjcRefs: viper.GetBool("class-dump.refs"),
Deps: viper.GetBool("class-dump.deps"),
// Generic: viper.GetBool("class-dump.generic"),
IpswVersion: fmt.Sprintf("Version: %s, BuildCommit: %s", strings.TrimSpace(AppVersion), strings.TrimSpace(AppBuildCommit)),
Color: viper.GetBool("color") && !viper.GetBool("no-color"),
Theme: viper.GetString("class-dump.theme"),
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ require (
github.com/aymanbagabas/go-udiff v0.2.0
github.com/blacktop/arm64-cgo v1.0.57
github.com/blacktop/go-dwarf v1.0.10
github.com/blacktop/go-macho v1.1.206
github.com/blacktop/go-macho v1.1.207
github.com/blacktop/go-plist v1.0.2
github.com/blacktop/lzfse-cgo v1.1.19
github.com/blacktop/lzss v0.1.1
Expand Down
Loading

0 comments on commit bc6e7ef

Please sign in to comment.