Hồ sơ không khớp với giá trị của tệp quyền đối với quyền nhận dạng ứng dụng


93

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ì đó.

đây là những gì bật lên

Mọi sự trợ giúp sẽ rất được trân trọng.

info.plist


1
Hiển thị entitlements.plisttệp của bạn .
Imad Ali

Có thể là do tôi chưa bao giờ tìm nó trước đây, nhưng các bảng duy nhất tôi thấy nói rằng thông tin, nhưng đây là hình ảnh thứ hai.
Paul Raymond

nó nói rằng tôi không thể đăng liên kết nữa, tôi chuẩn bị lên máy bay đến Chicago nếu có ai đó nghĩ ra bất cứ điều gì
Paul Raymond

Câu trả lời:


208

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ỉ.


3
Không biết tại sao điều này lại hiệu quả, nhưng nó đã xảy ra, sự hỗ trợ của apple ít hữu ích hơn.
Paul Raymond

13
Cảm ơn vì điều này - sau khi bật / tắt, nó đã tạo ra một plist .entitlements trống bên cạnh xcodeproj. Có vẻ như đây là những gì quá trình gửi đang tìm kiếm. Có thể chỉ là một vấn đề trong Xcode 9 đối với các ứng dụng hiện có không yêu cầu bất kỳ quyền / khả năng nào.
Andrew Wood,

3
Ở đây cũng vậy. Dự án cổ. Rất cám ơn đề xuất chuyển đổi một khả năng, bây giờ có một .entitlements trống được chấp nhận. Gửi lỗi với Apple.
RickJansen

6
Đánh đòn cả buổi tối vào bs này. Tôi phải bật và tắt, điều này đã tạo tệp quyền trống và sau đó tôi phải trỏ cài đặt xây dựng 'Quyền lợi ký mã' của mình vào tệp trống đó.
Adam Waite

2
Trong Xcode 10.0beta5 điều này vẫn xảy ra. Đối với tôi, đó là do việc thay đổi tên dự án sau khi các quyền được tạo. Bật iCloud rồi tắt, đổi tên tệp quyền và cập nhật tên tệp đó trong cài đặt bản dựng. Nội dung của tập tin giống hệt nhau. Có vẻ như người tải lên quan tâm đến tên của tệp quyền bất kể tên tệp cài đặt bản dựng.
Troy

43

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.


1
trong trường hợp của tôi, thư mục là "~ / Library / MobileDevice /
Provisinstall

Đồng ý, đây là câu trả lời đúng, chỉ với Xcode 11 con đường là~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis

Tại sao điều này khắc phục sự cố? Chúng tôi vừa xóa những gì? Điều này có bất kỳ tác dụng phụ?
markdon

Bạn đang xóa các cấu hình cấp phép được thêm tự động bởi Xcode hoặc theo cách thủ công bằng cách mở một cấu hình từ developer.apple.com. Nếu bạn không muốn mất các cấu hình khác, bạn có thể sử dụng một cái gì đó như ... grep -ir YOUR_APP_ID ~ / Library / MobileDevice / Provisinstall \ Profiles; Để hiển thị cấu hình nào phù hợp. Chỉ cần xóa chúng và nó sẽ hoàn thành nhiệm vụ tương tự.
Chris Douglass

Cách này khắc phục được nhưng bạn cần vào Xcode trước và bỏ chọn Automatically Manage Signing, sau đó làm như trên rồi kiểm tra lại Auto Signing và tất cả đều tốt. Đã sửa nó cho tôi. Xem mô tả đầy đủ tại đây :: ottorinobruni.com/…
c0d3p03t

33

Ứng dụng bạn đã tạo có application-identifiergiá 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.


2
Cảm ơn bạn! Tôi đã có thể khắc phục bằng cách thay đổi cài đặt bản dựng của mình, dưới dạng đóng gói, để sử dụng var tùy chỉnh của tôi cho hậu tố trong Mã định danh gói sản phẩm. ví dụ: com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) và điều này đã giải quyết nó. Vì vậy, tôi không phải chỉnh sửa tệp dự án theo cách thủ công và có thể dễ dàng duy trì các id gói khác nhau cho mỗi môi trường.
n8tr

Một lý do tại sao bạn có thể có số nhận dạng ứng dụng không khớp là bạn không tải xuống tất cả các cấu hình cấp phép. Bản lưu trữ của bạn được tạo bằng hồ sơ ký tự đại diện nếu hồ sơ có id ứng dụng chính xác bị thiếu, dẫn đến không khớp trong giai đoạn xuất.
diidu

Điều này đã làm việc cho tôi. Tôi đang xây dựng một ứng dụng Ionic và nhận ra rằng tôi đã thử nghiệm trên một tài khoản khác. Tôi đã sử dụng com.foo.testName và đã thay đổi nó trở lại khi xây dựng bằng đúng tài khoản. Có vẻ như các com.foo.testName vẫn còn trong file pbxproj
Dewald Els

Cảm ơn rất nhiều, đây chính xác là thứ đã chặn xác thực của tôi và lời giải thích rất rõ ràng!
MDH

