arm64-to-sim icon indicating copy to clipboard operation
arm64-to-sim copied to clipboard

Cannot patch libGoogleAnalyticsServices.a since Xcode 13.3

Open albertocsouto opened this issue 2 years ago • 2 comments

Hi, since Xcode 13.3 I cannot patch this library:

lipo -detailed_info libGoogleAnalyticsServices.a
Fat header in: libGoogleAnalyticsServices.a
fat_magic 0xcafebabe
nfat_arch 5
architecture armv7
    cputype CPU_TYPE_ARM
    cpusubtype CPU_SUBTYPE_ARM_V7
    capabilities 0x0
    offset 108
    size 6872432
    align 2^2 (4)
architecture armv7s
    cputype CPU_TYPE_ARM
    cpusubtype CPU_SUBTYPE_ARM_V7S
    capabilities 0x0
    offset 6872540
    size 6879928
    align 2^2 (4)
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    capabilities 0x0
    offset 13752468
    size 7031728
    align 2^2 (4)
architecture x86_64
    cputype CPU_TYPE_X86_64
    cpusubtype CPU_SUBTYPE_X86_64_ALL
    capabilities 0x0
    offset 20784200
    size 7180160
    align 2^3 (8)
architecture arm64
    cputype CPU_TYPE_ARM64
    cpusubtype CPU_SUBTYPE_ARM64_ALL
    capabilities 0x0
    offset 27964360
    size 7499168
    align 2^3 (8)

Script is failing due this fatal error:

Arm64ToSimLib/Transmogrifier.swift:49: Fatal error: The file is not a correct arm64 binary. Try thinning (via lipo) or unarchiving (via ar) first.

Using 13.2.1 and arm64-to-sim old version previous to #9 patch worked before. Any clues on how to solve this issue?

I've tried thinning first, but same error result:

lipo -detailed_info libGoogleAnalyticsServices.a.arm64                                  
input file libGoogleAnalyticsServices.a.arm64 is not a fat file
Non-fat file: libGoogleAnalyticsServices.a.arm64 is architecture: arm64

Thanks!

albertocsouto avatar Aug 22 '22 08:08 albertocsouto

Also having this drama with SpotifyMetadata.framework:

mt@mt-mba arm64-to-sim % ./.build/apple/Products/Release/arm64-to-sim ./SpotifyMetadata 
Arm64ToSimLib/Transmogrifier.swift:49: Fatal error: The file is not a correct arm64 binary. Try thinning (via lipo) or unarchiving (via ar) first.
zsh: trace trap  ./.build/apple/Products/Release/arm64-to-sim 

mt@mt-mba SpotifyMetadata.framework % lipo -i ./SpotifyMetadata 
Architectures in the fat file: ./SpotifyMetadata are: armv7 i386 x86_64 arm64 
mt@mt-mba SpotifyMetadata.framework % lipo -thin arm64 ./SpotifyMetadata -output ./SpotifyMetadata2
mt@mt-mba SpotifyMetadata.framework % lipo -i ./SpotifyMetadata2                                   
Non-fat file: ./SpotifyMetadata2 is architecture: arm64

mt@mt-mba arm64-to-sim % ./.build/apple/Products/Release/arm64-to-sim ./SpotifyMetadata2
Arm64ToSimLib/Transmogrifier.swift:49: Fatal error: The file is not a correct arm64 binary. Try thinning (via lipo) or unarchiving (via ar) first.
zsh: trace trap  ./.build/apple/Products/Release/arm64-to-sim 

markst avatar Jun 01 '23 06:06 markst

In our specific scenario, this is no longer an issue, thanks to Xcode 14.3. We're able to target the Rosetta simulator while working with these legacy libraries.

albertocsouto avatar Jun 07 '23 08:06 albertocsouto