2011-07-04 6 views
9

मेरे पास है मैं एक अलग सेब डेवलपर लाइसेंस के साथ इस्तीफा देने करना चाहते हैं तो कुछ एप्लिकेशन,xcode के बाहर एक आवेदन इस्तीफा दे

समस्या है, मुझे नहीं स्रोत कोड है, केवल आईपीए फ़ाइल, एप्लिकेशन और archiveinfo.plist यह है यदि मेरे पास स्रोत कोड नहीं है तो मेरे लिए ऐप से इस्तीफा देना संभव है?

धन्यवाद! ओम्पा

+0

आप [www.aironapp.com] (http://www.aironapp.com) को आजमा सकते हैं। यह आईपीए के स्वचालित रूप से रिकोडिग्निंग कर सकता है। आपको पहले अपना ऐप्पल खाता कॉन्फ़िगर करना होगा (प्रमाणपत्र और निजी कुंजी अपलोड करें)। – shader

+0

सरल खोल स्क्रिप्ट उत्तर: http://stackoverflow.com/a/10905855/190599 – CodeReaper

उत्तर

23

पहले से हस्ताक्षरित बाइनरी पर हस्ताक्षर को प्रतिस्थापित करने की क्षमता को कोडइन उपयोगिता में बनाया गया है। इस तरह, यदि आपका डेवलपर प्रमाणपत्र समाप्त हो जाता है (जैसा कि वे अक्सर परेशान करते हैं), तो आपको अपने ऐप का पुनर्निर्माण करने की आवश्यकता नहीं है।

यह महत्वपूर्ण हो सकता है, खासकर यदि आपको पुराने ऐप संस्करण का समर्थन करने की आवश्यकता है, और आपने अपना आईपीए संग्रहीत करने के बाद कोड परिवर्तन किए हैं।

मैं आमतौर पर इस स्क्रिप्ट का उपयोग करता हूं। यह आसान काम में आता है जब व्यापार डीबग उन लोगों के साथ आईपीए बनाता है जिनके पास अपने डेवलपर खाते हैं और मैं यूडीआईडी ​​स्लॉट जला नहीं चाहता हूं, और जो अपने प्रावधान प्रोफाइल को अपने उपकरणों पर लोड नहीं करना चाहते हैं।

#!/bin/sh 

TEMPDIR=/tmp/$RANDOM-$RANDOM-$RANDOM 
RESOURCERULES=/tmp/ResourceRules-$RANDOM$RANDOM.plist 
CURRENTDIR=`pwd` 

mkdir -p "$TEMPDIR" 

cat - > "$RESOURCERULES" <<ResourceRulesPlistDelimiter 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>rules</key> 
    <dict> 
     <key>.*</key> 
     <true/> 
     <key>Info.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>10</real> 
     </dict> 
     <key>ResourceRules.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>100</real> 
     </dict> 
    </dict> 
</dict> 
</plist> 
ResourceRulesPlistDelimiter 

unzip -q "$1" -d "$TEMPDIR" || exit 1 
xattr -d -r com.apple.quarantine "$TEMPDIR" 

for APPBUNDLE in "`find "$TEMPDIR" -name "*.app"`"; do 
    codesign --resource-rules="$RESOURCERULES" -f -s "iPhone Developer" "$APPBUNDLE" 
    codesign -dvvvv -r- "$APPBUNDLE" 
done 

cd "$TEMPDIR" 
zip -qr "$TEMPDIR.zip" "Payload" && cd "$CURRENTDIR" && mv "$1" "$1.bak" && mv "$TEMPDIR.zip" "$1" 
cd "$CURRENTDIR" 
rm -rf "$TEMPDIR.zip" 
rm -rf "$TEMPDIR" 
rm -rf "$RESOURCERULES" 
+0

कूल, धन्यवाद आदमी! लेकिन मैं स्क्रिप्ट का उपयोग कैसे करूं :) मेरे पास com.something.something के साथ एक आईपीए है और मैं com.mycompany.something में बदलना चाहता हूं? – Ompah

+0

हां। बस इसे Info.plist में बदलें। मैंने आईडी com.apple.iBooks के साथ कल एक परीक्षण ऐप पर हस्ताक्षर किए, यह देखने के लिए कि क्या होगा, और यह ठीक काम करता है। –

+0

स्क्रिप्ट को टेक्स्ट फ़ाइल के रूप में सहेजें, टर्मिनल में जाएं, सीडी स्क्रिप्ट की निर्देशिका में, chmod + x nameOfFile.sh, और फिर चलाएं ./NameOfScript.sh IPAName.ipa –

2

यह अब तक का सबसे प्रभावी और कुशल समाधान है।

  1. सुनिश्चित करें कि आप मैक का उपयोग कर रहे हैं। इस प्रक्रिया को मैक ओएसएक्स के लिए एक एप्लिकेशन की आवश्यकता है।

  2. .ipa फ़ाइल ले लो, इसे एक .zip फ़ाइल में पुनर्नामित करें।

  3. ज़िप फ़ाइल निकालें, आपको एक "एप फ़ाइल" युक्त "पेलोड" नामक फ़ोल्डर दिखाई देगा।

  4. डाउनलोड मैक OSX एप्लिकेशन AppResigner यहाँ: http://www.gorbster.net/misc/AppResigner.app.zip

  5. खोल दो अनुप्रयोग। अनजिप किए गए फ़ोल्डर के अंदर आप मैक ऐप "AppResigner"

  6. देखेंगे इस ऐप को खोलें। यह आपको एक फाइल चुनने के लिए कहेगा। .appa फ़ाइल से अनजिप किए गए .app को चुनें।

  7. यह आपको एक हस्ताक्षर पहचान के लिए पूछेगा। मैक ऐप "कीचेन एक्सेस" खोलें। आप जो कदम उठाएंगे वे थोड़ा भिन्न हो सकते हैं। कीचेन "लॉगिन" खोलें और श्रेणी "प्रमाणपत्र"

  8. यहां आपको वह प्रमाणपत्र ढूंढना होगा जिसके साथ आप ऐप को इस्तीफा देना चाहते हैं। उदाहरण के लिए यह हो सकता है: "आईफोन वितरण: आपकी कंपनी का नाम", आपको वितरण प्रमाण पत्र का उपयोग करने के लिए अपनी कंपनी की वितरण प्रोफ़ाइल तक पहुंच की आवश्यकता होगी। मैंने विकास प्रमाण पत्र के साथ ऐसा करने की कोशिश नहीं की है, मुझे नहीं पता कि यह काम करेगा या नहीं।

  9. इस प्रमाणपत्र नाम में टाइप करें जैसा कि यह यहां AppResigner प्रॉम्प्ट में दिखाया गया है; कॉपी/पेस्ट मेरे लिए सही ढंग से काम नहीं कर रहा था।

  10. AppResigner आपको यह बताना चाहिए कि ऐप को इस्तीफा दे दिया गया है।

  11. .app फ़ाइल को इस्तीफा दे दिया है (यह पहले की तरह ही एक है) का पता लगाएं और यह ज़िप ऊपर। मैं मैक ओएसएक्स प्रोग्राम केका का उपयोग करता हूं, लेकिन कई उपलब्ध हैं।

  12. ज़िप फ़ाइल को एक .ipa फ़ाइल में पुनर्नामित करें।

  13. हो गया!

+0

पहाड़ शेर उपयोगकर्ताओं के लिए, नीचे भी पंक्ति जोड़ें: निर्यात CODESIGN_ALLOCATE = "/ अनुप्रयोग/Xcode.app/सामग्री/डेवलपर/usr/bin/codeign_allocate" – Meet

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