LỖI ITMS-90164/90046: Quyền ký mã không hợp lệ


82

Lưu ý: Tôi đang phát triển bằng Xamarin. Câu hỏi tương tự được đăng trong Diễn đàn Xamarin tại đây

Tôi đang tạo một ứng dụng có tên CompanyApp . Sau đó, tôi đã tạo ID ứng dụng cho com.Company.CompanyApp , cùng với Hồ sơ cấp phép phân phối sử dụng ID ứng dụng tương ứng. Tôi đã tải lên tệp nhị phân và nó hoạt động hoàn toàn tốt.

Sau đó, tôi tiếp tục tạo một phiên bản demo của ứng dụng (về cơ bản là cùng một ứng dụng với sửa đổi nhỏ, vì vậy đó là cùng một giải pháp và dự án, chỉ khác cài đặt ký gói), CompanyAppDemo với một ID ứng dụng mới com.Company.CompanyAppDemo , cùng với một Hồ sơ cấp phép phân phối mới sử dụng ID ứng dụng mới. Tôi đã cập nhật các tùy chọn Ký gói iOS để sử dụng Hồ sơ cấp phép mới và tạo IPA. Nhưng khi tôi tải ứng dụng này lên Trình tải ứng dụng, tôi gặp lỗi sau:

[2015-01-23 16:08:21 SGT] LỖI: LỖI ITMS-90164: "Các quyền ký mã không hợp lệ. Các quyền trong chữ ký gói ứng dụng của bạn không khớp với các quyền có trong hồ sơ cấp phép. Theo cấp phép hồ sơ, gói chứa giá trị khóa không được phép: 'TEAMID.com.Company.CompanyApp' cho khóa 'số nhận dạng ứng dụng' trong 'Payload / CompanyApp.app / CompanyApp' "

[2015-01-23 16:08:21 SGT] LỖI: ERROR ITMS-90046: "Các quyền ký mã không hợp lệ. Chữ ký trong gói ứng dụng của bạn chứa các quyền ký mã không được hỗ trợ trên iOS. Cụ thể, giá trị 'TEAMID.com.Company .CompanyApp 'cho khóa' số nhận dạng ứng dụng 'trong' Payload / CompanyApp.app / CompanyApp 'không được hỗ trợ. Giá trị này phải là một chuỗi bắt đầu bằng TEAMID của bạn, theo sau là dấu chấm'. ', Theo sau là số nhận dạng gói. "

Tôi đã gỡ lỗi trong nhiều ngày để tìm ra kết quả không có kết quả.

Tôi đang tự hỏi tại sao khi tôi ký bằng hồ sơ mới, lỗi mà Trình tải ứng dụng ném ra tham chiếu đến ID của TEAMID.com.Company.CompanyApp ban đầu thay vì TEAMID.com.Company.CompanyAppDemo ? Đây có phải là một lỗi trong Xamarin chọn hồ sơ cấp phép sai hay tôi đang thiếu thứ gì đó? Bạn không cần chứng chỉ khác nhau cho ứng dụng khác nhau phải không?

Lưu ý rằng tôi đã luôn làm mới danh sách Hồ sơ cấp phép trong XCode> Tùy chọn trước khi thay đổi tùy chọn Ký bản dựng iOS trong Xamarin.

Câu trả lời:


133

Nếu ai đó đến đây bằng cách tìm kiếm LỖI ITMS-90046 giống như tôi, giải pháp của tôi là Làm sạch nó và xóa tất cả các khung được biên dịch trước (các khung tùy chỉnh) rồi xây dựng lại.

Lưu ý: Mô tả lỗi cho biết điều gì đó về khóa "aps-environment" là "phát triển".

Chỉnh sửa: Thông báo lỗi thực tế


bạn có thể giải thích điều này một chút hơn không?
John

1
Có, trong ứng dụng của tôi, tôi đang sử dụng các khung tùy chỉnh, chúng được thêm vào phần "giai đoạn xây dựng" "phần phụ thuộc mục tiêu", vì vậy khi tôi biên dịch ứng dụng, chúng được biên dịch và cũng được ký. Ngoài ra, tôi có một tập lệnh trong mỗi "giai đoạn xây dựng" của khung công tác để di chuyển khung đã biên dịch sang một thư mục khác. Có vẻ như có một lỗi trong quá trình ký và tôi nghĩ phần quan trọng là việc xóa các khuôn khổ, buộc trình biên dịch phải biên dịch và ký lại chúng. Lỗi đó không bao giờ xảy ra nữa.
quarac

Cảm ơn, điều này đã giúp tôi khắc phục sự cố của mình!
DiscDev

7
Tất cả tôi phải làm là làm sạch ... Đây là một lỗi mới sau khoảng 50 builds tải lên TestFlight
phamer

2
Phát triển trên Xcode là một cơn ác mộng bất tận. Rõ ràng, cầu nguyện để làm việc quan trọng hơn viết mã.
Eduardo

63

