मैं Xcode से वास्तविक iPhone डिवाइस पर iPhone एप्लिकेशन को कैसे तैनात कर सकता हूं?


157

मैं US $ 99 Apple प्रमाणपत्र के बिना Xcode से वास्तविक iPhone डिवाइस पर iPhone एप्लिकेशन को कैसे लागू कर सकता हूं?


इस प्रश्न का उत्तर देखें कि मैंने पहले एक बहुत अच्छे गाइड के लिए पूछा था कि इसे अपने जेलबॉर्न आईफोन पर कैसे रखा जाए।
दान वॉकर


2
Xcode 7 में अब नि: शुल्क प्रावधान है, ताकि वास्तविक डिवाइस पर ऐप्स का परीक्षण करने के लिए Apple डेवलपर खाते के लिए साइन अप करने की आवश्यकता न हो। देखें इस उत्तर अधिक जानकारी के लिए।
सुरगाछ

जवाबों:


56

ऐसा लगता है कि एप्लिकेशन साइन नहीं है। Cydia से ldid डाउनलोड करें और फिर इसे इस तरह उपयोग करें:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

यह भी सुनिश्चित करें कि बाइनरी को निष्पादन योग्य के रूप में चिह्नित किया गया है: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph


3
हां, आपको इस विधि को काम करने के लिए अपने डिवाइस को जेलब्रेक करना होगा। (स्पष्ट रूप से)
५२ पर

आप कमांड ldid -S कैसे लॉन्च करते हैं ...? क्या आपको उसके लिए SSH कंसोल की आवश्यकता है? वहाँ एक मुक्त तरीका है एक SSH ग्राहक एक जेलबोन IPhone पर पाने के लिए?
दान लेहु

टैंडरसन: Cydia में एक ldid पैकेज है और आप OS X के लिए एक संकलन कर सकते हैं
rpetrich

rpetrich मेरा मानना ​​है कि उनके प्रश्न हैं कि कमांड कैसे टाइप करें और उसका उपयोग करें, न कि पैक कैसे प्राप्त करें। @ टैंडरसन आप ओपन एसएसएच के माध्यम से जा सकते हैं (और फिर अपने डेस्कटॉप से ​​फोन से कनेक्ट कर सकते हैं ) या आईफोन के अंदर एक टर्मिनल । दोनों ऐप Cydia से मुफ्त डाउनलोड हैं । SSH के साथ आपको यह फायदा होगा कि आप इसका उपयोग केवल अपने ऐप को फोन से कॉपी करने के लिए भी कर सकते हैं। यदि आप ऐसा करते हैं, तो अन्य उत्तरों की जांच करना सुनिश्चित करें - आप XCode को सारे काम कर सकते हैं, लेकिन ऐसा करने के लिए इसे ट्रिक करना एक परेशानी भरा काम है।
cregox

92

: मैं दो howtos का मिश्रण का उपयोग किया है जेसन के और एलेक्स के । दूसरे के साथ हमें डिबग करने में सक्षम होने का फायदा है। मैं ज्यादातर सिर्फ दोनों को कॉपी करूँगा (और एलेक्स को सरल करूँगा):

अद्यतन जनवरी 2012: यह अभी भी एसडीके 4.2.1 और आईओएस 5.0.1 पर काम करता है - मैंने अभी-अभी इसे एक नए कंप्यूटर और डिवाइस पर परीक्षण किया है!


1. स्व-हस्ताक्षरित प्रमाण पत्र बनाएं

इस प्रमाणपत्र के उपयोग की अनुमति देने के लिए अपने iPhone SDK को पैच करें:

  1. चाबी का गुच्छा Access.app लॉन्च करें। किचेन मेनू से चयनित कोई आइटम नहीं होने पर, प्रमाणपत्र सहायक का चयन करें, फिर एक प्रमाणपत्र बनाएं।

    • नाम: iPhone डेवलपर
    • प्रमाणपत्र प्रकार: कोड हस्ताक्षर
    • मुझे चूक को ओवरराइड करने दें: हाँ
  2. जारी रखें पर क्लिक करें

    • वैधता: 3650 दिन
  3. जारी रखें पर क्लिक करें

  4. ईमेल पता फ़ील्ड को खाली करें

  5. पूरा होने तक जारी रखें पर क्लिक करें ।

    आपको "यह मूल प्रमाणपत्र विश्वसनीय नहीं है" देखना चाहिए । यह अपेक्षित है।

  6. स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करने की अनुमति देने के लिए iPhone एसडीके सेट करें:

    sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist

    यदि आपके पास Xcode खुला है, तो इस बदलाव को प्रभावी होने के लिए इसे फिर से शुरू करें।