@ n8tr Sau gần một tuần đau đầu và bực bội, bình luận của bạn đã cứu tôi. Cảm ơn.
Behdad

9

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ó.


Điều này thật ngớ ngẩn nhưng nó có hiệu quả với tôi đối với một số dự án cũ hơn mà tôi đang cập nhật.
aspro

8

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.


Tất nhiên đó sẽ là giải pháp! Tại sao tôi không nghĩ ra thứ hoàn toàn không hiển nhiên này để thử. Cảm ơn Apple.
Jonathan Plackett

3

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ỉ.


2

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.


Tôi chưa kích hoạt bất cứ thứ gì. Nó chỉ thực sự bực bội.
Paul Raymond,

ứng dụng của bạn có bất kỳ tính năng nào mà tôi đề cập ở trên không
Tech

Tôi sẽ đính kèm ảnh chụp màn hình sau, nhưng không có thông báo đẩy hoặc mua ứng dụng cho ứng dụng.
Paul Raymond

chính xác thì bạn muốn ảnh chụp màn hình là gì? dưới plist nó không đề cập đến quyền lợi.
Paul Raymond,

2

Tôi đã vào tab Khả năng của Mục tiêu, BẬT Chia sẻ chuỗi khóa và nó bắt đầu hoạt động


2

Đối với tôi, mẹo là

  1. thêm / bớt một khả năng cho mục tiêu (trong trường hợp của tôi là một Widget);
  2. đảm bảo rằng tệp quyền được tạo được liệt kê trong cài đặt xây dựng;
  3. và thêm khóa "APS Environemnt" với giá trị "phát triển" vào tệp quyền hạn.

1

Trong Xcode 10, tôi đã làm cho nó hoạt động bằng cách di chuyển tệp quyền vào đúng thư mục trong Project Navigator. Tôi không có tệp quyền, nhưng tôi đã quản lý để có được một tệp bằng cách chuyển đổi các tính năng trên tab khả năng.

nhập mô tả hình ảnh ở đây


1

Tôi cũng gặp lỗi này và không có giải pháp nào ở trên giải quyết được sự cố trong trường hợp của tôi.

Điều đã làm được với tôi là thay đổi cài đặt "Có thể gỡ lỗi" trong tệp "Entitlements.plist" từ "KHÔNG" thành "CÓ".


1

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.


Bởi vì tôi muốn nhấn mạnh rằng lỗi này có thể xảy ra do các cấu hình cấp phép khác nhau trên bước xây dựng và xuất. Thông báo lỗi không hữu ích để tìm nguyên nhân gốc rễ trong trường hợp này. Đối với lý do tại sao câu trả lời bị trễ - lỗi này không liên quan đến một số khoảng thời gian cụ thể. Vì vậy, nó đã xảy ra 1 năm trước và xảy ra bây giờ tất cả giống nhau. Câu trả lời được chấp nhận không hoạt động trong trường hợp của tôi.
Alexey Komov

1

Điều hiệu quả với tôi là tôi đã tạo bản lưu trữ trong XCode 11 và tải lên trong đó Xcode 12 beta.


0

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.


Đó là một ứng dụng miễn phí và tôi chưa kích hoạt bất kỳ thứ gì, và điều đó thật khó chịu. Nó cài đặt tốt trên thiết bị của tôi, tôi chỉ không biết tìm ở đâu.
Paul Raymond

bạn có thể chia sẻ ảnh chụp màn hình của cả hai không?
KavyaKavita

bạn muốn ảnh chụp màn hình của cái gì?
Paul Raymond

ảnh chụp màn hình về khả năng phần và cấu hình Id App trên một tài khoản nhà phát triển
KavyaKavita

0

Tôi đã thử một số tùy chọn được liệt kê trong các câu trả lời ở đây nhưng không có tác dụng nào, tuy nhiên, việc tắt và bật hộp kiểm "Tự động quản lý ký" đã khắc phục sự cố.


0

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.


0

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


0

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.


0

Chuyển đến tab Thông tin của Xcode và thay đổi trường Số nhận dạng gói - sau khi thay đổi tên ứng dụng, nó không thay đổi mặc dù tôi đã thay đổi Số nhận dạng nhóm trên tab Chung. Các bản sửa lỗi ở trên không hoạt động với tôi nhưng cái này đã làm ngay lập tức.


0

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ó:

  1. Tôi đã tạo hồ sơ cấp phép cho bản phân phối trên App Store theo cách thủ công
  2. Trong Xcode, tôi đã nhấn vào "Tải xuống cấu hình thủ công" trong Tùy chọn -> Tài khoản
  3. Sau đó, tôi đã tắt "Tự động quản lý ký".
  4. Sau khi tôi chọn hồ sơ cấp phép trong menu thả xuống, ID nhóm chính xác sẽ xuất hiện trong "Chứng chỉ ký"

0

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.


0

Thiết lập của chúng tôi

Nhiều mục tiêu:

  • ứng dụng phụ
  • đồng hồ đeo tay
  • clip ứng dụng
  • tiện ích hôm nay

... 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.

Giải pháp

Đượ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 .entitlementstệ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 Entitlementvào Build Settingschỗ trống.entitlements tệp .

Đã giải quyết!


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.