Używam this answer do utworzenia mapy modułu, aby utworzyć moduł dla CommonCrypto, dzięki czemu mogę go używać w ramach.Mapa modułu prywatnego dla architektury
Robi to jednak oznacza, że wszelkie projekty, które używam tego w ramy mają dostęp do CommonCrypto z import CommonCrypto
- a nawet gorzej, deklarując CommonCrypto w innym ram i importowanie to do rezultatów projektu w Redefinition of module 'CommonCrypto'
błędów.
tj. następujących ustawień:
MainProject
|--> import FrameworkA - module map for CommonCrypto
|--> import FrameworkB - module map for CommonCrypto
Czy istnieje sposób, aby utworzyć moduł mapę, ale mają to prywatny do tego ram jej stworzony/stosowanego w? (Podobnie jak w atrybucie dostępu Swift dla frameworku dostęp do atrybutu internal
). The llvm Clang docs show a private
attribute, ale nie mogę się dowiedzieć, gdzie umieścić to na mojej mapie modułu, a może nie być nawet w tym celu! Jest też export
attribute, ale znowu nie jestem całkowicie pewien, jak tego użyć ...!
To mój moduł map używam do CommonCrypto - w $(SDKROOT)
zostaje zamienione w fazie budowy do właściwej lokalizacji (dla iphoneos
lub iphonesimulator
SDK):
module CommonCrypto [system] [extern_c] {
umbrella header "$(SDKROOT)/usr/include/CommonCrypto/CommonCrypto.h"
export *
}
To działa prawidłowo (z wyjątkiem ciebie nie mogę "przejść do definicji", ale nie mam nic przeciwko temu) do użycia w FrameworkA
/FrameworkB
.
Witam, czy ktoś się z tym zaktualizował? Mam dokładnie taką samą konfigurację dla libz :( – tmpz
Rich, czy mógłbyś podać swój skrypt fazy budowy, który zastąpi $ (SKROOT)? Dzięki! – appleitung
@appleitung: Skrypt jest tutaj: gist.github.com/rhodgkins/5eecee8bcbdb6021fc798247132e9fa7, a następnie ustaw to tak: postimg.org/image/fj7j9nsqp w projekcie Nie zapomnij dodać katalogu $ (PROJECT_DIR)/$ (TARGET_NAME)/ExternalFrameworks/również do ustawienia kompilacji * Framework Search Paths. mapy powinny siedzieć w folderze katalogów wejściowych - z nazwą folderu zawierającą nazwę modulemap jest to nazwa – Rich