और अगर आप iOS 5 पर हैं, तो बस! अब इसे आजमाओ! यह डिबगिंग की अनुमति नहीं दे सकता है, लेकिन ऐप होगा!

मुझे इस बात से बहुत आश्चर्य हुआ, क्योंकि जैसा कि आपको पता होना चाहिए , मुझे इस बारे में कोई जानकारी नहीं है कि उन सभी हैकिंग के बारे में क्या है! जैसा कि मैंने बताया, मैंने जो कुछ भी पाया, उसमें मैं थोड़ा सुधार कर रहा था।

तो हाँ, पूरी विधि अब उसी तरह से काम नहीं करती है और मैं एक नया खोजने के लिए परेशान नहीं कर सकता ... इसके अलावा , जो थियोस नामक एक उपकरण का उपयोग करता है, लेकिन मैं पूरी प्रक्रिया से नहीं गुजर सकता।

अंत में, यदि आपको इसे किसी भी कारण से अनइंस्टॉल करने की आवश्यकता है, तो इस पोस्ट के अंत की जांच करें। मेरे मामले में, मुझे यह पता लगाना था क्योंकि मैं यह पता नहीं लगा सका कि नीले रंग की यह पूरी विधि क्यों काम करना बंद कर देती है, और मैं अब और देखभाल नहीं कर सकता क्योंकि हमें पहले से ही लंबे समय से प्रतीक्षित लाइसेंस मिल गया है। (झल्लाहट भरी संख्या में इतना समय लगता है ...)


2. Jailbroken डिवाइस पर निर्माण करने के लिए Xcode सक्षम करें

  1. अपने जेलब्रेक किए गए iPhone पर, App Appync को स्रोत ** http://repo.hackyouriphone.org ** से जोड़कर इंस्टॉल करें

  2. कोड साइन और एंटाइटेलमेंट के लिए SDK आवश्यकताएं निकालें (मैं sed प्यार कर रहा हूँ !):

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
  3. iPhoneOS5.0.sdkभाग पर ध्यान दें। यदि आप, उदाहरण के लिए, iOS 4.2 SDK का उपयोग कर रहे हैं, तो इसे तदनुसार बदलें:

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
  4. पैचिंग Xcode के माध्यम से आवश्यकता को हटाने का निष्कर्ष निकालें। इसका मतलब है बाइनरी एडिटिंग:

    cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
    dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
    printf "\xc3\x26\x00\x00" >> working
    /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
    /bin/mv working iPhoneOS\ Build\ System\ Support
    chmod a+x iPhoneOS\ Build\ System\ Support

    यदि आपके पास Xcode खुला है, तो इसे बदलने के लिए इसे पुनः आरंभ करें (और अंतिम) प्रभावी होने के लिए।

  5. ओपन "परियोजना> परियोजना सेटिंग्स संपादित करें" (मेनू से)। "बिल्ड" टैब पर क्लिक करें । सूची में "कोड साइनिंग आइडेंटिटी" और उसके बच्चे को "कोई भी iPhoneOS डिवाइस" ढूंढें , और दोनों को "साइन न करें" प्रविष्टि में सेट करें :

    वैकल्पिक शब्द

    इस चरण को पूर्ववत करने के लिए स्वतंत्र महसूस होने के बाद 3. कम से कम मेरे मामले में यह ठीक चला।

  6. हमारे कस्टम मेड स्व-हस्ताक्षरित प्रमाणपत्र (पहले कैसे-करें) के साथ कोड कोड पर Xcode सेट करना । यदि आप डिबग करने में सक्षम नहीं होना चाहते हैं तो यह कदम संभवत: छोड़ दिया जा सकता है:

    mkdir /Developer/iphoneentitlements401
    cd /Developer/iphoneentitlements401
    curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
    mv gen_entitlements.txt gen_entitlements.py
    chmod 777 gen_entitlements.py

    अपने iPhone को प्लग इन करें और Xcode खोलें। विंडो खोलें> आयोजक। बाएं हाथ की तरफ सूची से डिवाइस का चयन करें, और "विकास के लिए उपयोग करें" पर क्लिक करें। आपको एक प्रोविजनिंग वेबसाइट लॉगिन के लिए संकेत दिया जाएगा, रद्द करें पर क्लिक करें। यह वैध प्रावधान आसान बनाने के लिए है, लेकिन नाजायज नहीं प्रावधान को और अधिक कठिन बना देता है।

    अब आपको अपने द्वारा बनाए गए हर नए प्रोजेक्ट के लिए यह अंतिम भाग करना होगा । मेनू प्रोजेक्ट> न्यू बिल्ड फेज> न्यू रन स्क्रिप्ट बिल्ड फेज पर जाएं। विंडो में, इसे कॉपी / पेस्ट करें:

    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
    codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
    fi


