Когда я компилирую версию моего приложения для iOS (на основе стандартного шаблона приложения для iOS от Apple), просматриваю полученный исполняемый двоичный файл, я вижу все виды символов и даже локальный источник и заголовок cpp пути там. Я действительно озадачен, почему это так (я не включил RTTI *). Особенно из-за путей к исходным файлам я чувствую себя некомфортно, отправляя это приложение по всему миру (почему каждый должен видеть макет каталога моей машины для разработки?).
Вот два (случайно выбранных, модерированных) выдержки:
TS/../ACTORS/CActorCanvasCharPart.cpplastMeshcapVerticesOFF BOUNDSupload VERTICES: %d
20CActorCanvasCharPartgrassscrub/Volumes/Data/iOS_projects/code/MyAppName_proj/MyAppName/source/STATES/GAMES/2/CStateGame2_grass.cppbaseShadowmowerstartmowerloopmowermowerCharcutGrassChargrassStuffgrassParticles/Volumes/Data/iOS_projects/code/MyAppName_proj/MyAppName/source/STATES/GAMES/2/CStateGame2_grass.h17CStateGame2_grasssinwriteStroke/Volumes/Data/iOS_projects/code/MyAppName_proj/MyAppName/source/STATES/GAMES/2/CStateGame2_flowers.hflowerBedsandTrailclickstart3inplace2sandDrag/Volumes/Data/iOS_projects/code/MyAppName_proj/MyAppName/source/STATES/GAMES/2/CStateGame
А вот множество символов для самоопределенных типов и структур:
CAssetMgr="_vptr$CMgrBase"^^?"pMain"^{CMain}"inited"B"curveCount"S"curveSpecs"^{CCurveSpec}"gameSpecs"[23{CGameStateSpec="header"{SpecDiskHeader="type"i"version"S}"gameID"C"backgroundColor"{CRGBAcolorf="r"f"g"f"b"f"a"f}"clickPointColor"{CRGBAcolorf="r"f"g"f"b"f"a"f}"clickPointIconColor"{CRGBAcolorf="r"f"g"f"b"f"a"f}"hintColor"{CRGBAcolorf="r"f"g"f"b"f"a"f}}]"currentFont"^{CCharset}"userCharParts"^^{CCharPart}"words"{CDataSet<CName4,CCharArray>="_vptr$CObjectBase"^^?"pMain"^{CMain}"count"i"data"*"dataSize"l}"sets"{CDataSet<CName16,CCharArray>="_vptr$CObjectBase"^^?"pMain"^{CMain}"count"i"data"*"dataSize"l
Можно ли этого избежать, как?
* ОБНОВЛЕНИЕ: Я только что узнал, что RTTI включен по умолчанию. Поэтому я очистил цель, отключил RTTI (GCC_ENABLE_CPP_RTTI = NO) и перекомпилировал. Я до сих пор вижу много символов и исходных путей в двоичном файле.
ОБНОВЛЕНИЕ 2: я проверил несколько других приложений из магазина приложений, и у многих из них также отображаются пути к исходным файлам. Довольно страшно, если вы спросите меня:
Joined Up Lite<br>
/Users/lloydy/Documents/Development/iPhone/ABC Joined Up/main.m<br>
/Users/lloydy/Documents/Development/iPhone/ABC Joined Up/Classes/SettingsView.m
Crayon Physics<br>
/Users/smproot/Desktop/unzip/CrayonPhysics/v104/Classes/crayon/src/ceng/gameutils/killspriteslowly/killspriteslowly.cpp<br>
/Users/smproot/Desktop/unzip/CrayonPhysics/v104/Classes/crayon/src/ceng/tasks/task/sdl/mixer/ctaskaudiosdlmixer.cpp
Wall Times<br>
/Users/fred/_WORK/ZDNDRP/WallTimes/main.m<br>
/Users/fred/_WORK/ZDNDRP/WallTimes/Classes/SystemCategories.m
Jumbo Calculator<br>
/Users/Christopher/Documents/Development/JumboCalculator 1.0.3/main.m<br>
/Users/Christopher/Documents/Development/JumboCalculator 1.0.3/Classes/CalculatorFaceViewController.m