Welches Stück wird von einem iPhone ausgewählt?

9

Ich habe eine .ipa , die arm64 und armv 7 Slices enthält. Wenn ich es auf einem iDevice ausführe, der sowohl arm64 als auch armv7 unterstützt, welcher Slice wird von der Laufzeit ausgewählt?

Kann ich irgendwo sehen, indem ich NSLog oder irgendeinen Weg, um zu verstehen, dass runtime Schnitt arm64 ausgewählt hat?

sehe     
thndrkiss 19.01.2017, 07:49
quelle

5 Antworten

1

Du könntest es so versuchen. Sie müssen weitere Optionen von cpu_type_t hinzufügen.

%Vor%

Bearbeitet: Versuchen Sie zuerst mit "hw.cpufamily"

%Vor%     
Vishun 31.01.2017, 13:07
quelle
1

Wenn Ihre App über den App Store mit aktiviertem Byte-Code heruntergeladen wird, lässt iTunes Connect ein iOS-Gerät die entsprechende Binärdatei entsprechend Ihrer Gerätearchitektur herunterladen.

Wenn Sie die Xcode-Prüfung für diese Option durchführen, gehen Sie wie folgt vor: Es wird nur nach Ihrer iOS-Gerätearchitektur kompiliert.

Wenn Sie diese Option als NO haben, könnten Sie testen, welche binäre Architektur ausgeführt wird:

%Vor%     
Hashmat Khalil 29.01.2017 09:52
quelle
1

Laut Apple :

  1. "Der Compiler definiert das Makro __LP64__ beim Kompilieren für die 64-Bit-Laufzeitumgebung" und
  2. "Die Größe der Zeiger wurde von 4 auf 8 Byte erhöht" (wenn von ILP32 nach LP64 gewechselt wird).

Wenn Sie daran interessiert waren, die Architektur zur Kompilierzeit zu bestimmen, kommt im Wesentlichen der folgende Code (vom googlen):

%Vor%

Da Sie jedoch nach einem Laufzeittest fragen, ist die Verwendung der Methode zur Bestimmung der Zeigergröße (wie auf der oben verlinkten Apple-Hilfeseite bestätigt) eine Möglichkeit, dies zu tun. Der von Manish oder Hashmat vorgeschlagene Code zeigt, wie.

    
Louis Langholtz 30.01.2017 21:07
quelle
1

Ich habe diese Frage schon früher gesehen, was meiner Meinung nach relevant ist, wenn Sie sich die Kommentare zu der Frage ansehen:

Xcode 6.3 erstellt alle Swift-Dateien zweimal

Im Falle der verknüpften Frage ist die Antwort, obwohl sie veraltet ist, beides. Jede Datei wird zweimal erstellt und kann innerhalb der Build-Einstellungen manuell geändert werden (Build Active Architecture Only).

    
Ethan Humphries 31.01.2017 16:54
quelle
0

Wie wäre es mit diesem Code herauszufinden?

%Vor%     
manishg 30.01.2017 02:05
quelle

Tags und Links