की स्थापना रद्द

पहले भाग के लिए:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist

दूसरे भाग के लिए:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support

यदि आपने चरण 3 को 2 के बजाय किया है, तो इसे तदनुसार संशोधित करें:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist

बाकी के लिए, सिर्फ XCode पर आपके द्वारा किए गए और /Developer/iphoneentitlements401/gen_entitlements.pyयदि आप चाहते हैं तो हटा रहे हैं:

sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py

इन निर्देशों का पालन करने की कोशिश की, लेकिन अब 'स्कीम' मेरा मैक 64 बिट प्रकार का है, और मेरे पास अब सिम्युलेटर या असली आईफोन चलाने का कोई विकल्प नहीं है, इसलिए मैं कोड का परीक्षण भी नहीं कर सकता। मैं एसडीके 4.3 का उपयोग कर रहा था, निश्चित नहीं कि अगर मायने रखता है
nosatalian

1
दरअसल, अपडेट: आईफोन 4.3 से आईओएस 4.3 तक प्रोजेक्ट सेटिंग्स में बेस एसडीके को बदलने के बाद काम होता है। हालांकि xcode का कहना है कि 'दूरस्थ प्रोग्राम लॉन्च करने में त्रुटि: प्रक्रिया के लिए कार्य प्राप्त करने में विफल रहा' मैं इस पर क्लिक करके ऐप लॉन्च कर सकता हूं।
nosatalian

1
मुझे यह त्रुटि मिलती है: The identity used to sign the executable is no longer valid. ... (0xE8008018) यहां तक ​​कि जब मैं समाप्त करने के लिए 3650 दिन डालता हूं। ऐसा लगता है जैसे फोन खुद चेक कर रहा हो।
स्टीफन

यह "पैचिंग XCode" चाल 4.3.2 के लिए काम करता है या इसे इसे ब्रेक करने वाला है
गैबोर

1
बिंदु 6. मेरे मामले में मुझे सामान्य उपयोगकर्ता को प्राप्त करने के लिए /Developer/iphoneentitlements401/gen_entitlements.py फ़ाइल अनुमतियों को बदलना पड़ा। इसके साथ यह प्रक्रिया पूरी तरह से काम करती है।
abidibo

43

Xcode 7 के बाद मुफ्त प्रावधान

Apple डेवलपर शुल्क (या अपने डिवाइस को जेलब्रेक) का भुगतान करने के बजाय एक वास्तविक डिवाइस पर अपने ऐप का परीक्षण करने के लिए, आप नए मुफ्त प्रावधान का उपयोग कर सकते हैं जो Xcode 7 और iOS 9 का समर्थन करता है।

यहां प्रलेखन से अधिक या कम कदम उठाए गए हैं (जो बहुत अच्छा है, इसलिए इसे पढ़ें):

1. Xcode में अपनी Apple ID जोड़ें

XCode> प्राथमिकताएं> खाता टैब> बटन जोड़ें (+)> Apple आईडी जोड़ें पर जाएं। अधिक सहायता के लिए डॉक्स देखें ।

यहां छवि विवरण दर्ज करें

2. प्रोजेक्ट नेविगेटर में सामान्य टैब पर क्लिक करें

यहां छवि विवरण दर्ज करें

3. टीम पॉपअप मेनू से अपनी ऐप्पल आईडी चुनें।

यहां छवि विवरण दर्ज करें

4. अपने डिवाइस से कनेक्ट करें और इसे स्कीम मेनू में चुनें।

यहां छवि विवरण दर्ज करें

5. फिक्स इश्यूज बटन पर क्लिक करें

यहां छवि विवरण दर्ज करें

यदि आपको बंडल नाम अमान्य होने के बारे में कोई त्रुटि मिलती है, तो उसे कुछ विशिष्ट में बदल दें।

