From 0d9ee30350c96b1e145e2b6017695701f4ec9f9a Mon Sep 17 00:00:00 2001 From: liqiang <1573335865@qq.com> Date: Fri, 16 Jan 2026 11:03:20 +0800 Subject: [PATCH 1/2] fix: generate ipa compatible with itms-services installation --- pkg/appstore/appstore_replicate_sinf.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/appstore/appstore_replicate_sinf.go b/pkg/appstore/appstore_replicate_sinf.go index 83debc0c..029d1c05 100644 --- a/pkg/appstore/appstore_replicate_sinf.go +++ b/pkg/appstore/appstore_replicate_sinf.go @@ -135,16 +135,16 @@ func (t *appstore) replicateSinfFromInfo(info packageInfo, zip *zip.Writer, sinf func (t *appstore) replicateZip(src *zip.ReadCloser, dst *zip.Writer) error { for _, file := range src.File { - srcFile, err := file.OpenRaw() + srcFile, err := file.Open() if err != nil { - return fmt.Errorf("failed to open raw file: %w", err) + return fmt.Errorf("failed to open file: %w", err) } header := file.FileHeader - dstFile, err := dst.CreateRaw(&header) + dstFile, err := dst.CreateHeader(&header) if err != nil { - return fmt.Errorf("failed to create raw file: %w", err) + return fmt.Errorf("failed to create file: %w", err) } _, err = io.Copy(dstFile, srcFile) From 07a426fd3d0cb4e6a968f8e42e559c4aca8973a0 Mon Sep 17 00:00:00 2001 From: Majd Alfhaily Date: Thu, 16 Apr 2026 20:33:05 +0200 Subject: [PATCH 2/2] Close zip entry readers during replication --- pkg/appstore/appstore_replicate_sinf.go | 30 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/pkg/appstore/appstore_replicate_sinf.go b/pkg/appstore/appstore_replicate_sinf.go index 029d1c05..c9967e2b 100644 --- a/pkg/appstore/appstore_replicate_sinf.go +++ b/pkg/appstore/appstore_replicate_sinf.go @@ -135,21 +135,29 @@ func (t *appstore) replicateSinfFromInfo(info packageInfo, zip *zip.Writer, sinf func (t *appstore) replicateZip(src *zip.ReadCloser, dst *zip.Writer) error { for _, file := range src.File { - srcFile, err := file.Open() - if err != nil { - return fmt.Errorf("failed to open file: %w", err) - } + err := func() error { + srcFile, err := file.Open() + if err != nil { + return fmt.Errorf("failed to open file: %w", err) + } + defer srcFile.Close() - header := file.FileHeader - dstFile, err := dst.CreateHeader(&header) + header := file.FileHeader + dstFile, err := dst.CreateHeader(&header) - if err != nil { - return fmt.Errorf("failed to create file: %w", err) - } + if err != nil { + return fmt.Errorf("failed to create file: %w", err) + } + + _, err = io.Copy(dstFile, srcFile) + if err != nil { + return fmt.Errorf("failed to copy file: %w", err) + } - _, err = io.Copy(dstFile, srcFile) + return nil + }() if err != nil { - return fmt.Errorf("failed to copy file: %w", err) + return err } }