2012-02-14 8 views
17

जब आप कोई पात्रता और निर्माण सेटिंग्स में एक कोड हस्ताक्षर पहचान (Xcode 4.2.1) निर्दिष्ट करते हैं, तो आपको निम्न उत्पादन आप Xcode से निर्माण जब:कैसे कमांड लाइन में builtin-productPackagingUtility कॉल करने के लिए

ProcessProductPackaging "myAppName.entitlements" "/path/to/myAppName.xcent" 
cd /path/to/myAppName/SourceCode 
builtin-productPackagingUtility "/path/to/myAppName/SourceCode/myAppName.entitlements" -entitlements -format xml -o "/path/to/myAppName.xcent" 


CodeSign "/path/to/Garfields Comic Boom 1.0.app" 
cd /path/to/myAppName/SourceCode 
setenv CODESIGN_ALLOCATE /Developer/usr/bin/codesign_allocate 
/usr/bin/codesign --force --sign "myCertificate" --entitlements "/path/to/myAppName.xcent" "/path/to/myAppName.app" 

मैं बिल्ड के अंत में अपने ऐप फ़ोल्डर पर हस्ताक्षर करना चाहता हूं, न कि एक्सकोड बिल्ड के दौरान।

मेरी समस्या यह है कि मुझे नहीं पता कि कमांड लाइन में xcent फ़ाइल कैसे उत्पन्न करें।

प्रश्न: आप कमांड लाइन में xcent फ़ाइलों को कैसे उत्पन्न करते हैं? मैंने रूट से एक खोज किया है, उत्पाद पैकेजिंग उपयोगिता नामक कुछ भी नहीं है ...

+6

आगे विश्लेषण के लिए एक प्रारंभिक बिंदु फ़ाइल (एक्सकोड 4.4) हो सकता है: '/ अनुप्रयोग /Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Framewor केएस/DevToolsCore.framework/संस्करण/वर्तमान/संसाधन/कोड Sign.xcspec' ('कमांडलाइन =' बिल्टिन-उत्पाद पैकेजिंग क्षमता [...] ') के साथ अनुभाग देखें। एक्सकोड शायद इस कार्य को चलाने के लिए कक्षा 'XCWorkQueueCommandBuiltinInvocation_productPackagingUtility' को तुरंत चालू करता है (यह' productPackagingUtility' प्रत्यय 'के साथ एकमात्र कक्षा है:' nm /[... ]/DevToolsCore.framework/Versions/Current/DevToolsCore | grep -i productPackagingUtility')। – Alexander

उत्तर

0

कोडलाइन उपयोगिता का उपयोग करने के लिए एक xcent फ़ाइल की आवश्यकता नहीं है। आप बस एक प्लेलिस्ट फ़ाइल बना सकते हैं और एंटाइटेलमेंट के लिए इसका उपयोग कर सकते हैं। सुनिश्चित करें कि यह एक एक्सएमएल प्लिस्ट है, बाइनरी नहीं।

2

मैं बिल्ड के अंत में अपने ऐप फ़ोल्डर पर हस्ताक्षर करना चाहता हूं, न कि एक्सकोड बिल्ड के दौरान।

आईआईआरसी एक्सकोड के हाल के संस्करण शिकायत करते हैं कि क्या आप डिवाइस निर्माण के लिए कोड हस्ताक्षर अक्षम करते हैं।

इसके आसपास सबसे आसान तरीका एक्सकोड को हस्ताक्षर करने देना है और फिर बाद में इसे फिर से साइन करना है। कदम लगभग हैं

  1. codesign -d --entitlements=MyApp.xcent MyApp.app
  2. के साथ मूल हकों डंप आप प्रावधान प्रोफाइल बदल रहे हों, MyApp.app/embedded.mobileprovision लिए नया एक कॉपी और उसके अनुसार हकों को संशोधित (iirc फ़ाइल स्वरूप एक 4-बाइट जादू और एक है 4-बाइट लंबाई; लंबाई अद्यतन करने के लिए याद रखें!)।
  3. अपने वांछित प्रमाणपत्र के साथ पुनः हस्ताक्षर करें।
0

.entitlements और $ {APPNAME} .xcent का प्रारूप समान है, इसलिए इसे केवल कॉपी किया जा सकता है।

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