6. अपना ऐप चलाएं

Xcode में, Build और run बटन पर क्लिक करें।

यहां छवि विवरण दर्ज करें

7. डिवाइस सेटिंग में ऐप डेवलपर पर भरोसा करें

अपना ऐप चलाने के बाद, आपको एक सुरक्षा त्रुटि मिलेगी क्योंकि आप जिस ऐप को चलाना चाहते हैं वह ऐप स्टोर से नहीं है।

यहां छवि विवरण दर्ज करें

अपने डिवाइस पर , सेटिंग> सामान्य> प्रोफ़ाइल> अपने ऐप्पल-आईडी-नाम > ट्रस्ट -ऐप्पल-आईडी-नाम > ट्रस्ट पर जाएं।

8. अपने ऐप को फिर से अपने डिवाइस पर चलाएं।

बस। अब आप $ 99 डॉलर की डिश के बिना अपना खुद का (या कोई अन्य ऐप जिसके लिए आपके पास स्रोत कोड है) चला सकते हैं। धन्यवाद, Apple, आखिरकार इसकी अनुमति देने के लिए।


1
बहुत बहुत धन्यवाद। यह भुगतान किए गए Apple डेवलपर लाइसेंस के बिना पूरी तरह से काम करता है।
किश्नर 747

इसमें कुछ समस्याएं हैं, हालांकि - आप केवल एक समय में 3 ऐप्स तक ही इंस्टॉल कर सकते हैं, और आपको हर हफ्ते प्रमाणपत्र को नवीनीकृत करना होगा।
सिल्वरवॉल्फ - मोनिका

@seaturtle, अपडेट के लिए धन्यवाद। मैंने अंततः डेवलपर लाइसेंस के लिए पैसे वापस कर दिए, इसलिए मैंने इस उत्तर पर तारीख नहीं रखी। यह सीमाओं के बारे में बहुत बुरा है। Android के बारे में कुछ बातें हैं जो Apple की तुलना में बहुत अच्छे हैं।
सुरगाछ

9

आप नहीं कर सकते, यदि आप आधिकारिक SDK के साथ बनाए गए अनुप्रयोगों के बारे में बात कर रहे हैं और सीधे xcode से तैनाती कर रहे हैं।


8

आपको अपने डिवाइस को जेलब्रेक करना होगा।


1
@ Rpetrich की विधि का पालन करें और डिवाइस / एप्लिकेशन फ़ोल्डर में निष्पादन योग्य SSH, यह एक रिबूट / फिर से शुरू करने के बाद काम करना चाहिए।
एस्क्यू जूल

6

ऐप्पल को भुगतान किए बिना आईफोन एप्लिकेशन को तैनात करने का एक तरीका है आपको अपने डिवाइस को जेलब्रेक करना होगा और http://www.alexwhittemore.com/?p=398 में दिए गए निर्देशों का पालन करना होगा


यह भी एक आदर्श मार्गदर्शक है, @ दान से अलग दृष्टिकोण के साथ ... मैंने दोनों का उपयोग किया, थियो।
21

5

मैंने कहीं भी नहीं देखा है कि आप एक (बिना भुगतान किए) प्रमाण पत्र के बिना एक वास्तविक iPhone के लिए तदर्थ तैनाती को इंगित कर सकते हैं।


4

मैं कल रात Apple डेवलपर के माध्यम से जा रहा था और वहां प्रोविजनिंग सर्टिफिकेट में मुझे कुछ ऐसा मिला - "साइनिंग टीम मेंबर्स"। मुझे लगता है कि भुगतान किए गए प्रोफ़ाइल में टीम के सदस्यों को जोड़ने का एक तरीका है। आप टीम के सदस्य के रूप में आपको जोड़ने के लिए बस ऐप आईडी ओनर (भुगतान किया हुआ) से पूछ सकते हैं। मुझे यकीन नहीं है। अभी भी उस पर खोज कर रहे हैं।


हां आप टीम के सदस्यों को जोड़ सकते हैं। प्रति वर्ष 200 उपकरणों की सीमा है।
क्रैगॉक्स

कावा - क्या आप जानते हैं कि अपने ऐप्पल आईडी में एक सदस्य कैसे जोड़ें?
अक्षय

