dimones / iresign

Automatically exported from code.google.com/p/iresign
0 stars 0 forks source link

New IPA won't install - only one CodeResources file is updated correctly (applies to old IPAs) #24

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?

1. Select very old IPA file (see additional information below). Select 
provisioning profile and certificate.
2. Click ReSign
3. Attempt to install IPA to iOS device.

What is the expected output? What do you see instead?

Expect the IPA to install correctly. An error is giving after during 
installation.

What version of the product are you using? On what operating system?

1.1 on Mac OS X 10.7.4, XCode 4.3.3.

Please provide any additional information below.

Older IPAs seem to have two copies of the CodeResources file: one in the 
Payload/AppName.app folder, the other in Payload/AppName.app/_CodeSignature 
folder.

I think the problem after installation is happening because iReSign is updating 
only the instance of the file in _CodeSignature directory, and not the other 
one.

Googling around suggests that the former should be a symlink to the latter, 
however, when I unzip from the command line I actually get seem to get two 
identical files. Newer IPAs only seem to have a single file at 
_CodeSignature/CodeResources, so I suspect work correctly.

The workaround is simple: unzip the IPA from the command line, delete both 
CodeResources files and re-zip before feeding to iResign.

Original issue reported on code.google.com by mjholg...@gmail.com on 19 Jul 2012 at 5:41

GoogleCodeExporter commented 8 years ago
Attached is a patch to fix the issue. Basically it:

- deletes the duplicate file
- creates a symlink from CodeResources -> _CodeSignature/CodeResources (but 
only if there already was a duplicate file).
- adds '-y' to the zip command to preserve symlinks.

Original comment by mjholg...@gmail.com on 19 Jul 2012 at 7:18

Attachments: