99 dolarlık bir Apple sertifikasına sahip olmadan bir iPhone uygulamasını Xcode'dan gerçek iPhone cihazına nasıl dağıtabilirim?
99 dolarlık bir Apple sertifikasına sahip olmadan bir iPhone uygulamasını Xcode'dan gerçek iPhone cihazına nasıl dağıtabilirim?
Yanıtlar:
Uygulama imzalanmamış gibi görünüyor. Cydia'dan ldid'i indirin ve ardından şu şekilde kullanın:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Ayrıca, ikili dosyanın yürütülebilir olarak işaretlendiğinden emin olun: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
İki howtos karışımı kullandım: Jason ve alex . İkincisi ile hata ayıklama avantajımız var. Çoğunlukla her ikisini de kopyalayacağım (ve alex'leri basitleştireceğim):
Güncelleme Ocak 2012: Bu hala SDK 4.2.1 ve iOS 5.0.1'de çalışıyor - Hepsini yeni bir bilgisayar ve cihazda test ettim!
Bu sertifikanın kullanılmasına izin vermek için iPhone SDK'nızı yamalayın:
Keychain Access.app uygulamasını başlatın. Hiçbir öğe seçilmeden Anahtarlık menüsünden Sertifika Yardımcısı'nı ve ardından Sertifika Oluştur'u seçin.
Devam'ı tıklayın
Devam'ı tıklayın
Dışarı Boş E-posta adresi alanına.
Tamamlanana kadar Devam'ı tıklayın .
"Bu kök sertifikaya güvenilmiyor" ifadesini görmelisiniz . Bu bekleniyor.
İPhone SDK'sını kendinden imzalı sertifikanın kullanılmasına izin verecek şekilde ayarlayın:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Xcode açıksa, bu değişikliğin etkili olması için yeniden başlatın.
Ve iOS 5 kullanıyorsanız, hepsi bu! Şimdi dene! Hata ayıklamaya izin vermeyebilir, ancak uygulama orada olacak!
Buna çok şaşırdım çünkü bilmeniz gerektiği gibi , tüm bu saldırıların ne hakkında olduğu hakkında hiçbir fikrim yok! Yaptığım tek şey, başka bir yerde bulduğum şeyi biraz işaret etmekti.
Bu yüzden evet, tüm yöntem artık aynı şekilde çalışmıyor ve yeni bir tane bulmak için uğraşamadım ... Bunun dışında , Theos adlı bir araç kullanıyor, ancak tüm süreci gerçekleştiremedim.
Son olarak, herhangi bir nedenle kaldırmanız gerekirse , bu yayının sonunu kontrol edin. Benim durumumda, çünkü tüm bu mavinin tümünün neden çalışmayı bıraktığını anlayamadım ve uzun zamandır beklenen lisansı aldığımızdan artık umursamadım. (Korkunç DUNS numarası çok uzun sürüyor ...)
.
.
.
.
.
Jailbreak yapılmış iPhone'unuza kaynak ** http://repo.hackyouriphone.org ** ekleyerek AppSync uygulamasını yükleyin
Kod işareti ve yetkileri için SDK gereksinimlerini kaldırın ( sed seviyorum !):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Parçaya dikkat ediniPhoneOS5.0.sdk
. Örneğin, iOS 4.2 SDK kullanıyorsanız, uygun şekilde değiştirin:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Xcode ekini kullanarak gereksinim kaldırma işlemini sonlandırın. Bu ikili düzenleme anlamına gelir:
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 açıksa, bu değişikliğin (ve sonuncusunun) etkili olması için yeniden başlatın.
"Proje> Proje Ayarlarını Düzenle" yi açın (menüden). Tıklayın "Yapı" sekmesine. Listede "Kod İmza Kimliği" ve alt öğesi "Herhangi bir iPhoneOS Aygıtı" bulun ve her ikisini de "Kod İmzalama" girişine ayarlayın :
Bundan sonra 3. adımı geri almaktan çekinmeyin. En azından benim durumumda gayet iyi gitti.
Özel kodlu imzalı sertifikamızla (ilk nasıl yapılır) Xcode'u kod işaretine ayarlamak . Hata ayıklamak istemiyorsanız bu adım atlanabilir:
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
İPhone'unuzu takın ve Xcode'u açın. Pencere> Ajanda'yı açın. Sol taraftaki listeden cihazı seçin ve "Geliştirme için kullan" ı tıklayın. Bir provizyon web sitesi girişi yapmanız istenir, iptal'i tıklayın. Meşru provizyonu kolaylaştırmak için oradadır, ancak gayri meşru olmayan provizyonu daha zor hale getirmez.
Şimdi bu son bölümü yaptığınız her yeni proje için yapmanız gerekiyor . Project> New Build Phase> New Run Script Build Phase menüsüne gidin. Pencerede şunu kopyalayın / yapıştırın:
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
.
.
.
.
1. bölüm için:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
2. bölüm için:
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
2 yerine 3. adımı gerçekleştirdiyseniz, bunu da uygun şekilde değiştirin:
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
geri kalanı için, sadece XCode'da yaptıklarınızı geri döndürmek ve /Developer/iphoneentitlements401/gen_entitlements.py
isterseniz silmek :
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
The identity used to sign the executable is no longer valid. ... (0xE8008018)
3650 gün süresinin dolmasına rağmen. Telefonun kendisi bir çek yapıyor gibi görünüyor.
Uygulamanızı Apple Developer ücretini ödemek (veya cihazınızı jailbreak yapmak) yerine gerçek bir cihazda test etmek için Xcode 7 ve iOS 9'un desteklediği yeni ücretsiz provizyonu kullanabilirsiniz.
Belgelerden az ya da çok atılan adımlar (oldukça iyi, bu yüzden bir okuma yapın):
1. Apple Kimliğinizi Xcode'a ekleyin
XCode> Tercihler> Hesaplar sekmesi> Ekle düğmesi (+)> Apple Kimliği Ekle'ye gidin. Daha fazla yardım için dokümanlara bakın .
2. Proje Gezgini'nde Genel sekmesini tıklatın
3. Ekip açılır menüsünden Apple Kimliğinizi seçin.
4. Cihazınızı bağlayın ve şema menüsünden seçin.
5. Sorunları Düzelt düğmesini tıklayın
Paket adının geçersiz olduğu konusunda bir hata alırsanız, benzersiz bir adla değiştirin.
6. Uygulamanızı çalıştırın
Xcode'da, Oluştur ve çalıştır düğmesini tıklayın.
7. Uygulama geliştiricisine cihaz ayarlarında güvenin
Uygulamanızı çalıştırdıktan sonra, çalıştırmak istediğiniz uygulama App Store'dan olmadığından bir güvenlik hatası alırsınız.
Senin üzerinde cihazın , Ayarlar> Genel> Profil gidin> your-Elma-ID-name > Güven your-Elma-ID-name > Güven.
8. Uygulamanızı cihazınızda tekrar çalıştırın.
Bu kadar. Artık 99 $ 'lık para harcamak zorunda kalmadan kendi (veya kaynak koduna sahip olduğunuz diğer uygulamaları) çalıştırabilirsiniz. Sonunda buna izin verdiğiniz için Apple'a teşekkür ederim.
Cihazınızı jailbreak yapmanız gerekecek.
Apple'a ödeme yapmadan iPhone uygulamalarını dağıtmanın bir yolu var Cihazınızı jailbreak yapmanız ve http://www.alexwhittemore.com/?p=398 adresindeki talimatları uygulamanız gerekir.
Hiçbir yerde gördüğüm hiçbir şey, (ücretli) bir sertifika olmadan gerçek bir iPhone'a geçici olarak dağıtabileceğinizi göstermez.
Dün gece Apple Developer'dan geçiyordum ve orada Hazırlık Sertifikasında "Takım Üyelerini İmzalama" gibi bir şey buldum. Ücretli profile ekip üyeleri eklemenin bir yolu olduğunu düşünüyorum. Uygulama Kimliği Sahibinden (ücretli) sizi ekip üyesi olarak eklemesini isteyebilirsiniz. Emin değilim. Hala arıyorlar.
Hayır, bunu yapmak kolay. Xcode'da, Etkin Yapılandırmayı Serbest Bırak olarak ayarlayın. SDK ne olursa olsun cihazı Simülatör'den Cihaz'a değiştirin. İPhone'unuza doğrudan dışa aktarmak istiyorsanız, onu bilgisayarınıza bağlayın. Oluştur ve Git'e basın. İPhone'unuz bilgisayarınıza bağlı değilse, iPhone'unuzun bağlı olmadığını belirten bir mesaj görüntülenir.
Bu sizin için geçerliyse: (iPhone bağlı değil)
Projeler klasörünüze ve ardından içindeki oluşturma klasörüne gidin. Release-iphoneos klasörüne gidin ve uygulamayı içine alın, iTunes simgesine sürükleyip bırakın. İTouch cihazınızı senkronize ettiğinizde cihazınıza kopyalar. Ayrıca iTunes'ta iPhone için bir uygulama olarak görünecektir.
Bu yardımcı olur umarım!
Not: Bir sertifikanın geçerli olmadığı hakkında bir şey söylüyorsa, Xcode'daki projeye, soldaki dosya yığınındaki küçük proje simgesine tıklayın ve Apple + I tuşlarına basın veya menü çubuğundan Bilgi Al'ı tıklayın. Üst kısımdaki Oluştur'u tıklayın. Kod İmzalama altında, Kod İmzalama Kimliğini - İmzalanmayacak herhangi bir iPhone OS Aygıtını değiştirin.
Cawas tarafından gönderilen çözüm XCode4 ile de mükemmel çalışıyor. Ancak, IDE'nin kullanıcı arayüzünde bazı değişiklikler var, bu nedenle Run Script'i bulmak için biraz araştırma yapmanız gerekiyor :)
Proje Gezgini görünümünde projenin kök öğesini tıklatın, ardından orta pencerede Hedef'i seçin, ardından Oluşturma Aşamaları sekmesini tıklatın ve altta Oluşturma Aşaması Ekle düğmesini görürsünüz, tıklayın ve Çalıştır Komut Dosyası Ekle'yi seçin, ardından "codesign "script Cawas tarafından yayınlanmıştır.
Geçici çözüm yok. Uygulamaları yalnızca cihazınıza kayıtlı olmaları durumunda geçici olarak dağıtabilirsiniz. Bu, kendi uygulama mağazanızı oluşturmanızı önler.