यदि आप नाम से पहले @ जोड़ते हैं तो हमें केवल सूचनाएं मिलती हैं। जैसा कि आपने स्वयं कहा है, आपको सबसे पहले एक भुगतान खाता प्राप्त करना होगा। फिर यह वास्तव में सरल होना चाहिए क्योंकि मैं इसे कैसे करना है पर कोई भी ट्यूटोरियल नहीं ढूंढ सका। मैंने खुद ऐसा कभी नहीं किया था।
क्रेगॉक्स

3

नहीं, ऐसा करना आसान है। Xcode में, सक्रिय कॉन्फ़िगरेशन को रिलीज़ करने के लिए सेट करें। सिम्युलेटर से डिवाइस में डिवाइस बदलें - जो भी एसडीके। यदि आप सीधे अपने iPhone पर निर्यात करना चाहते हैं, तो इसे अपने कंप्यूटर से कनेक्ट करें। प्रेस बनाएँ और जाओ। यदि आपका iPhone आपके कंप्यूटर से कनेक्ट नहीं है, तो एक संदेश आएगा जिसमें कहा जाएगा कि आपका iPhone कनेक्ट नहीं है।

यदि यह आपके लिए लागू होता है: (iPhone कनेक्ट नहीं था)

अपने प्रोजेक्ट फ़ोल्डर में जाएं और फिर अंदर फ़ोल्डर का निर्माण करें। रिलीज़-iphoneos फ़ोल्डर में जाएं और ऐप को अंदर ले जाएं, iTunes आइकन पर खींचें और छोड़ें। जब आप अपने iTouch डिवाइस को सिंक करते हैं, तो वह इसे आपके डिवाइस पर कॉपी कर देगा। यह आईफोन में आईफोन के लिए एक एप्लिकेशन के रूप में भी दिखाई देगा।

उम्मीद है की यह मदद करेगा!

पुनश्च: यदि यह किसी प्रमाणपत्र के वैध नहीं होने के बारे में कुछ कहता है, तो बस Xcode में प्रोजेक्ट पर क्लिक करें, फ़ाइल स्टैक में बाईं ओर स्थित छोटा प्रोजेक्ट आइकन, और Apple + I दबाएं, या मेनू बार से Get Info करें। शीर्ष पर बिल्ड पर क्लिक करें। कोड साइनिंग के तहत, कोड साइनिंग आइडेंटिटी बदलें - कोई भी आईफोन ओएस डिवाइस साइन न करें।


7
ओपी के पास एक हस्ताक्षर प्रमाण पत्र या प्रोविजनिंग प्रोफाइल नहीं है। ये निर्देश सदस्यों के लिए हैं यदि $ 99 iPhone डेवलपर प्रोग्राम लेकिन प्रोग्राम के लिए साइन अप किए बिना डिवाइस पर कैसे चलाएं, इस सवाल का समाधान न करें।
सीडीस्पिनोसा

2

यह वास्तव में सभी पर निर्भर करता है कि आप Xcode के किस संस्करण का उपयोग कर रहे हैं, विभिन्न संस्करण एक प्रोविज़निंग प्रोफ़ाइल के बिना आपके iPhone पर तैनात करने के लिए विभिन्न तरीकों का उपयोग करते हैं।

Xcode 3.2.1 एक अच्छा संस्करण है और इसे सुलझाना आसान है, लेकिन हमें यह जानना होगा कि आप किस संस्करण का उपयोग कर रहे हैं।


2

Cawas द्वारा पोस्ट किया गया समाधान XCode4 के साथ भी पूरी तरह से काम करता है। हालाँकि, IDE के UI में कुछ बदलाव हैं, इसलिए आपको रन स्क्रिप्ट खोजने के लिए कुछ शोध करने की आवश्यकता है :)

प्रोजेक्ट नेविगेटर दृश्य में प्रोजेक्ट के मूल आइटम पर क्लिक करें, फिर मध्य विंडो में लक्ष्य का चयन करें, फिर बिल्ड चरणों पर क्लिक करें और सबसे नीचे आपको Add Build चरण बटन दिखाई देगा, क्लिक करें और रन स्क्रिप्ट जोड़ें का चयन करें, फिर "codeign" पेस्ट करें "स्क्रिप्ट कावा द्वारा पोस्ट की गई।


1

कोई वर्कअराउंड नहीं है। यदि आप अपने डिवाइस के साथ पंजीकृत हैं, तो आप केवल हॉक परिनियोजन ऐप्स को ही देख सकते हैं। यह आपको अपना खुद का ऐप स्टोर बनाने से रोकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.