Việc ký mã là bắt buộc đối với loại sản phẩm Gói kiểm tra đơn vị trong SDK iOS 8.0


128

Bắt

Việc ký mã là bắt buộc đối với loại sản phẩm 'Gói thử nghiệm đơn vị' trong SDK 'iOS 8.0'

Mục tiêu ứng dụng của tôi là ký mã tốt - nhưng mục tiêu thử nghiệm của tôi thì không. Tôi đã mua một máy tính mới, tạo chứng chỉ phát triển mới từ máy tính, cập nhật hồ sơ cung cấp phù hợp, cài đặt cả hai, nhưng không thể vượt qua lỗi ký mã này.

Bất kỳ cách nào để xóa tất cả các certs / hồ sơ cục bộ để tôi có thể cài đặt lại?

Có lẽ là một số loại lỗi.


Tôi đã gặp một lỗi tương tự - cách khắc phục của tôi là đi vào cài đặt bản dựng và chọn cấu hình cung cấp, thay vì tự động chọn chúng.
scb998

Câu trả lời:


129

Vấn đề là dự án nằm dưới sự kiểm soát nguồn và mỗi khi tôi kéo .xcodeproj được cập nhật. Và vì hồ sơ cung cấp của tôi khác với hồ sơ kiểm soát nguồn, mục tiêu Kiểm tra đơn vị sẽ tự động chuyển sang "Không ký mã". Vì vậy, tôi chỉ cần đặt hồ sơ ở đó sau mỗi lần kéo git.

Rõ ràng nếu triển khai đến một thiết bị, nếu có một mục tiêu thử nghiệm đơn vị, thì nó phải được ký mã.

Các bước:

1) Thay đổi mục tiêu thành mục tiêu thử nghiệm của bạn (AppnameTests)

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

2) Đảm bảo "Nhận dạng ký mã" KHÔNG phải là "Không ký mã". Chọn một hồ sơ để ký với

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

Đó là tất cả những gì tôi phải thay đổi để làm cho nó hoạt động.


tôi đang đối mặt với cùng một vấn đề như đã đề cập trong câu hỏi trên nhưng không thể tìm ra cách giải quyết nó và tôi đã đăng một câu hỏi liên quan như vậy. stackoverflow.com/questions/27312745/ cấp
Neal

Bạn có thể vui lòng cho tôi biết một quá trình từng bước về cách làm điều đó.
Neal

Có vấn đề trong Xcode 8. Độ phân giải không giống với của bạn, nhưng gần. Cảm ơn đã chỉ cho tôi con đường!
user3259235

Ngoài ra, ngoài việc đặt 'Nhận dạng ký mã', bạn có thể phải đặt cả 'Nhóm phát triển'.
bitand 8/11/2016

100

Tôi đã khắc phục sự cố (tạm thời) bằng cách đi tới Chỉnh sửa lược đồ, sau đó trong phần Xây dựng, loại bỏ mục tiêu kiểm tra đơn vị của tôi khỏi bị gọi trong "Chạy".


1
Nắm bắt tốt! Tại sao bạn nói tạm thời ? Có vẻ như một giải pháp hợp lý với tôi. Bạn đã gửi ứng dụng đến cửa hàng?
mokagio

Không có vấn đề gì với việc gửi ứng dụng lên App Store. Tôi đã nói "tạm thời" bởi vì tôi nghĩ rằng có một cách khắc phục lâu dài hơn có thể bằng cách loay hoay với việc ký mã, nhưng đây là cách khắc phục rắc rối nhanh chóng.
ZS

2
Tuyệt thật, cảm ơn nhé. Có vẻ như giải pháp tốt cho tôi, mục tiêu thử nghiệm đơn vị không nên chạy. +1
mokagio

Bạn có thể giải thích cho tôi chi tiết hơn? ý bạn là tôi phải 'xây dựng'? và tôi không hiểu 'loại bỏ bài kiểm tra đơn vị của tôi khỏi bị gọi trong Run'
LKM

66

Các lời khuyên khác ở đây không giúp tôi, nhưng tôi đã sửa lỗi này bằng cách đi đến Product > Scheme > Edit Scheme. Sau đó, tôi nhấp Buildvào phía bên trái và bỏ chọn bất kỳ hộp kiểm nào bên cạnh AppNameTests. Tôi đang sử dụng XCode 6.3

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


@Almo Không bỏ chọn bất kỳ hộp nào bên dưới "Kiểm tra", nhưng thay vào đó bỏ chọn tất cả mọi thứ (mà bạn có thể bỏ chọn) trong hàng có nhãn APPNAMEtests. Tôi sẽ bao gồm một ảnh chụp màn hình trong câu trả lời của tôi để giúp làm rõ.
Cò Olivia

