Anlık bildirimleri alabilecek basit ve basit bir iOS uygulaması oluşturmak için çok çalışıyorum. Bunu yapmamın tek nedeni, diğer bazı ekip üyelerinin kullanması için bir prosedür oluşturmak ve web'de başka bir yerde bu tür talimatların güncel bir sürümünü bulamamaktır. Mağazamız iOS dev için oldukça yeni, kişisel olarak iOS dev ve Xcode ile tamamen deneyimsizim. Apple'dan ve başka yerlerden onlarca öğretici, makale ve sorunlu mesajla karşılaştım ve neredeyse orada olabileceğimi hissediyorum ...
İşte yapmam gereken yer (Xcode 4.3 kullanıyorum ve başlangıçta yalnızca iOS 5.1'e dağıtmaya çalışıyorum ve bazı şeylerin son zamanlarda Xcode'un önceki sürümlerine göre değişmiş olabileceğini unutmayın, ancak yine herkes için yeniyim bu - ve tamamen kafa karıştırıcı ve kıvrımlı bulmak):
1) iPhone'umda Push özellikli bir ön hazırlık profilim var
2) Test Xcode projemde imzalama kimliği olarak bu sağlama profilini seçtim (Yapı Ayarları> Kod İmzalama'da)
3) Özet ve Bilgi> Özel iOS Hedef Özellikleri'nin altında düzgün bir şekilde ayarlanmış paket tanımlayıcım var * (Sanırım ??)
4) Temsilcimin didFinishLaunchingWithOptions içinde aranan registerForRemoteNotificationTypes var
5) Temsilcimde didRegisterForRemoteNotificationsWithDeviceToken ve didFailToRegisterForRemoteNotificationsWithError var, sırasıyla cihaz belirtecini veya hatasını günlüğe kaydetmek için ayarlandı
6) Özet altında Yetkileri Etkinleştir seçeneğini işaretledim.
7) Seçilen Yetki Dosyasının hemen altında, Yetki Verileri Etkinleştir seçeneğini işaretlediğimde otomatik olarak oluşturulan Tinker6 (test projemin adı)
8) Tinker6.entitlements dosyasında aşağıdakileri aldım (topladığım, web üzerindeki birkaç farklı gönderiye göre doğru, ancak Apple'ın kendisinden kesin bir şey bulamadım):
Güncellenmiş
9) Ayrıca, her şeyi bir yetki dosyası olmadan denedim ve aslında aynı sonucu aldım.
10) Mobileprovision dosya içeriklerim yetkileri düzgün bir şekilde içeriyor (Numara ve alan adını karıştırdım, ancak yapısal olarak aynı):
<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>12355456A7.*</string>
</array>
/ güncellemeyi bitir
Bunu cihazımda çalıştırmayı denediğimde, Xcode çıktısında aşağıdaki hatayı alıyorum:
2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x24a3b0
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
Get-task-allow ayarlamayı denedim, üretime aps ortamı, dört olası kombinasyon, aynı şey.
Bunu nasıl aşabilirim? Bu konuda kesin belgeler nerede?
- daha fazla bilgi -
* Paket kimliğine göre, bunun Hazırlık profilindeki Uygulama Kimlikleri ve Profil kimlikleri ile ilgili olarak nasıl ayarlanması gerektiği konusunda hala net değilim. Uygulama Kimlikleri altındaki Temel Hazırlık portalında bu var (yine sayı ve etki alanını karıştırdık):
Ve iki yer demeti kimliği ayarlanır Bende:
Bunların doğru olduğundan veya bir veya her ikisinin 12355456A7.com.whatever.tinker olarak ayarlanıp ayarlanmayacağından emin değilim, ancak bu işlemi daha önce başarılı bir şekilde denemedim ...
Not Benzer başlıklara sahip birçok yazı olduğunu fark ettim, ancak bunların hepsi dosya adlarına ve verilen bilgilere göre güncelliğini yitirmiş gibi görünüyor ve çözümlerin hiçbirinin yararlı olmadığı gerçeği. Verdiğim daha fazla ayrıntı düzeyinin kaliteli bir yanıt vermesini umuyorum. Muhtemelen en kısa zamanda bir ödül atayacağım ve bir çözüme götüren yüksek kaliteli bir cevap verirseniz, size ödül vereceğim ve cevabınızı twitter ve blogum aracılığıyla teşvik edeceğim. Özellikle çapraz posta gönderirseniz gerçekten iyi bir " blogunuza ya da her neyse" provizyon ve başka herhangi bir şey de dahil olmak üzere çalışma basit bir push bildirim uygulaması almak için gereken tam 500 adım vardır.