Tôi đang cố tải ứng dụng lên cửa hàng ứng dụng và tôi gặp lỗi này trên trang có chứng chỉ. Theo như tôi có thể nói, tôi đã thay đổi trường để chúng khớp với nhau, nhưng tôi đang thiếu một cái gì đó.
Mọi sự trợ giúp sẽ rất được trân trọng.
Tôi đang cố tải ứng dụng lên cửa hàng ứng dụng và tôi gặp lỗi này trên trang có chứng chỉ. Theo như tôi có thể nói, tôi đã thay đổi trường để chúng khớp với nhau, nhưng tôi đang thiếu một cái gì đó.
Mọi sự trợ giúp sẽ rất được trân trọng.
Câu trả lời:
Tôi không rõ tại sao điều này lại khắc phục được sự cố, nhưng tôi đã vào tab Mục tiêu của khả năng, BẬT iCloud, cố gắng tạo bản lưu trữ, nó không thành công, tôi đã TẮT iCloud một lần nữa, cố gắng tạo bản lưu trữ và nó đã thành công, và sau đó nó có thể tự động phân giải lại các chứng chỉ.
Nhấp chuột phải vào Finder -> Chuyển đến Thư mục ...
~/Library/MobileDevice/Provisioning
Đối với Xcode 11
~/Library/MobileDevice/Provisioning Profiles/
Xóa tất cả hồ sơ cấp phép, xong.
~/Library/MobileDevice/Provisioning Profiles/
Ứng dụng bạn đã tạo có application-identifier
giá trị không chính xác đối với những gì mà hồ sơ cấp phép đang mong đợi. Chứng chỉ cho appID com.example.foo cho nhóm 2ABCDEFG sẽ yêu cầu số nhận dạng ứng dụng: 2ABCDEFG.com.example.foo, ứng dụng của bạn đã khai báo rằng appID của nó là com.example.foo, nhưng số nhận dạng ứng dụng không khớp , hoặc bạn đang sử dụng tiền tố nhóm sai hoặc bạn đã định cấu hình sai gói dữ liệu.
Trong trường hợp của tôi, tôi đang sử dụng các lược đồ xây dựng để cho phép tôi tạo ứng dụng sản phẩm và ứng dụng qa. com.example.foo cho sản phẩm và com.example.foo.qa cho QA. Tôi đã đặt gói định danh của mình trong Info.plist thành $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX), hoạt động tốt trong trình mô phỏng và trên thiết bị vì có các ứng dụng khác nhau, tuy nhiên, khi ứng dụng tạo mã nhận dạng ứng dụng trong giai đoạn lưu trữ, nó không được đọc gói định danh do Info.plist tạo.
Để khắc phục tình trạng này, tôi đã chỉnh sửa FooProject.xcodeproj / project.pbxproj (bằng trình soạn thảo văn bản) để thay đổi QA buildSettings PRODUCT_BUNDLE_IDENTIFIER thành com.example.foo.qa
Bạn có thể xem phần Hỏi và Đáp kỹ thuật của Apple để biết họ đi sâu vào giải quyết vấn đề này. Sau khi bạn chạy quyền ký mã trên ứng dụng đã xuất của mình và xem ứng dụng của bạn vừa được tạo bằng mã nhận dạng ứng dụng nào, sẽ khá nhanh chóng để nhận ra bạn đang làm gì sai. https://developer.apple.com/library/content/qa/qa1879/_index.html Tôi không tìm thấy trang đó trong tìm kiếm trên Google của mình, vì họ không thực sự sử dụng cụm từ thông báo lỗi hoặc gọi ứng dụng -giá bảo mật theo tên đầy đủ của nó, nhưng thay vào đó nói ID ứng dụng.
Ngoài ra, giải pháp cho vấn đề này không phải là tạo một hồ sơ cấp phép mới có quyền nhận dạng ứng dụng, nó có quyền đó, tuy nhiên, giá trị trong hồ sơ cấp phép và ứng dụng của bạn phải khớp.
Có thể tệp {project} .entitlements bị thiếu. Thực hiện những gì @samkass đã đề cập sẽ tự động tạo tệp và nó sẽ hoạt động. Vì vậy, về cơ bản chỉ cần vào tab khả năng, bật bất kỳ thứ gì và tắt nó.
Thay đổi công tắc iCloud thành bật, xây dựng và vô hiệu hóa iCloud, đã loại bỏ lỗi nói rằng:
Hồ sơ không khớp với các giá trị của tệp quyền đối với quyền nhận dạng ứng dụng và nhóm truy cập chuỗi khóa.
Trong Xcode 11, điều này có thể xảy ra khi tệp .entitlement không có trong dự án của bạn. Giải pháp sẽ là thêm bất kỳ khả năng ngẫu nhiên nào bằng cách nhấp vào '+ Khả năng' trong 'Ký hiệu & Khả năng' (dẫn đến việc tạo tệp .entitlement) và sau đó xóa khả năng đó. Điều này sẽ cho phép bạn tự động cung cấp chứng chỉ.
Vui lòng kiểm tra các tính năng ứng dụng cần thiết cho ứng dụng của bạn như Mua trong ứng dụng, thông báo đẩy, âm thanh Inter App, bộ Siri, v.v.
Đây là nguyên nhân duy nhất cho loại lỗi này.
Đảm bảo rằng trong id Ứng dụng của bạn, các cờ trên phải được bật.
Hầu hết thời gian nó xảy ra khi bạn không định cấu hình thông báo đẩy, Mua ứng dụng trong ID ứng dụng phát triển của bạn.
Đối với tôi, mẹo là
Trong trường hợp của tôi, sự cố là sau: cấu hình cấp phép được sử dụng cho bước xây dựng đã được tạo cho id ứng dụng khác với cấu hình cấp phép được sử dụng cho bước xuất.
Vì vậy, hãy đảm bảo rằng bạn đang sử dụng cùng một cấu hình cấp phép cho bước xây dựng và xuất.
Kiểm tra chéo các khả năng trong ứng dụng với các tùy chọn bạn đã bật cho Id ứng dụng trong tài khoản nhà phát triển của mình.
TL; DR: kiểm tra ID ứng dụng của bạn và đảm bảo các dịch vụ phù hợp với những gì bạn muốn.
Điều đã xảy ra với tôi là tôi đã để Xcode 10.1 giúp tôi tạo ID ứng dụng và sau đó, tôi gặp sự cố như được mô tả ở đây. (Tôi đã chọn ID ứng dụng thẻ trắng khi tạo ứng dụng trong iTunesConnect, vì vậy tôi thậm chí không nhận ra điều này đã được thực hiện.) Khi tôi mở cổng nhà phát triển iOS, ID ứng dụng mới đã tự động bật Game Center và In App Purchase.
Vì tôi không thể bật Trung tâm trò chơi trong của bạn Target -> Capabilities
, tôi đã bật Mua trong ứng dụng, sau đó ứng dụng của tôi có thể được ký và tải lên.
Khi chúng tôi gặp phải vấn đề tương tự, chúng tôi đã thử tất cả những điều trên nhưng không cách nào hoạt động.
Điều phù hợp với chúng tôi là thay đổi số nhận dạng gói để nó không giống với mã trước đó, ví dụ: "com.name.App" thành "com.name.App2"; hãy để xcode cố gắng tìm nạp / tạo hồ sơ cấp phép và sau đó đưa nó trở lại hồ sơ ban đầu.
Có ý tưởng này từ chuỗi này trên diễn đàn nhà phát triển của Apple- https://forums.developer.apple.com/thread/114539
Tôi đã xem trang này gần đây sau khi cố gắng tạo một mục tiêu trùng lặp - không có đề xuất nào phù hợp với tôi. Việc điều tra sâu hơn và một số lần giật tóc, cuối cùng đã khiến tôi phải tìm kiếm trong cài đặt xây dựng cho ứng dụng của mình để thử và tìm ra điều gì sai.
Hóa ra là dự án của tôi vẫn đang trỏ đến tệp quyền của mục tiêu GỐC, thay vì có một tệp của riêng nó. Để giải quyết vấn đề này, tôi đã điều hướng đến tệp quyền ban đầu trong Finder (ví dụ: $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), tạo một bản sao trong cùng một thư mục và sau đó đổi tên nó (ví dụ: NewTargetName.entitlements).
Sau đó, tôi đã mở tệp quyền mới của mình và thay đổi trường số nhận dạng ứng dụng để khớp với phần cuối của mã nhận dạng gói của mục tiêu mới (ví dụ: ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).
Cuối cùng, tôi đã cập nhật trường 'Quyền lợi ký mã' trong cài đặt bản dựng thành đường dẫn của tệp quyền của tôi (đối với tôi, đây là thứ nằm dọc theo dòng $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).
Tôi quay lại tab Ký tên & Khả năng và xin lỗi, vấn đề đã được khắc phục. Hy vọng ai đó ngoài kia thấy điều này hữu ích.
Tôi gặp sự cố này với một ứng dụng hoàn toàn mới, trong Xcode 12 beta 3 ( bắt đầu gửi ứng dụng hôm nay ).
Xcode đã bật "Tự động quản lý ký". Tuy nhiên, ID nhóm hiển thị trong "Chứng chỉ ký" không khớp với ID nhóm hiển thị trong trang web iTunes Connect. Đây là nguyên nhân gốc rễ ngăn ứng dụng được tải lên.
Cách tôi sửa nó:
Tôi đã gặp phải vấn đề tương tự khi thiết lập đường dẫn Gitlab chạy cmd exportArchive và tải lên AppStore. Tôi đã có thể làm cho nó hoạt động bằng cách thay đổi DEVELOPMENT_TEAM trong Cài đặt bản dựng thành cùng một Nhóm được chọn trong Ký tên & Chứng chỉ.
Bởi vì trước đó nó được đặt thành trống, theo mặc định, nó đang sử dụng một id TEAM DEV khác không chính xác và không khớp và nó đang phàn nàn về việc "ID ứng dụng" = 12331232.com.bannana.apples.peach không khớp. Điều đó dẫn tôi đến việc thiết lập DEV TEAM chính xác và nó đã hoạt động.
Xcode ver: Phiên bản 11.3.1
Tôi hi vọng nó sẽ giúp ích cho mọi người.
Nhiều mục tiêu:
... và sử dụng iCloud.
Bật và tắt iCloud không phải là một tùy chọn đối với chúng tôi. Chúng tôi đã sử dụng nó trong sản xuất và thay vì gây rối với nó ... Tôi đã nhận được thông điệp của câu hỏi ban đầu và biến thể này tại một số thời điểm:
Hồ sơ không khớp với các giá trị của tệp quyền đối với quyền nhận dạng ứng dụng và nhóm truy cập chuỗi khóa.
Được gợi ý từ các câu trả lời khác ở đây, Chúng tôi đảm bảo rằng tất cả các mục tiêu sẽ có một .entitlements
tệp. Nếu mục tiêu không có, chúng tôi tạo một mục tiêu trống như vậy:
<?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/>
</plist>
... và chỉ mục tiêu của nó Code Signing Entitlement
vào Build Settings
chỗ trống.entitlements
tệp .
Đã giải quyết!
Xóa tất cả các hồ sơ có trong ~/Library/MobileDevice/Provisioning Profiles/
entitlements.plist
tệp của bạn .