ฉันพยายามอย่างหนักในการสร้างแอพ iOS ที่เรียบง่ายซึ่งสามารถรับการแจ้งเตือนแบบพุชได้ เหตุผลเดียวของฉันในการทำเช่นนี้คือการสร้างขั้นตอนสำหรับสมาชิกในทีมอื่นที่จะใช้และไม่สามารถหาเวอร์ชันล่าสุดของคำแนะนำดังกล่าวที่ทำงานได้จากที่อื่นบนเว็บ ร้านค้าของเราค่อนข้างใหม่สำหรับ iOS dev โดยส่วนตัวแล้วฉันไม่มีประสบการณ์อย่างสมบูรณ์กับ iOS dev และ Xcode ฉันพบบทเรียนหลายบทความและโพสต์ปัญหาจาก Apple และที่อื่น ๆ และฉันรู้สึกว่าฉันอาจจะอยู่ที่นั่น ...
ที่นี่คือที่ที่ฉันต้องไป (โปรดทราบว่าฉันใช้ Xcode 4.3 และพยายามเริ่มปรับใช้กับ iOS 5.1 เป็นครั้งแรกและฉันรวบรวมว่าบางสิ่งอาจเปลี่ยนไปเมื่อเร็ว ๆ นี้เทียบกับ Xcode เวอร์ชันก่อนหน้านี้ แต่อีกครั้งฉันใหม่ทั้งหมด สิ่งนี้ - และพบว่ามันสับสนและสับสนอย่างสมบูรณ์):
1) ฉันมีโปรไฟล์การจัดสรรใน iPhone ซึ่งเปิดใช้งานการพุช
2) ในโครงการทดสอบ Xcode ของฉันฉันได้รับโปรไฟล์การจัดสรรที่เลือกเป็นข้อมูลประจำตัวการเซ็นชื่อ (ในการตั้งค่า Build> การเซ็นรหัส)
3) ฉันมีตัวระบุบันเดิลของฉันภายใต้สรุปและข้อมูล> ตั้งค่าคุณสมบัติเป้าหมาย iOS ที่กำหนดเองอย่างถูกต้อง * (ฉันคิดว่า ??)
4) ฉันได้รับการลงทะเบียนสำหรับการแจ้งเตือนประเภทที่ถูกเรียกในตัวแทนของฉันเสร็จสิ้นการเปิดใช้งานด้วยตัวเลือก
5) ฉันได้ลงทะเบียนสำหรับการแจ้งเตือนการแจ้งเตือนด้วยอุปกรณ์และการไม่ได้ลงทะเบียนสำหรับการแจ้งเตือนการแจ้งเตือนโดยมีข้อผิดพลาดในตัวแทนของฉันตั้งค่าให้บันทึกโทเค็นอุปกรณ์หรือข้อผิดพลาดตามลำดับ
6) ฉันได้ทำการเปิดใช้งาน Entitlements ภายใต้สรุป
7) ด้านล่างที่ไฟล์ Entitlements ที่เลือกคือ Tinker6 (ชื่อของโครงการทดสอบของฉัน) ซึ่งสร้างขึ้นโดยอัตโนมัติเมื่อฉันเลือกเปิดใช้งานการให้สิทธิ์
8) ในแฟ้ม Tinker6.entitlements ฉันมีดังต่อไปนี้ (ซึ่งผมได้รวบรวมถูกต้องขึ้นอยู่กับการโพสต์ที่แตกต่างกันทั่วเว็บ แต่ที่ผมไม่สามารถหาอะไรที่ชัดเจนจากแอปเปิ้ลเอง):
Updated
9) นอกจากนี้ฉันได้ลองทุกสิ่งโดยไม่ต้องมีไฟล์การให้สิทธิ์และได้รับผลลัพธ์เหมือนกัน
10) เนื้อหาไฟล์ mobileprovision ของฉันมีการให้สิทธิ์อย่างถูกต้อง (ฉันได้ตรวจสอบหมายเลขและโดเมน แต่มีโครงสร้างเหมือนกัน):
<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>
/ อัปเดตสิ้นสุด
เมื่อฉันพยายามเรียกใช้สิ่งนี้บนอุปกรณ์ของฉันฉันได้รับข้อผิดพลาดต่อไปนี้ในเอาต์พุต Xcode:
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 ให้เป็น NO, aps-environment กับการผลิต, ชุดค่าผสมที่เป็นไปได้ทั้งสี่แบบ, สิ่งเดียวกัน
ฉันจะผ่านสิ่งนี้ไปได้อย่างไร เอกสารที่ชัดเจนเกี่ยวกับเรื่องนี้อยู่ที่ไหน
- พื้นหลังเพิ่มเติมดังนี้ -
* เท่าที่เป็นรหัสบันเดิลฉันยังไม่ชัดเจนว่าควรตั้งค่าอย่างไรเกี่ยวกับรหัสแอปและรหัสโปรไฟล์ในโปรไฟล์การจัดเตรียม ในพอร์ทัลการจัดสรรภายใต้รหัสแอปฉันมีสิ่งนี้ (อีกครั้งกวนหมายเลขและโดเมน):
และตั้งค่าบันเดิลสองตำแหน่งฉันมีสิ่งนี้:
ฉันไม่แน่ใจเลยว่าสิ่งเหล่านี้ถูกต้องหรือควรตั้งค่าหนึ่งหรือทั้งสองเป็น 12355456A7.com.wh ก็ตาม.tinkerแม้ว่าฉันจะลองใช้วิธีก่อนหน้านี้โดยไม่ประสบความสำเร็จก็ตาม
หมายเหตุฉันรู้ว่ามีบทความจำนวนมากที่มีชื่อคล้าย ๆ กัน แต่ดูเหมือนว่าพวกเขาทั้งหมดจะล้าสมัยตามชื่อไฟล์และอื่น ๆ ที่ให้มาและความจริงที่ว่าไม่มีวิธีแก้ปัญหาที่ดูเหมือนจะมีประโยชน์ ฉันหวังว่ารายละเอียดในระดับที่สูงขึ้นฉันจะรับประกันการตอบสนองที่มีคุณภาพ ฉันอาจจะมอบรางวัลให้โดยเร็วที่สุดและถ้าคุณให้คำตอบที่มีคุณภาพสูงซึ่งนำไปสู่การแก้ปัญหาฉันจะมอบรางวัลให้คุณรวมทั้งส่งเสริมคำตอบของคุณผ่านทาง Twitter และบล็อกของฉัน โดยเฉพาะอย่างยิ่งหากคุณโพสต์แบบโพสต์ดีมาก "นี่คือขั้นตอน 500 ขั้นที่แน่นอนที่คุณต้องมีเพื่อให้แอปแจ้งเตือนแบบพุชทำงานได้ง่ายรวมถึงการจัดสรรและสิ่งอื่น ๆ " บทความในบล็อกของคุณ