Ресурс исполняемого пакета XCode не работает с песочницей. Какие-либо из этих системных вызовов выглядят проблематично для песочницы?

В моем приложении Какао есть двоичный исполняемый ресурс, который подписан мной и запускается из песочницы. Однако, он не работает успешно, и в его stderr есть материал, которого нет, когда я запускаю этот вызов за пределами моего приложения. Программа, которую я запускаю, называется tbl2asn, предоставленный правительством США, и исходный код доступен; эта программа скомпилирована вместе со многими другими как часть библиотеки для биологических данных.

Для полноты, это именно тот звонок, который я использую,tbl2asn -V v -a l1 -t inputfile1 -i inputfile2 -o outputfile

В конечном итоге он генерирует три файла, один из которых -o и два файла в каталоге, из которого запускается программа, из-за -V v флаг.

Я говорю Xcode, чтобы написать -o подать в NSTemporaryDirectory()где другие файлы пишутся успешно с включенной песочницей, но она не записывает те, которые я хочу, когда включена песочница. Так как процесс завершается ошибкой в ​​приложении без -V v (что наверняка вызывает попытки записи файлов туда, где находятся ресурсы), это заставляет меня думать, что предпринимаются некоторые попытки ввода-вывода в запрещенные места.

Вне приложения, когда tbl2asn запускается, только пара неважных уведомлений печатаются в stderr, но внутри приложения, когда я передаю вперед stderr из tbl2asn позвони, это то, что я вижу,

[tbl2asn 25.3] Bad character   in V_argVerify
2019-02-28 05:35:47.793894-0800 tbl2asn[67411:9510814] WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.0 instead of 10.14.0. This is not a bug in Gestalt -- it is a documented limitation. Use NSProcessInfo's operatingSystemVersion property to get correct system version number.
Call location:
2019-02-28 05:35:47.796781-0800 tbl2asn[67411:9510814] 0   CarbonCore                          0x00007fff3a2a5464 ___Gestalt_SystemVersion_block_invoke + 112
2019-02-28 05:35:47.796797-0800 tbl2asn[67411:9510814] 1   libdispatch.dylib                   0x000000010073a7f3 _dispatch_client_callout + 8
2019-02-28 05:35:47.796808-0800 tbl2asn[67411:9510814] 2   libdispatch.dylib                   0x000000010073c4bb _dispatch_once_callout + 87
2019-02-28 05:35:47.796819-0800 tbl2asn[67411:9510814] 3   CarbonCore                          0x00007fff3a246665 _Gestalt_SystemVersion + 946
2019-02-28 05:35:47.796829-0800 tbl2asn[67411:9510814] 4   CarbonCore                          0x00007fff3a23fae8 Gestalt + 147
2019-02-28 05:35:47.796840-0800 tbl2asn[67411:9510814] 5   tbl2asn                             0x000000010037a806 Nlm_GetOpSysString + 22
2019-02-28 05:35:47.796850-0800 tbl2asn[67411:9510814] 6   tbl2asn                             0x0000000100002a63 Nlm_Main + 6163

Я не уверен, что это значит. Я побежал dtruss на моем вызове, вне приложения, и вижу, что это все различные функции, которые он вызывает,

SYSCALL()
access()
bsdthread_register()
close()
close_nocancel()
csops()
fcntl()
fstat64()
fstatfs64()
getattrlist()
getdirentries64()
getegid()
geteuid()
getgid()
getpid()
getrlimit()
getrusage()
gettid()
getuid()
ioctl()
issetugid()
lseek()
lstat64()
madvise()
mmap()
mprotect()
open()
open_nocancel()
openat()
proc_info()
read()
read_nocancel()
shm_open()
stat64()
sysctl()
sysctlbyname()
write_nocancel()

Я работаю над этим, но мне бы хотелось, чтобы кто-нибудь признал, что что-то из этого проблематично с изолированными ресурсами, если они могут поделиться со мной тем, что знают.

0 ответов

Другие вопросы по тегам