Tôi đã gặp vấn đề tương tự và được giải quyết bằng một Sản phẩm đơn giản -> Clean .


1
cảm ơn đã giúp tôi giải quyết LỖI ITMS-90164: "Các quyền ký mã không hợp lệ. Các quyền trong chữ ký gói ứng dụng của bạn không khớp với các quyền có trong hồ sơ cấp phép. Theo hồ sơ cấp phép, gói chứa giá trị khóa không được phép: 'true' đối với khóa 'get-task-allow' trong 'Payload / Palau Moja.app/Palau Moja' "LỖI ITMS-90164:" Quyền lợi ký mã không hợp lệ. Các quyền trong chữ ký gói ứng dụng của bạn không khớp với những cái có trong hồ sơ cấp phép.
Josep Escobar

Gặp lỗi tương tự như Josep và dọn dẹp -> lưu trữ -> tải lên lại giải quyết nó. Cảm ơn vì đã đăng giải pháp này!
ít

Bạn làm Sản phẩm-> Sạch ở đâu? Trong XCode hoặc Visual Studio? Tôi đang phát triển bằng Xamarin, BTW.
James Lavery

20

Nếu ai đó đến đây bằng cách tìm kiếm cả lỗi ITMS-90164 và lỗi ITMS-90046 với các khóa get-task-allowasp-environment :

1

Giống như David P đã nói, một Sản phẩm -> Sạch sẽ trước khi Lưu trữ mới giải quyết được vấn đề của tôi.

Tôi chỉ muốn thêm rằng trong trường hợp của tôi, tôi đã quan sát thấy xarchive bị lỗi thiếu tệp sau:

2

Trước khi gửi .xarchive đó cho khách hàng của bạn để lấy chữ ký sản xuất, bạn có thể muốn tìm kiếm tệp tin nén-mở rộng-quyền.xcent được lưu trữ và đảm bảo tệp ở đó.


18

Cuối cùng sau 2 tuần nhổ tóc ..

Vì một số lý do, nếu không có khóa 'số nhận dạng ứng dụng' trong Entitlements.plist được đặt thành TEAMID.com.Company.CompanyAppDemo , Xamarin sẽ sử dụng số nhận dạng ứng dụng gốc, tức là TEAMID.com.Company.CompanyApp

Vì vậy, giải pháp là thêm từ định danh ứng dụng chỉ định ID gói ứng dụng chính xác bên trong Entitlements.plist. Sau đó, bao gồm plist trong Tùy chọn bản dựng> Ký gói iOS.


13
xamarin là một chất tăng năng suất!
Anton Tropashko

8

Vấn đề tương tự và được giải quyết với một Sản phẩm đơn giản -> Sạch sẽ .


8

Thay đổi điều này trong Entitlements.plist:

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

Về điều này:

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

5

Điều này cũng có thể do bạn phải đồng ý với một hợp đồng mới trong kết nối iTunes. Đăng nhập vào kết nối iTunes và bạn sẽ thấy một biểu ngữ ở trên cùng nhắc bạn đồng ý với thay đổi hợp đồng mới nhất.


1
Your'e thông báo lỗi liên quan một tình yêu cuộc sống tiết kiệm :) Gotta táo
Yoav Schwartz

4

Đối với tôi, vấn đề là một Entitlements.plist đã được tự động thêm vào và trống rỗng. Đã xóa nó khỏi trường Quyền tùy chỉnh và đã giải quyết được sự cố.

Chế độ xem ký gói iOS trên Visual Studio 2015


3

Nếu bạn không chọn chứng chỉ phát hành tương ứng trước khi đóng gói, ERROR ITMS-90164 sẽ được báo cáo

Cài đặt xây dựng -> Nhận dạng ký mã -> Phát hành -> Bất kỳ SDK IOS nào


2

Đảm bảo rằng bạn đã chọn mục tiêu Ứng dụng chứ không phải Ứng dụng WatchKit khi lưu trữ.


2

Không có câu trả lời nào khác giải quyết được lỗi này cho tôi, nhưng điều này đã làm được:

  1. Tạo ứng dụng XCode mới và đi kiểm tra cài đặt ký mã của nó.

  2. Cố gắng đặt ứng dụng của bạn tương tự như cài đặt cấp phép và ký XCode 7 hoặc Xcode 8 mặc định, XCode 7 được hiển thị ở đây, nó lại được thay đổi trong XCode 8.

cung cấp và ký kết

  1. Nếu những điều trên vẫn chưa đủ, bạn có thể cần thực hiện lại, nhưng lần này, trước khi thực hiện, hãy xóa mọi cấu hình cấp phép cũ đã hết hạn khỏi apple Keyring của bạn hoặc xóa và đăng nhập lại vào tài khoản nhà phát triển apple (itunes) của bạn trong XCode sở thích. Hãy nhớ THOÁT XCODE và KHỞI ĐỘNG sau BẤT KỲ thay đổi nào. Sau đó, thêm lại tài khoản của bạn và để XCode tìm nạp thông tin nhóm và ký mới của bạn.