1
Tôi đã làm điều đó, và đã bỏ qua tất cả mọi thứ trừ Test. Hóa ra tôi đã phải xóa một tập tin .plist để khiến nó ngừng cố gắng ký mã kiểm tra. Dự án của tôi xây dựng một thư viện tĩnh, vì vậy không ai trong số đó cần được mã hóa.
Almo

1
À được rồi. Vâng, có vẻ như có rất nhiều lý do vấn đề này có thể được gây ra và cũng có nhiều cách để khắc phục nó. Nếu không ai khác đề cập đến giải pháp của bạn, bạn có thể xem xét đăng nó như một câu trả lời có thể khác.
Cò Olivia

3
@huggie \ _ (ツ) _ / ¯ Chào mừng bạn đến với lập trình iOS!
Cò Olivia

1
@OliviaStork u bắt buộc tôi. cảm ơn bạn rất nhiều vì đã cứu công việc của tôi
Anurag Shrivastava

29

Tôi đã sửa nó bằng cách chọn thủ công hồ sơ cung cấp trong cài đặt bản dựng cho mục tiêu thử nghiệm.

Kiểm tra cài đặt mục tiêu -> Xây dựng cài đặt -> Ký mã -> Nhận dạng ký hiệu mã. Trước đây, nó được đặt thành "Không ký mã".


Chọn hồ sơ cung cấp rõ ràng làm việc cho tôi, cảm ơn.
Mike Weller

Đồng thời đảm bảo bộ lọc "Tất cả" được chọn ở trên cùng, không phải "Cơ bản".
Marty

13

Ngoài ra, nếu bạn đặt thiết bị đích xây dựng, vấn đề sẽ biến mất khi bạn kiểm tra và gỡ lỗi. Mã đã ký chỉ cần khi bạn cố gắng triển khai ứng dụng của mình đến một thiết bị thực sựquả sung

Tôi đã thay đổi từ "myIphone" sang giả lập iPhone 6 Plus và nó giải quyết vấn đề trong khi tôi đang phát triển ứng dụng.


1
nhưng nếu bạn muốn triển khai ứng dụng của mình lên một thiết bị vật lý thì sao!
Marwen Trabelsi

8

Trong trường hợp của tôi, vấn đề mà tôi gặp phải là:

Lỗi CodeSign: ký mã là bắt buộc đối với loại sản phẩm 'Gói thử nghiệm đơn vị' trong SDK 'iOS 8.4'

Fortunatelly, mục tiêu đã không thực hiện bất cứ điều gì, vì vậy một giải pháp nhanh chóng là loại bỏ nó.

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


2

Tôi đã gặp lỗi này khi chạy xcodebuild từ dòng lệnh để kiểm tra tích hợp trên CI của công việc của tôi. Tôi đã quản lý để làm cho nó hoạt động bằng cách đặt cài đặt cấp độ dự án thành mã. Vì một số lý do, cài đặt mục tiêu đã bị bỏ qua và nó được hoàn nguyên về cài đặt của dự án.


2

Nếu không có gì hoạt động từ các giải pháp trên, hãy làm theo các bước sau

Từ mục tiêu, chọn appnameTests trong "Thông tin"

Thay đổi sau

Mã định danh gói: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

đến com.ProjectName.appname

Tên gói: $ (SẢN PHẨM)

Tên gói: tên ứng dụng

Biên dịch và thực thi


1

Tôi giải quyết vấn đề bằng cách thay đổi 'Hồ sơ cung cấp' trong cùng một phần ('Ký mã') từ Tự động thành 'Tên MyProvisioningProfile'


0

Xin chào tôi phải đối mặt với vấn đề tương tự ngày hôm nay. Sau khi đọc câu trả lời của "Spentak", tôi đã cố gắng thực hiện ký mã cho mục tiêu của mình để đặt thành iOSDeveloper và vẫn không hoạt động. Nhưng sau khi tôi thay đổi "Hồ sơ cung cấp" thành "Tự động", dự án đã được xây dựng và chạy mà không có bất kỳ lỗi ký mã nào.


0

Đôi khi điều này xảy ra khi bạn tải xuống một dự án từ github hoặc các trang hướng dẫn của bên thứ ba khác. Các ứng dụng này thường được ký với một danh tính hoặc công ty / tên khác. Khi điều này xảy ra, nếu bạn không thể giải quyết giải pháp, chỉ cần tạo một dự án xcode mới và sao chép tất cả các tệp tiêu đề và tệp triển khai vào dự án mới của bạn. Ngoài ra, đừng quên các tệp phụ thuộc..có thể là các tệp khung. Điều này hiệu quả với tôi.

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.