Šta je novo?

Pitanje u vezi OS X Sandbox-a

yooyo

Čuven
VIP član
Učlanjen(a)
28.06.2005
Poruke
10,877
Poena
730
Napravio sam jedan in-house tool, za detekciju lica, koji je u principu obicna C++ command line app koja kada se pokrene, ucita neke konfiguracione fajlove iz svog foldera, otvori web kameru, detektuje lice i svoj rezultat salje TCP-om drugim aplikacijama.

Kada app pokrenem iz terminala, sve radi kako treba. Kada napravim alias na tu aplikaciju i izvucem na desktop, pa je pokrenem, app ne radi jer nema dozvolu da pristupi konfiguracionim fajlovima u svom folderu.

Nemam nameru da app saljem na App Store niti da je na neki drugi nacin distribuiram. Samo me zanima kako da pokrenem app bez terminala, tako da korisnik moze sto jednostavnije da je pokrene. Googlao sam o ovome ali ne mogu nista konkretno da pronadjem.

Ima li neki nacin da se sandbox iskljuci? U pitanju je OS X Yosemite.
 
App sandbox je aktivan jedino ako dodas entitlements za app,

Kod:
codesign --entitlements /path/to/entitlements.plist -s <identity> <code-path> …

Bez toga app sandbox je ugasen, i ima pristup svemu sto i sam user.
 
Hmm, da li je xcode dodao to automatski u build proces?
App nema nikakav bundle. Obična komanda. Iz terminala radi, iz aliasa nece. Da li u aliasu može da se podesi working dir?
 
Default je off za OS X target u Xcode. Moja pretpostavka je isto da zeza CWD. Mozes da napravis shell script wrapper koji setuje CWD pa startuje app, nesto tipa,

myapp.command:
Kod:
#!/bin/bash

cd "$(dirname "$0")"

./myapp_binary

chmod +x myapp.command

Napravis alias za myapp.command.

Idealno je da app kreira i koristi konfiguracione fajlove u
HOME/Library/Application Support/MyApp/
HOME/Library/Preferences/
 
Poslednja izmena:
Hvala, probacu kad sledeci put sednem za mac-a.
 
Nazad
Vrh Dno