2012-03-14 17 views
6

Tôi cần tạo tệp .xarchive trên iOS bằng hồ sơ nhà phát triển, mà khách hàng có thể từ chức bằng (các) hồ sơ phân phối của họ.Tôi làm cách nào để có thể ký tên vào iOS .xarchive để khách hàng có thể từ chức đúng cách? (sử dụng thông báo đẩy)

(Tôi đã đọc điều này, nhưng nó không có bất kỳ giải pháp thực tế: How can I send iOS app to client, for them to code-sign)

Các khách hàng không muốn chia sẻ các phím riêng của họ, và cũng không cho tôi tiếp cận trên 'cho nhà phát triển' ở trung tâm thành viên. Và chúng tôi không muốn chia sẻ mã nguồn của chúng tôi.

Chúng tôi cần hỗ trợ thông báo đẩy, vì vậy điều này có nghĩa là chúng tôi cần id ứng dụng đủ điều kiện.

Tôi không thể tìm ra cách cho phép tôi tạo và xuất .xarchive được ký với 'aps production', 'get-task-allow' là false, NHƯNG CSONG bằng cách sử dụng chứng chỉ khớp với chứng chỉ phân phối ứng dụng khách.

Điều này giống như một lỗi trong Xcode, không nên thay đổi thành 'sản xuất aps' và 'get-task-allow' được gắn với cấu hình, không phải loại hồ sơ cấp phép? Tôi đang sử dụng 'Phát hành', nhưng với hồ sơ nhà phát triển của tôi.

Tôi có thiếu thứ gì đó hoặc điều này không thể thực hiện được?

Trả lời

5

Tôi đã tìm ra câu trả lời cho câu hỏi này thông qua bản dùng thử và lỗi. Mặc dù các ghi chú về công nghệ và hầu hết các tài nguyên trên web đều nói rằng bạn không cần một entitlements.plist nếu bạn đang sử dụng XCode4 +, có một số trường hợp bạn làm. Hai trường hợp được đại diện bởi câu hỏi của tôi trên:

  • xây dựng cấu hình phát hành (ví dụ: Lưu trữ), nhưng ký hợp đồng với một nhà phát triển provisioning hồ sơ
  • sử dụng thông báo đẩy

entitlements.plist tùy chỉnh cuối cùng của tôi có 3 giá trị:

<?xml version="1.0" encoding="UTF-8"?> 
<!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> 
    <false/> 
    <key>aps-environment</key> 
    <string>production</string> 
    <key>keychain-access-groups</key> 
    <array> 
     <string>L23874DF.com.your.appid</string> 
    </array> 
</dict> 
</plist> 

Khi tôi đã có điều đó trong entitlements.plist, tôi đã xây dựng với hồ sơ cung cấp nhà phát triển cho id ứng dụng này. Sau đó, tôi đã lưu trữ và xuất lưu trữ từ trình tổ chức. Sau khi xuất, tôi đã gửi nó cho khách hàng của mình. Khách hàng đã có thể từ chức lưu trữ với một cấu hình đặc biệt và gửi lại cho tôi một tệp IPA mà tôi đã tải lên thiết bị của mình. Tôi cũng đã nhận được thông báo đẩy từ Urban Airship đến IPA này!

+0

"Khi tôi đã có điều đó trong entitlements.plist, tôi đã xây dựng với hồ sơ cấp phép dành cho nhà phát triển cho id ứng dụng này" => Bạn có nghĩa là bạn đã chỉ định hồ sơ nhà phát triển của mình cho bản sắc ký mã phát hành? Điều này ném một cảnh báo, bạn đã nhận được điều này? – Daniel

+0

vâng tôi nhận được cảnh báo đó khi xây dựng, nhưng đó là cách duy nhất để có được kết quả phù hợp sau khi ký lại. – pj4533

+5

Bạn có thể chia sẻ quy trình họ đã sử dụng để ký lại lưu trữ không? – Trey

Các vấn đề liên quan