Bu amaca ulaşmak için aşağıdaki öğretim adımları atılır:
http://iphonedevwiki.net/index.php/Xcode
Bulgularım ve eylemlerim her adımda verilmektedir.
1. Keychain Access kullanarak “login” (varsayılan) anahtar zincirinde “iPhone Developer” adıyla kendinden imzalı bir kod imzalama sertifikası oluşturun.
- Yukarıdaki talimatları izlediğimde ekran görüntüleri aldım.
- Alanların çoğunu boş veya varsayılan değerlerinde bıraktım.
2. Açın /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
(4.2 veya altı:) /Developer/Platforms/iPhoneOS.platform/Info.plist
. Kök iznine ihtiyacınız olabilir.
- Xcode 4.6 kullanıyorum, bu yüzden eski
.plist
dosyayı açtım .
Tüm tekrarlarını değiştirmek 3. XCiPhoneOSCodeSignContext
tarafından XCCodeSignContext
. Üç tane var (XCode Sürüm 3.2.4+).
- Ekran görüntülerinin gösterdiği gibi üç değişiklik yaptım.
4. Dosyayı kaydedin ve Xcode'u yeniden başlatın.
5. Mac'inizde ldid olduğundan emin olun. Bir kopyasını bir yere yerleştirin, örneğin /usr/local/bin
.
6. ldid programının hemen yanında bir Python betiği ldid3.py oluşturun. Yürütülebilir yapın. Doldurun:
#!/usr/bin/env python
from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile
app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])
if '-gta' not in argv:
check_call([ldid_path, '-S', obj_path])
else:
with NamedTemporaryFile('w+b', 0) as f:
f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
""")
check_call([ldid_path, '-S' + f.name, obj_path])
- Yeni bir düz metin dosyası oluşturdum ve yukarıdaki kodu kopyaladım.
- Bu dosyayı olarak kaydettim
ldid3.py
ve /usr/local/bin
dizinde sakladım.
- Terminalde koştu
chmod 777 /usr/local/bin/ldid3.py
.
7. Açın iPhoneCodeSign.xcspec
. Bu dosya [Xcode 4.6 için: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
] içinde bulunabilir:
8. Dosyadaki girdiyi arama yerine olarak codesign
değiştirin ldid3.py
.
- Talimat resmi talimatına göre, konsolda yazarak spec dosyasını düz metne dönüştürdü:
sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
- Dosyayı TextEdit ile açtım.
- Değiştirilen
<key>CommandLine</key><string>/usr/bin/codesign</string>
ile <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
.
9. Dosyayı kaydedin ve Xcode'u yeniden başlatın.
- Dosyayı kaydettim ve TextEdit'ten çıktım.
10. /var/mobile/tdmtanf
Apple'ın "TDMTANF baypasını" yüklendiğinde etkinleştirmek için cihazda bir dosya oluşturun (uyarı: bunu yapmanız sizi korumalı bir GameCenter'a da koyacaktır).
- Windows'ta boş bir metin dosyası oluşturdum, adını
tdmtanf
verdim, iPod'uma SSH'd, yükledim ve iPod'umu yeniden başlattım /var/mobile/
.
Şimdi her şey bitti ...
Mevcut Xcode projemi açıp Çalıştır'ı tıklıyorum. İOS Simulator'da sorunsuz çalışır.
Kod İmzalamanın 1. adımda ayarlanan sertifikayı kullanacak şekilde ayarlandığından emin olurum.
Uygulamayı oluşturuyorum (Project> Build). Bunu bir başarı mesajı takip eder.
Benim app klasörü kapmak TicTacToe.app
gelen /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
ve iPod'uma yüklemek benim, Windows makineye aktarmak.
Uygulamayı iPod'uma yüklemek için TicTacToe.app
iPhone Configuration Utility'nin uygulamalar bölümüne sürüklüyorum , ancak uygulamamın "geçerli bir mobil uygulama olmadığını" belirten bu hata iletisini aldım.
Ben elle de kullanarak uygulamayı yüklerken denedi iFunbox ve AppCake Cydia bulundu uygulamayı. Her ikisi de başarısız.
Bir ilgi noktası olarak, Google'da dolaştığım için, birçok kişinin bunun öneminden bahsettiğini fark ettim: AppSync yükledim. (Büyük ekran görüntüsü için özür dilerim. İndirmem gerekirse lütfen bize bildirin!)
Sonuç
Talimatları yakından izlememe rağmen, uygulamam iPhone Yapılandırma Yardımcı Programı tarafından geçerli bir uygulama olarak tanınmıyor. İFunbox gibi programları veya AppCake gibi Cydia uygulamalarını kullanarak uygulamayı manuel olarak yükleyemiyorum.
Uygulamanın gerçekten geçersiz olduğundan şüpheleniyorum, ancak talimatları dikkatlice izledikten sonra neden olduğundan emin değilim.
Biri bana uygulamamın neden geçerli olmadığını ve bunu düzeltmek için neler yapabileceğimi söyleyebilir mi?