1

Tôi đã cố gắng tải lên một bản dựng từ một nhánh git không phải là chính. Để giải quyết vấn đề, tôi đã hợp nhất nhánh vào cái chính và xây dựng lại. Sau đó, tôi đã có thể tải lên bản dựng thành công.


1

Một dự án bao gồm 2 mục tiêu (với 2 id Nhà phát triển, 2 quyền) có thể dẫn đến điều này. (Đừng hỏi tôi làm thế nào nó đã xảy ra ...)

Khi lưu trữ, hãy tạm thời xóa tệp quyền khác.


1

Thực hiện một Xcode 'Quit' thích hợp và sau đó khởi động lại là hành động cuối cùng để nó hoạt động với tôi.

Tôi đã thay đổi số nhận dạng gói (đối với phiên bản demo) và gặp lỗi tương tự (như đã nêu trong câu hỏi) khi xác minh bản dựng đã lưu trữ của mình. Tôi đang sử dụng Xcode. Chỉ đóng Xcode và mở lại dự án của tôi là không đủ, nhưng 'Thoát' đầy đủ là. Một cái gì đó có thể đã được lưu trữ ở đâu đó tôi đoán.


Điều này đã làm điều đó cho tôi. XCode đôi khi có thể phức tạp như vậy.
Aaron Krauss

1

Tôi đã thử mọi thứ được liệt kê ở đây, hóa ra vấn đề là .entitlementtệp của tôi , có những dòng tôi chưa bao giờ đặt ở vị trí đầu tiên, chúng chỉ được thêm vào bằng cách nào đó.
Đã xóa những dòng đó và thử lại, hoạt động.


1

Tôi vừa đổi tên trong Rights.plist giá trị của các miền Access từ applinks: htts: //domain.app.link thành applinks: domain.app.link. Nó hoạt động giống như một sự quyến rũ. Chúc mừng!


0
  1. Đi tới Build Phasetrong Xcode
  2. Xóa tất cả các khuôn khổ
  3. Thêm chúng trở lại
  4. Bây giờ xây dựng-> Lưu trữ-> Tải lên App Store

Hurray, bạn đã hoàn thành nó. Vấn đề đã được giải quyết


0

Đối với tôi, tôi đã có thể giải quyết nó bằng cách tắt / bật lại tính năng ký mã tự động:

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


0

Đối với tôi, tôi đã gửi nhầm tệp trong cài đặt Quyền lợi tùy chỉnh của mình trong Ký gói iOS. Đã xóa nó và nó hoạt động!


1
Ảnh chụp màn hình sẽ rất tốt.
Warren P

0

Sau nhiều giờ điều tra, tôi đã tìm ra một giải pháp dễ dàng.

Thay vì sử dụng trình tải ứng dụng để tải ứng dụng lên, tôi đã sử dụng Trình tổ chức từ XCode và nó hoạt động mà không có bất kỳ cảnh báo nào khi tải lên!


0

Vấn đề của tôi là tôi đã sử dụng sai gói để tạo tệp IPA


0

Tôi đã gặp chính xác vấn đề tương tự và đó là một sai lầm khá ngu ngốc. Tôi không muốn bất kỳ ai dành thời gian cho việc này, vì vậy đối với việc này:

Sai lầm

Vì vậy, những gì đã xảy ra ở đây, là tôi đã nhập '10' trong mục tiêu triển khai. Thay vào đó, lẽ ra phải là 10.0. Đó là những gì đã tạo ra LỖI khét tiếng ITMS-90164/90046: Quyền lợi ký mã không hợp lệ cho tôi!



0

Hai xu của tôi đây.

Vừa rồi tôi đã gặp sự cố này vì khi tôi sao chép TeamID / ID ứng dụng của mình từ cổng nhà phát triển apple, điều này mang lại nhiều giá trị không liên quan đến Rights.plist. Tôi không nhận thấy điều này vì tôi đang sử dụng Xcode để chỉnh sửa danh sách quyền lợi và hộp nhập liệu sẽ không hiển thị mọi thứ sau ký tự dòng mới đầu tiên.

Tôi khuyên bạn nên sử dụng trình soạn thảo văn bản thuần túy cho Rights.plist cho trường hợp này.

Cảm ơn, Samuel


0

Sau khi thử tất cả các thủ thuật đọc những ngày cuối cùng tại Stackoverflow, tôi xóa tệp "xxxxxx.entitlements" và tạo lại nó. Tôi nhấp vào Khả năng , chọn BẬT tại Tên miền được Liên kết và thêm "Tên miền". Sau đó, tại Khả năng> Thông báo đẩy, nhấp vào Khắc phục "Thêm quyền của Thông báo đẩy vào tệp quyền của bạn".

Làm điều đó cho phép tôi thực hiện LƯU TRỮ thành công


0

Tôi có một liên kết như thế này webcredentials:https://************.linkkhiến quá trình tải lên của tôi không thành công. Tôi đã gỡ bỏ nó và vấn đề đã được 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.