2013-04-05 6 views
11

Tôi đã đọc nhiều bài đăng ở đây và thông qua tài liệu của Apple cả ngày. Không có bài đăng nào ở đây có câu trả lời và tài liệu không rõ ràng về vấn đề này.Thông báo đẩy iOS hoạt động cho Dev nhưng không phân phối doanh nghiệp

Chúng tôi có một ứng dụng đang nhận thông báo đẩy khi sử dụng hồ sơ nhà phát triển chứ không phải khi chúng tôi sử dụng hồ sơ phân phối Enterprise của mình.

ID ứng dụng được bật cho thông báo đẩy trong hộp cát.

cert và cả hai cấu hình đều được liên kết với id ứng dụng.

Nếu tôi tạo thông báo đẩy biểu mẫu Xcode thì sẽ ổn. Nếu tôi lưu trữ và phân phối máy chủ trả về:

[Failed to push 6dje7djksis7hyhdjshsjksjd74jdjskshdjd8dhjjdkwu for reason 8] 

Đó là mã thông báo không hợp lệ.

Một điều tôi nhận thấy là hồ sơ dev cung của chúng tôi có những điều sau đây cho aps-môi trường:

<key>aps-environment</key> 
<string>development</string> 

Trong khi hồ sơ cá nhân phân phối doanh nghiệp có:

<key>aps-environment</key> 
<string>production</string> 

Khi tôi chạy một debug xây dựng để điện thoại của tôi (tác phẩm đẩy) quyền của tệp .app là:

<key>aps-environment</key> 
<string>development</string> 

Khi tôi lưu trữ chúng luôn là (bất kể hồ sơ cấp phép nào tôi sử dụng hoặc sơ đồ):

<key>aps-environment</key> 
<string>production</string> 

Bất cứ ai có thể cho tôi biết nếu điều này được mong đợi? Không có câu hỏi nào khác trên trang web này mà tôi có thể tìm thấy thực sự đưa ra lý do Dev sẽ làm việc nhưng Enterprise Distribution thì không.

Tại sao lưu trữ luôn luôn tạo ra môi trường sản xuất aps?

Cảm ơn thời gian của bạn.

Cập nhật Điều này thật thú vị.

Từ:

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html

"Bạn phải có được giấy chứng nhận riêng cho sandbox (phát triển) môi trường và môi trường sản xuất Giấy chứng nhận có liên quan đến một định danh của ứng dụng đó là người nhận thông báo đẩy. Định danh này bao gồm ID gói của ứng dụng Khi bạn tạo hồ sơ cấp phép cho một trong các môi trường, các quyền cần thiết sẽ tự động được thêm vào hồ sơ, bao gồm quyền lợi cụ thể đối với các thông báo đẩy, Hai cấu hình cung cấp được gọi là Phát triển và phân phối Việc phân phối provisi oning profile là một yêu cầu để gửi ứng dụng của bạn tới App Store. "

Điều này có nghĩa là bạn không sử dụng hồ sơ phân phối trừ khi bạn định sản xuất. Điều đó có đúng không?Điều đó có vẻ lạ vì bạn có thể tạo hồ sơ phân phối doanh nghiệp trước khi đi tới cửa hàng ứng dụng.

Bất kỳ ai có ý tưởng về điều đó? Tôi không thể tìm thấy bất kỳ thông tin cụ thể nào trong tài liệu về điều đó.

Cảm ơn

+0

Cả hai sự phát triển và sản xuất các phiên bản của AppID đã thông báo đẩy kích hoạt (trên trang web provisioning Apple)? – GoZoner

+0

Ah! Câu hỏi tuyệt vời! Tôi nên nói điều đó. Không. Tôi cố tình không bao giờ kích hoạt hồ sơ sản xuất. Phía phát triển là màu xanh lá cây, bên sản xuất vẫn còn màu vàng trong cổng thông tin. – addzo

+1

Doanh nghiệp xây dựng sử dụng chứng nhận sản xuất/phân phối. Bạn sẽ cần phải kích hoạt nó và sử dụng nó với dịch vụ push của bạn. – Dancreek

Trả lời

11

Có 2 chứng chỉ đẩy cho ứng dụng của bạn. 1 cho phát triển và 1 cho sản xuất. Tìm trong phần chứng chỉ đẩy của cổng cung cấp.

Vì vậy, bất kỳ cơ chế đẩy nào bạn đang sử dụng để gửi đẩy cần phải được định cấu hình với chứng chỉ chính xác. Trong trường hợp của bạn, bản phát hành doanh nghiệp sẽ nhận được đẩy bằng chứng nhận sản xuất/phân phối.

+1

Đúng! Tôi đã làm một số xét nghiệm và thấy rằng không có cách nào để tạo dựng doanh nghiệp có giá trị môi trường của bất kỳ thứ gì ngoài sản xuất. Thật kỳ lạ với tôi rằng điều đó sẽ là sự thật. Mục đích của việc xây dựng Doanh nghiệp là gửi cho mọi người TRƯỚC KHI bạn đi vào sản xuất. Nhưng có nó. Bây giờ tôi chỉ cần tìm ra lý do tại sao gửi bản dựng cho mọi người làm cho thông báo đẩy không hoạt động ngay cả khi tôi phân phối sau khi xây dựng với hồ sơ nhà phát triển của tôi chứ không phải hồ sơ doanh nghiệp. Có lẽ nó biết bằng cách nào đó rằng nó không phải là đặc biệt. Cảm ơn Dancreek! – addzo

+7

Mục đích của Doanh nghiệp là dành cho các bản phát hành sản phẩm. Mục đích của nó được sử dụng bởi các công ty để sản xuất các công cụ nội bộ. Đó là một lộ trình sản xuất riêng, thay thế cho App Store. – Dancreek

+0

K. Đó cũng là thông tin tuyệt vời. Cảm ơn một lần nữa Dancreek! – addzo

1

Cả hai phiên bản phát triển và sản xuất của AppID cần phải bật thông báo đẩy trên trang web cung cấp hồ sơ của Apple.

+0

Tôi không chắc mình đang trong sáng. Chúng tôi chỉ chạy với Sandbox vào lúc này. Tại sao sản xuất cần phải được kích hoạt nếu chúng ta không sử dụng hồ sơ sản xuất? Vấn đề của chúng tôi là sử dụng hồ sơ phân phối Doanh nghiệp thay vì hồ sơ nhà phát triển làm cho việc ngừng đẩy hoạt động. Tôi đang thiếu gì? cảm ơn – addzo

+0

Vâng, thật dễ dàng để thử. Chỉ cần kích hoạt nó, cài đặt cấu hình cập nhật và xem. Hộp cát bạn sử dụng không liên quan. – GoZoner

+0

Ở bên cạnh tôi, tôi có cả hai hồ sơ chứa thông báo đẩy nhưng nó chỉ hoạt động với hồ sơ nhà phát triển không có phân phối ... tôi nên làm gì bây giờ? – preetam

1
  1. Sử dụng chứng chỉ sản xuất.
  2. Sử dụng sản xuất APN Host: gateway.push.apple.com thay vì phát triển APN: gateway.sandbox.push.apple.com
  3. Sử dụng sản xuất APN Phản hồi Host: feedback.push.apple.com.

Để biết thêm chi séc here