Frage Fehler beim Exportieren mit aktiviertem Bitcode (Symbol für Architektur-Armv7 nicht gefunden)


Ich habe ein ziemlich altes Projekt mit einem Mindesteinsatzziel von iOS 8.4. Aus technischen Gründen Bitcode Muss aktiviert sein. Das Projekt baut und läuft gut. Beim Versuch, einen archivierten Build zu exportieren, gehen die Dinge jedoch schief. Ich benutze Xcode 8.2.1.

Wenn ich einen Test Build (mit Enterprise-Zertifikat signiert) mit der Option erstellen Rebuild from bitcode aktiviert, schlägt der Export in der Phase fehl, in der der Bitcode kompiliert wird.

Screenshot bitcode setting

Screenshot export error

Hier ist der relevante Teil des Protokolls:

"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.ios.a" "-o" "/private/var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/<redacted target name>WX9bPu/<redacted target name>.armv7.out" 
    -= Output =-
    Undefined symbols for architecture armv7:
      "_llvm_gcov_init", referenced from:
          __hidden#2_ in 001.o
          __hidden#3_ in 001.o
          __hidden#4_ in 001.o
          __hidden#5_ in 001.o
          __hidden#6_ in 001.o
          __hidden#7_ in 001.o
          __hidden#8_ in 001.o
          ...
      "_llvm_gcda_end_file", referenced from:
          __hidden#0_ in 001.o
          __hidden#0_ in 002.o
          __hidden#0_ in 003.o
          __hidden#0_ in 004.o
          __hidden#0_ in 005.o
          __hidden#0_ in 006.o
          __hidden#0_ in 007.o
          ...
      "_llvm_gcda_emit_function", referenced from:
          __hidden#0_ in 001.o
          __hidden#0_ in 002.o
          __hidden#0_ in 004.o
          __hidden#0_ in 005.o
          __hidden#0_ in 006.o
          __hidden#0_ in 007.o
          __hidden#0_ in 008.o
          ...
      "_llvm_gcda_emit_arcs", referenced from:
          __hidden#0_ in 001.o
          __hidden#0_ in 002.o
          __hidden#0_ in 004.o
          __hidden#0_ in 005.o
          __hidden#0_ in 006.o
          __hidden#0_ in 007.o
          __hidden#0_ in 008.o
          ...
      "_llvm_gcda_start_file", referenced from:
          __hidden#0_ in 001.o
          __hidden#0_ in 002.o
          __hidden#0_ in 003.o
          __hidden#0_ in 004.o
          __hidden#0_ in 005.o
          __hidden#0_ in 006.o
          __hidden#0_ in 007.o
          ...
      "_llvm_gcda_summary_info", referenced from:
          __hidden#0_ in 001.o
          __hidden#0_ in 002.o
          __hidden#0_ in 003.o
          __hidden#0_ in 004.o
          __hidden#0_ in 005.o
          __hidden#0_ in 006.o
          __hidden#0_ in 007.o
          ...
    ld: symbol(s) not found for architecture armv7
    Exited with 1


    error: Failed to compile bundle: /var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/<redacted target name>WX9bPu/<redacted target name>.armv7.xar


Stderr:
>
    /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:202:in `run'
    /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1987:in `block in CompileOrStripBitcodeInBundle'
    /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1944:in `each'
    /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1944:in `CompileOrStripBitcodeInBundle'
    /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2119:in `ProcessIPA'
    /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2687:in `<main>'";
            info =             {
            };
            level = ERROR;
            type = exception;
        }
    );
    thinnableAssetCatalogs =     (
        "/var/folders/qy/cgq_nq7x2tx1j3z__7f4yx100000gn/T/XcodeDistPipeline.hn6/Root/Payload/<redacted target name>.app/Assets.car"
    );
}
2017-03-31 12:21:37 +0000 [MT] Exporting using IDEDistributionPackageExportStep
2017-03-31 12:21:58 +0000 [MT] Canceled distribution assistant

Wenn ich deaktiviere Rebuild from bitcodeDer Export ist erfolgreich und der resultierende Build läuft einwandfrei. Ich befürchte, dass dies zu Problemen führen wird, wenn der Build jedoch an iTunes Connect übermittelt wird.

Hat jemand eine Ahnung, warum dieser Fehler auftritt und wie man das beheben kann? Ich bin ein bisschen ratlos.


Bearbeiten:

Zur Klarstellung: Ja, Bitcode ist auf der Zielebene aktiviert. Hier sind die verlinkten Bibliotheken:

Screenshot of linked libraries

Dies sind die Abhängigkeiten:

# Reporting
pod 'Fabric'
pod 'Crashlytics'
pod 'GoogleAnalytics'
pod 'CocoaLumberjack', '~> 1.6.2'

# Networking
pod 'AFNetworking', '~> 2.6.3'
pod 'RestKit', '~> 0.27'
pod 'Reachability'

# Other
pod 'UIColor-Utilities', '~> 1.0.1'
pod 'ViewDeck', '~> 2.4'
pod 'SDWebImage', '~> 3.7.0'
pod 'AMRatingControl', '~> 1.3.0'

8
2018-03-31 13:19


Ursprung


Antworten:


Nach einigem Ausprobieren und den hilfreichen Vorschlägen von Sven Drielecker (und andere) das Problem wurde behoben.

Das GCC_INSTRUMENT_PROGRAM_FLOW_ARCS Buildeinstellung wurde auf festgelegt YES für beide debuggen und Veröffentlichung erstellt. Durch Deaktivieren der Veröffentlichung wurde das Problem behoben.


1
2018-05-22 21:53



Ich habe versucht, dein Problem zu reproduzieren, aber ohne Erfolg. Allein durch die Benennung der fehlenden Symbole scheinen diese einen Bezug zu Code-Coverage-Sachen zu haben. Sie könnten versuchen, alles, was mit der Codeabdeckung in Ihrem Projekt zu tun hat, zu deaktivieren und es dann erneut zu archivieren und zu exportieren:

Schemaeinstellungen:

enter image description here

Zielerstellungseinstellungen: enter image description here


0
2018-04-09 16:57