2015-08-05 7 views
1

Чтобы проверить адресное пространство, в котором работают мои методы, мне нужно знать расположение двоичного файла моего приложения, как мне получить это местоположение. НапримерКак найти приложение для iOS из приложения

/private/var/mobile/Containers/Bundle/Application/A866E404-88F4-4E2A-B387-4808064DF1AF/{AppName}.app/{AppName}

, но идентификатор после Application/ изменений в установке. Есть ли место, где я могу запросить это местоположение?

+0

Что вы имеете в виду путем «проверки адресного пространства»? Где еще можно запускать ваши методы, когда приложение распространяется через AppStore? – dreamzor

+0

Это механизм безопасности. Если хакер получает доступ к устройству и джейлбрейкам, он может затем подключить различные реализации к вашему коду. В этом случае реализация может существовать в другом адресном пространстве, таком как «/ MobileSubstrate» или «/ cyscript». Конечно, хакеры могут модифицировать двоичный код, так что адресное пространство по-прежнему представляется действительным, но это сложнее. Это всего лишь один шаг для многих, чтобы ваше приложение не было скомпрометировано. –

ответ

1

Часть "/private/var/mobile/Containers/Bundle/Application/A866E404-88F4-4E2A-B387-4808064DF1AF/{AppName}.app" должно быть просто:

NSString *appPath = [[NSBundle mainBundle] bundlePath]; 
+0

Это замечательно, спасибо. Вы знаете, есть ли способ сделать это в C? Я пытаюсь защитить свое приложение и используя методы Obj-C, немного упростит кому-то, чтобы это подменить и вернуть другое значение. –