2012-10-18 14 views
8

मेरे पास एक साधारण यूनिक्स टूल है जो मुख्य कोको ऐप को खोल से लॉन्च करता है।कमांड लाइन उपकरण को सैंडबॉक्स कैसे करें?

मैं इसे सैंडबॉक्स में की जरूरत है, लेकिन जब मैं इसे चलाने के लिए, यह त्रुटि "अवैध अनुदेश: 4" के साथ दुर्घटनाओं: कंटेनर वस्तु प्रारंभ, console.app पर मैं निम्न त्रुटि संदेश

सैंडबॉक्स बनाने में विफल देख सकते हैं में विफल रहा है: कोई नहीं कंटेनर की जानकारी कोई त्रुटि विवरण के साथ visdiff

फ़ाइल के लिए वस्तु को सही ढंग से codesign के साथ हस्ताक्षर किए है।

मैं पद Mac OS app, sandbox with command line tool? पढ़ा है, लेकिन यह मदद नहीं करता है

+0

शायद अधिक जानकारी की आवश्यकता है। आपका टूल आपके ऐप के साथ कैसे पैक किया जाता है? आप "खोल से" टूल को कैसे निष्पादित करते हैं (कोड, कृपया)। आपके द्वारा उल्लिखित अन्य प्रश्न के बारे में क्या मदद नहीं मिली (आपने समस्याओं में कहाँ भाग लिया)? –

+0

क्या आपने कोडिंग करते समय --entitlements तर्क का उपयोग किया था? – Marius

उत्तर

5

मुझे यह सही समस्या थी, और जब मैंने एक एम्बेडेड Info.plist जोड़ा तो यह चला गया।

इन बजना झंडे का प्रयास करें (यह मानते हुए आप का निर्माण निर्देशिका में info.plist है):

-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __info_plist -Xlinker info.plist

+1

वाह से पूरी तरह से अपरिहार्य है। आपने दिन बचा लिया है यदि मैं कर सकता तो मैं अपने सभी SO अंक दान कर दूंगा। धन्यवाद!!! – Lizza

+0

आपका स्वागत है :) –

+0

एम्बेडेड Info.plist में आपने जो जानकारी दी है? मेरा मानना ​​है कि यह प्लिस्ट यूनिक्स फ़ाइल – Swati

4

सांत्वना आवेदन कंसोल से सीधे शुरू की है या यह एक मुख्य सैंडबॉक्स आवेदन से कहा जाता है? मैं एक ऐसी ही त्रुटि जब कुछ बाइनरी सैंडबॉक्स पर कोशिश कर प्राप्त किया और मैं सिर्फ यह केवल नीचे हकों का उपयोग करके काम करने के लिए कर रहा था: उस के बाद आप केवल एक माता पिता की प्रक्रिया से बाइनरी कॉल कर सकते हैं

<dict>                                          
    <key>com.apple.security.app-sandbox</key>                                 
    <true/>                                          
    <key>com.apple.security.inherit</key>                                  
    <true/>                                          
</dict> 
बेशक

, कि पहले से ही sandboxed है (यही कारण है कि मैंने पूछा कि कैसे आपकी बाइनरी कहा जाता है :))।

+0

नहीं, मेरे कमांड लाइन उपकरण को यूनिक्स शैल से बुलाया जाता है, यह मुख्य सैंडबॉक्स किए गए ऐप – dafi

0

ऐसा लगता है अगर आप com.apple.security.inherit साथ एक निष्पादन पर हस्ताक्षर यह केवल किसी अन्य के द्वारा कहा जा सकता है एप्लिकेशन जो पहले से ही sandboxed है। इसलिए आप कोडलाइन चलाने के बाद इसे cmdline से अब कॉल नहीं कर सकते हैं।

+0

हाँ - इस समस्या ने मुझे जल्द ही मारा क्योंकि जैसे ही मैंने अपने सहायक निष्पादक को उस न्यूनतम com.apple.security.app-sandbox + com.apple.security.inherit plist पर हस्ताक्षर किया था। क्या आसपास कोई काम है? या क्या मुझे प्रत्येक सहायक निष्पादन योग्य के लिए 'असली' एंटाइटेलमेंट जोड़ने की आवश्यकता है जैसे कि यह एक मूल ऐप उदा। com.apple.security.network.client? मैं फाइल सिस्टम एंटाइटेलमेंट्स के बारे में चिंतित हूं क्योंकि मेरे मददगारों को घर फ़ोल्डर की सीमाओं के बाहर, काफी व्यापक पहुंच की आवश्यकता हो सकती है। – user1475135

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^