IOS -Archivierung für die Freigabe von Streifen weg globale SymboleIOS

Programmierung für iOS
Anonymous
 IOS -Archivierung für die Freigabe von Streifen weg globale Symbole

Post by Anonymous »

Ich habe eine Cocoapods-Bibliothek.

Code: Select all

#define EXPORT __attribute__((visibility("default"), used, retain)) extern "C"

EXPORT void ios_prepare_request(const char *url) {
// some obj-c code
}
< /code>

 Dann wird intern ein Dylib geladen. Dieser Dylib versucht, diese Funktionen aufzurufen. Es gibt einen Stripping -Schritt, der meine globalen Symbole beseitigt. Wenn ich versuche, irgendwann eine der Funktionen von der Dylib aufzurufen, wird eine Nullzeigerreferenz und die App abgestürzt. PrettyPrint-Override ">  s.user_target_xcconfig = {
'STRIP_STYLE' => 'non-global'
}
< /code>

 Ich habe versucht, dies mit Hilfe eines der Apple -Ingenieure zu umgehen. Sein Vorschlag ist, einen Linker -Flag -Export_Symbols_List zu verwenden, aber egal was ich ausprobiert habe, funktioniert nicht. Standardmäßig erzeugt Cocoapods eine statische LIB, sodass Exporte_Symbol_List 
nicht funktioniert, da es für Dylibs gedacht ist.s.static_framework = false
s.preserve_paths = 'exports.exp'
s.pod_target_xcconfig= {
'OTHER_LDFLAGS' => '$(inherited) -Wl,-exported_symbols_list,$(PODS_TARGET_SRCROOT)/exports.exp',
}
< /code>

Beim Erstellen eines statischen LIB-Claude schlägt die Verwendung eines -U < /code> -Flags vor und über jedes Symbol über das Leben zum Leben. Dies funktioniert jedoch auch nicht ❌ < /li>
< /ul>
">"> ">"> "> s.user_target_xcconfig = {
'OTHER_LDFLAGS' => '$(inherited) -Wl,-u,_ios_prepare_request'
}
< /code>
Zu diesem Zeitpunkt habe ich aus Ideen, wie man verhindern kann, dass die globalen Symbole strippiert werden. Dies ist jedoch ziemlich mühsam. Ich möchte immer noch, dass globale Funktionen funktionieren.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post