SecItemAdd và SecItemCopyMatching trả về mã lỗi -34018 (errSecMissingEntituity)


116

Đôi khi, khi tôi chạy một ứng dụng trên thiết bị từ Xcode, tôi sẽ cố truy cập vào móc khóa nhưng không thành công do lỗi -34018. Điều này không khớp với bất kỳ mã lỗi móc khóa tài liệu nào và không thể được sao chép một cách nhất quán. (xảy ra có thể 30% thời gian và tôi không rõ tại sao nó lại xảy ra). Điều làm cho việc gỡ lỗi vấn đề này trở nên rất khó khăn là thiếu tài liệu hoàn toàn. Bất kỳ ý tưởng những gì gây ra điều này và làm thế nào để khắc phục nó? Tôi đang sử dụng Xcode 5 và chạy iOS 7.0.4 trên thiết bị.

Có một vấn đề mở về vấn đề này tại đây: https://github.com/soffes/sskeychain/issues/52

EDIT: Thêm mã truy cập móc khóa cho mỗi yêu cầu

Tôi đang sử dụng SSKeychainthư viện để giao tiếp với móc khóa. Đây là đoạn trích.

#define SERVICE @"default"

@implementation SSKeychain (EXT)

+ (void)setValue:(NSString *)value forKey:(NSString *)key {
    NSError *error = nil;
    BOOL success = NO;
    if (value) {
        success = [self setPassword:value forService:SERVICE account:key error:&error];
    } else {
        success = [self deletePasswordForService:SERVICE account:key error:&error];
    }
    NSAssert(success, @"Unable to set keychain value %@ for key %@ error %@", value, key, error);
    if (!success) {
        LogError(@"Unable to set value to keychain %@", error);
    }
    LogTrace(@"Will set keychain account %@. is to nil? %d", key, value == nil);
    if (value == nil)
        LogWarn(@"Setting keychain %@ to nil!!!", key);
}

+ (NSString *)valueForKey:(NSString *)key {
    NSError *error = nil;
    NSString *value = [self passwordForService:SERVICE account:key error:&error];
    if (error && error.code != errSecItemNotFound) {
        NSAssert(!error, @"Unable to retrieve keychain value for key %@ error %@", key, error);
        LogError(@"Unable to retrieve keychain value for key %@ error %@", key, error);
    }
    return value;
}

+ (BOOL)removeAllValues {
    LogInfo(@"Completely Reseting Keychain");
    return [[self accountsForService:SERVICE] all:^BOOL(NSDictionary *accountInfo) {
        return [self deletePasswordForService:SERVICE account:accountInfo[@"acct"]];
    }];
}

@end

Phần lớn thời gian là tốt. Đôi khi, tôi sẽ gặp phải các lỗi xác nhận khi tôi không thể viết hoặc đọc từ móc khóa, gây ra lỗi xác nhận nghiêm trọng.


Tôi có cùng một vấn đề và không thể tái tạo nó ... Tôi đang sử dụng lớp KeychainItemWrapper từ Apple. Đôi khi, nó gặp sự cố từ Google Analytics với cùng một thông báo lỗi. Tôi đang sử dụng Google Analytics v3.02.
Joey

Ngoài ra, nó có vẻ ổn trong ứng dụng từ AppStore. nó chỉ xảy ra trong ứng dụng phiên bản phát triển.
Joey

2
Tôi đã gặp sự cố với phiên bản cửa hàng ứng dụng và thật không may, điều đó dường như cũng xảy ra trong cửa hàng ứng dụng, mặc dù ít thường xuyên hơn trên dev: /
Tony

3
Tôi đang nghĩ đến việc chuyển khỏi móc khóa vì thực tế là dữ liệu được lưu trữ trong móc khóa có thể bị mất ngẫu nhiên như thế này là một lỗi nghiêm trọng đối với ứng dụng.
Tony

2
Chúng tôi cũng đang thấy vấn đề không liên tục này. Chúng tôi đưa ra một ngoại lệ khi chúng tôi nhận được một RC bất ngờ từ secItemCopyMatching bao gồm cả trường hợp -34018. Chúng tôi đã thử (miễn cưỡng) thêm một cơ chế trong đó, khi chúng tôi nhận được giá trị chúng tôi cần từ móc khóa, chúng tôi sẽ lưu nó vào bộ nhớ ứng dụng và sau đó phục vụ nó từ đó mà không cần truy cập móc khóa. Nhưng bây giờ chúng ta đang thấy những dịp hiếm hoi mà một chiếc móc khóa truy cập để có được nó ở vị trí đầu tiên không thành công với -34018. Có ai đã thử thử lại hoạt động sau một -34018 chưa?
Chris Markle

Câu trả lời:


45

Khắc phục sự cố iOS 10 / XCode 8:

Thêm quyền KeyChain, Chuyển đến cài đặt dự án-> Khả năng-> Chia sẻ Keychain-> Thêm nhóm Keychain + Bật

Một câu trả lời ở đây, từ Apple:

CẬP NHẬT: Cuối cùng chúng tôi đã có thể tái tạo lỗi -34018 trên iOS 8.3. Đây là bước đầu tiên trong việc xác định nguyên nhân gốc và sau đó đưa ra cách khắc phục.

Như thường lệ, chúng tôi không thể cam kết với khung thời gian phát hành, nhưng điều này đã ảnh hưởng đến nhiều nhà phát triển và chúng tôi thực sự muốn giải quyết vấn đề này.

Trước đó tôi đã đề nghị thêm một độ trễ nhỏ trong ứng dụng: didFinishLaunchingWithOptions và applicationDidBecomeActive: trước khi truy cập móc khóa như một cách giải quyết. Tuy nhiên, điều đó không thực sự xuất hiện để giúp đỡ. Điều đó có nghĩa là không có cách giải quyết nào được biết đến tại thời điểm này ngoài việc khởi chạy lại ứng dụng.

Vấn đề dường như có liên quan đến áp lực bộ nhớ, vì vậy có lẽ mạnh dạn hơn trong việc xử lý các cảnh báo bộ nhớ có thể làm giảm bớt vấn đề

https://forums.developer.apple.com/thread/4743#14441

CẬP NHẬT

OK, đây là mới nhất.
Đây là một vấn đề phức tạp với nhiều nguyên nhân có thể:

  • Một số trường hợp của vấn đề là do ký ứng dụng không chính xác. Bạn có thể dễ dàng phân biệt trường hợp này vì vấn đề có thể tái tạo 100%.
  • Một số trường hợp của sự cố là do lỗi trong cách iOS hỗ trợ phát triển ứng dụng (r. 23,991,853). Việc sửa lỗi này rất phức tạp bởi thực tế là một lỗi khác trong HĐH (r. 23,770,418) che giấu tác dụng của nó, có nghĩa là vấn đề chỉ bị cắt khi thiết bị chịu áp lực bộ nhớ. Chúng tôi tin rằng những vấn đề này đã được giải quyết trong iOS 9.3.
  • Chúng tôi nghi ngờ rằng có thể có nhiều nguyên nhân của vấn đề này.

Vì vậy, nếu bạn thấy vấn đề này trên thiết bị người dùng (một vấn đề chưa được Xcode nói đến) đó là chạy iOS 9.3 trở lên, vui lòng gửi báo cáo lỗi về nó. Cố gắng đưa nhật ký hệ thống thiết bị vào báo cáo lỗi của bạn (Tôi nhận thấy rằng có thể khó khăn khi giao dịch với thiết bị của khách hàng; một tùy chọn là yêu cầu khách hàng cài đặt Trình cấu hình Apple, cho phép họ xem nhật ký hệ thống). Và nếu bạn nộp một lỗi, xin vui lòng gửi số lỗi của bạn, chỉ để ghi lại.

Thay mặt Apple, tôi muốn cảm ơn tất cả mọi người vì những nỗ lực của họ trong việc giúp theo dõi vấn đề khá khủng khiếp này. Chia sẻ và tận hưởng

https://forums.developer.apple.com/thread/4743#126088


2
Vấn đề vẫn tái tạo trên iOS 9.2, iPhone 5S.
DevGansta

1
Có vẻ như iOS 9.3 sẽ giải quyết vấn đề này theo phản hồi mới nhất từ ​​Apple trong chuỗi bạn đã liên kết. @daidai, bạn có thể vui lòng cập nhật câu trả lời của bạn với thông tin mới này không?
jf

1
@YoonLee cũng đang thấy điều này với iOS10 - cũng sử dụng SDK 2.4.8 của AWS. Lỗi được kích hoạt trong dòng AWSClientContext.m 54. Bất kỳ may mắn nào giải quyết điều này?
CharlesA

1
@YoonLee btw, chỉ cần giải quyết vấn đề này bằng một trong những câu trả lời dưới đây: 'Chia sẻ
KeyChain được

1
@CharlesA Vâng, tôi đã giải quyết vào ngày hôm đó. Bạn đúng rồi. Có vẻ như 'Bật quyền lợi KeyChain' khắc phục sự cố. Đáng ngạc nhiên, lỗi này không kích hoạt luôn. Dù sao, bây giờ tôi đang bật cái này lên.
Yoon Lee

25

Về cơ bản, bạn phải mã hóa thư mục .xcttest của mình bằng cách thêm đoạn mã dưới dạng tập lệnh chạy vào mục tiêu thử nghiệm của bạn.

codesign --verify --force --sign "$CODE_SIGN_IDENTITY" "$CODESIGNING_FOLDER_PATH"

Tôi đã gặp rất nhiều lỗi -34018 khi kiểm tra móc khóa của mình trên thiết bị và điều này đã được khắc phục.

Nếu vấn đề không tồn tại trong mục tiêu thử nghiệm của bạn thì đây có lẽ không phải là giải pháp.


Xác nhận điều này đã sửa nó trong môi trường thử nghiệm. Tôi đã phải thêm tập lệnh chạy vào mục tiêu thử nghiệm thực tế (ví dụ: tập lệnh w / tất cả các bài kiểm tra đơn vị, không phải mục tiêu xây dựng chạy trên thiết bị). Cũng xác nhận đây chỉ là sự cố trên thiết bị, không phải trên trình giả lập.
iwasrobbed 15/03 '

2
Tôi nhận được ": không tìm thấy danh tính Lệnh / bin / sh không thành công với mã thoát 1" khi tôi làm điều này? Đoán tôi không có $ CODE_SIGN_IDENTITY. Bất cứ ý tưởng làm thế nào tôi sửa điều này?
Daniel Coffman

1
@DanielCoffman, bạn phải đi đến cài đặt mục tiêu của mình và trong Nhận dạng ký mã, chọn "Nhà phát triển iOS" (hoặc bất kỳ danh tính hợp lệ nào khác). Điều này sửa lỗi xây dựng, tuy nhiên ít nhất với tôi nó không khắc phục được vấn đề Keychain. Tôi vẫn nhận được mã lỗi -34018.
Marcin

3
Cảm ơn Marcin. Tôi bắt đầu gặp lỗi này khi chuyển sang xcode 6 beta. Không có đề nghị trong chủ đề này được giải quyết. Hoàn nguyên về xcode 5 và -34018 không còn xảy ra.
Daniel Coffman

Tôi cũng gặp lỗi này lần đầu tiên kể từ khi tôi sử dụng XCode 6.3.
Vladimír Slavík

13

Sau khi kiểm tra mã nguồn . Tôi đã nhận thấy rằng các tính năng móc khóa được truy cập thông qua một trình nền bảo mật chạy trong quy trình riêng của nó (tách biệt với quy trình ứng dụng).

Ứng dụng của bạn và quy trình bảo mật 'nói chuyện' với nhau thông qua một công nghệ có tên XPC .

Nếu cần thiết, securityd được khởi chạy thông qua lệnh launchd nổi tiếng của XPC. Bạn có thể kiểm tra xem daemon có đang chạy trong Ứng dụng Giám sát hoạt động không (nếu tất nhiên là chạy trong Trình mô phỏng) và quy trình mẹ của nó có được khởi chạy không.

Tôi đoán ở đây là có thể vì bất kỳ lý do không xác định nào, trình nền bảo mật không khởi động hoặc thực hiện quá chậm và không sẵn sàng khi bạn cố gắng sử dụng nó.

Có lẽ bạn có thể nghĩ về cách khởi chạy trước daemon.

Tôi xin lỗi vì đã không chính xác hơn. Tôi hy vọng nó có thể giúp bạn đi sâu hơn trong các cuộc điều tra của bạn.


2
Tôi chỉ gặp sự cố này khi ứng dụng của tôi được mở lại thông qua liên kết Deep với phương thức ủy nhiệm ứng dụng sau: - Ứng dụng (BOOL): (UIApplication *) ứng dụng xử lýOpenURL: (NSURL *) url. Nếu tôi chỉ khởi động ứng dụng, viết móc khóa hoạt động và nếu tôi thu nhỏ và tối đa hóa ứng dụng, nó vẫn hoạt động. Chỉ khi tôi mở lại với liên kết sâu thì vấn đề này mới xảy ra. Tôi đã cấu hình MyApp.entitlements trong dự án của mình (Chia sẻ Keychain trong tab Khả năng) Xcode 7 beta 4.
FranticRock

Trường hợp của tôi tương tự như của Alex, chỉ xảy ra khi ứng dụng được liên kết sâu. Nếu không thì nó chạy tốt. Có thể một số bối cảnh không đúng khi ứng dụng được mở từ một ứng dụng khác.
CodeBrew

12

Tôi đang quan sát hành vi tương tự sau khi xây dựng và chạy mã của mình trong Xcode 6 beta với SDK iOS 8 (nó hoạt động chính xác với Xcode 5 / iOS 7). Trong Xcode 6, trong Trình mô phỏng iOS SecItemCopyMatching luôn trả về -34018. Nó bắt đầu hoạt động sau khi bật tab Keychain Keychain Sharing trong thẻ Capabilities.

Tuy nhiên tôi có một vấn đề khác. Tôi đang phát triển thư viện tĩnh, được sử dụng bởi (trong số những người khác) ứng dụng Demo. Giải pháp trên hoạt động cho dự án ứng dụng Demo, nhưng khi tôi thử kiểm tra đơn vị dự án thư viện tĩnh của mình, tôi có cùng một lỗi. Và vấn đề là dự án thư viện tĩnh của tôi không có tab Capabilities (vì nó không phải là ứng dụng độc lập).

Tôi đã thử giải pháp được đăng ở đây bởi JorgeDeCorte, với việc đặt mã trong mục tiêu thử nghiệm, nhưng nó không hiệu quả với tôi.


8
Và quay lại iOS 8 beta 3 :)
Mustafa

7
Và quay lại trong iOS 9.0
Alex Stone

4
Và bây giờ trở lại trong iOS 9.2 :-(
Vamos

4
Quay trở lại iOS 10 beta 2
Pranjal Bikash Das

3
Và quay lại iOS 10 beta 5
Pascal

6

Hãy thử vô hiệu hóa tất cả các điểm dừng khi khởi chạy ứng dụng từ Xcode. Bạn có thể kích hoạt chúng sau đó.

(Không có cách giải quyết nào ở trên làm việc cho tôi)


Lạ thật. Có vẻ để khắc phục vấn đề này cho tôi quá! Mỗi lần tôi bắt đầu gỡ lỗi trên trình giả lập, tôi có thể trải nghiệm -34018 OSStatus.
midori

4

Tôi chỉ gặp vấn đề tương tự trên trình giả lập chạy 7.1 & 8.0. Trong khi thực hiện một số hoạt động đào, tôi nhận thấy rằng ứng dụng mẫu của Apple đã bật KeyChain Sharing cho các khả năng mục tiêu của nó. Tôi đã bật nó cho ứng dụng của mình, điều này dẫn đến việc tạo một tệp quyền lợi mà tôi để lại với các giá trị mặc định và bây giờ tôi không gặp phải lỗi -34018 nữa. Điều này không lý tưởng nhưng tôi sẽ sống tùy chọn chia sẻ KeyChain ngay bây giờ.


4

Việc mã hóa một gói .xctest không dễ như trong một số trường hợp. Về cơ bản, JorgeDeCorte đã đúng với câu trả lời của mình rằng dòng ngắn nhất định Run Scriptlà đủ cho hầu hết các nhà phát triển.

codesign --verify --force --sign "$CODE_SIGN_IDENTITY" "$CODESIGNING_FOLDER_PATH"

Nhưng khi bạn có nhiều chứng chỉ trong móc khóa, điều này sẽ thất bại với dòng sau

iPhone Developer: ambiguous (matches "iPhone Developer: Your Name (ABC123DEF45)" and "iPhone Developer: Your Name (123ABC456DE)"

Một giải pháp để có được chứng chỉ phù hợp ngay cả với nhiều người là kịch bản ngắn này. Chắc chắn điều này không lý tưởng, nhưng theo hiểu biết của tôi, bạn không có cơ hội nhận được chứng chỉ mà Xcode tìm thấy và sử dụng để ký .app của bạn.

echo "codesign --verify --force --sign \"$CODE_SIGN_IDENTITY\" \"$CODESIGNING_FOLDER_PATH\""
IDENTITIES=`security find-identity -v -s "Code Signing" | grep "iPhone Developer" | awk '{ print $2 }'`

for SHA in $IDENTITIES; do
    codesign --verify --force --sign $SHA "$CODESIGNING_FOLDER_PATH"
    if [ $? -eq 0 ]; then
        echo "Matching identity found: $SHA"
        exit 0
    fi
done;

exit 1

4

Tôi cũng bị cắn bởi điều này và không có thành công với bất kỳ cách giải quyết nào khác. Sau đó, tôi đã dọn sạch hồ sơ cung cấp của mình trên các thiết bị bằng cách xóa tất cả chúng liên quan đến ứng dụng của tôi cũng như tất cả các cấu hình ký tự đại diện (điều này dường như là điểm chính). Để thực hiện việc này, hãy chuyển đến Cửa sổ "Thiết bị" trong Xcode và nhấp chuột phải vào điện thoại (đã kết nối) của bạn:

Nhấp vào "Hiển thị hồ sơ cung cấp" và xóa những hồ sơ liên quan, và đặc biệt là hồ sơ nhóm:

bao gồm cả những người có dấu hoa thị. Sau khi cài đặt lại ứng dụng, mọi thứ trở lại bình thường.


Điều này giúp tôi chạy ứng dụng từ Xcode và tiếp tục quá trình phát triển.
salabaha

Khi xây dựng bản phát hành AdHoc, bạn có thể kiểm tra PP nào được sử dụng. nếu bạn thấy bất kỳ cấu hình XC: nào, hãy xóa chúng và làm mới PP của bạn!
doggod 17/03/2016

Tôi có thể thấy làm thế nào điều này có thể là một yếu tố. Thật là một mớ hỗn độn trong đó !! Dọn dẹp mùa thu
David

3

Tôi đã khắc phục vấn đề này (tôi nghĩ). Tôi đã có một hồ sơ cung cấp ký tự đại diện trên thiết bị của mình cho thấy nó không có danh tính ký hợp lệ. Tôi cũng đã có một hồ sơ cung cấp cho ứng dụng của tôi là hợp lệ. Khi tôi xóa hồ sơ ký tự đại diện, tôi đã ngừng nhận lỗi -34018.

Tôi cũng đảm bảo rằng danh tính ký mã và hồ sơ cung cấp mã được liệt kê trong phần Ký mã trong Cài đặt bản dựng của mục tiêu giống hệt với mã cho ứng dụng (không phải là "Nhà phát triển iPhone" chung chung)


Tương tự như vậy đã sửa nó cho tôi. Đặt ký mã cấp dự án thành "Nhà phát triển iPhone" cho Gỡ lỗi và "Phân phối iPhone" để phát hành. Sau đó tôi đã loại bỏ các phần ghi đè lên mục tiêu chính để chúng hiển thị giống nhau. Trước đây, việc lưu trong móc khóa đã thất bại 100%. Sau đó, tiết kiệm trong móc khóa có vẻ ổn định.
jowie

2

Tôi đã nhận được lỗi -34018 trong ứng dụng của mình (iOS 8.4) rất hiếm khi. Sau một số điều tra, tôi thấy rằng vấn đề này xảy ra khi ứng dụng yêu cầu dữ liệu từ móc khóa quá thường xuyên .
Ví dụ, trong tình huống của tôi, đó là hai yêu cầu đọc cho một khóa cụ thể cùng một lúc từ các mô-đun ứng dụng khác nhau.
Để khắc phục rằng tôi vừa thêm bộ đệm vào giá trị này trong bộ nhớ


1

Tôi đã gặp vấn đề tương tự, ngoài màu xanh, chạy trên thiết bị thử nghiệm với Xcode 6.2, iPhone 6, iOS 8.3. Để rõ ràng, điều này không có kinh nghiệm trong khi chạy thử nghiệm Xcode, mà là trong khi chạy ứng dụng thực tế trên thiết bị của tôi. Trong trình giả lập, nó vẫn ổn và chạy trên ứng dụng, nó đã hoàn toàn ổn cho đến gần đây.

Tôi đã thử tất cả các đề xuất mà tôi có thể tìm thấy ở đây, chẳng hạn như xóa các cấu hình cung cấp trên thiết bị của mình (tôi đã xóa TẤT CẢ chúng), tạm thời bật khả năng Chia sẻ Keychain trong dự án của tôi (mặc dù chúng tôi không thực sự cần điều đó), thực hiện chắc chắn tài khoản phát triển của tôi trong Xcode đã được làm mới hoàn toàn với tất cả các chứng chỉ và hồ sơ cung cấp, v.v. Không có gì giúp được.

Sau đó, tôi tạm thời thay đổi mức độ truy cập từ kSecAttrAccessibleAfterFirstUnlocksang kSecAttrAccessibleAlwaysThisDeviceOnly, chạy ứng dụng và nó hoạt động tốt và có thể ghi vào Keychain. Sau đó, tôi đã thay đổi nó trở lại kSecAttrAccessibleAfterFirstUnlock, và vấn đề dường như đã biến mất "vĩnh viễn".


1

Vừa bị lỗi này trên Xcode 8 Beta 3. Bật Keychain Sharing dường như là giải pháp duy nhất.


1

Tôi gặp vấn đề tương tự. Đã sửa nó bằng cách thiết lập Keychain Sharing.


1

(đây không phải là câu trả lời trực tiếp cho câu hỏi của OP, nhưng có thể giúp đỡ người khác)

Bắt đầu nhận được lỗi móc khóa -34018 liên tục trong trình giả lập sau khi cập nhật Xcode từ phiên bản 7.3.1 lên 8.0.

Làm theo lời khuyên này từ câu trả lời của daidai ,

Một số trường hợp của vấn đề là do ký ứng dụng không chính xác. Bạn có thể dễ dàng phân biệt trường hợp này vì vấn đề có thể tái tạo 100%.

người ta đã phát hiện ra rằng Hồ sơ cung cấp bằng cách nào đó đã được đặt thành Không có trong phần Ký kết của mục tiêu.

Tuy nhiên, đặt các trường Hồ sơ cung cấp thành các giá trị hợp lệ là không đủ để giải quyết vấn đề trong trường hợp này.

Điều tra sâu hơn cho thấy quyền lợi Thông báo đẩy cũng hiển thị một lỗi. Nó cho biết "Thêm tính năng Thông báo đẩy vào ID ứng dụng của bạn." bước đã được hoàn thành, nhưng bước "Thêm quyền lợi Thông báo đẩy vào tệp quyền lợi của bạn" thì không.

Sau khi nhấn "Khắc phục sự cố" để khắc phục sự cố Thông báo đẩy, lỗi móc khóa đã được khắc phục.

Đối với mục tiêu cụ thể này, quyền lợi "Chia sẻ Keychain" đã được bật vào một thời điểm trước đó. Tắt nó không gây ra lỗi móc khóa để xuất hiện lại cho đến nay, vì vậy không rõ liệu nó có cần thiết trong trường hợp này hay không.


0

Trong iOS 9 tôi đã tắt Địa chỉ vệ sinh và nó bắt đầu hoạt động trên thiết bị.


0

Giải pháp duy nhất hiệu quả với tôi trước tiên là lưu trữ con số không cho khóa được chỉ định và sau đó lưu trữ giá trị mới của tôi bằng một thao tác riêng. Nó sẽ không thành công do lỗi -34018 nếu tôi cố ghi đè giá trị hiện có. Nhưng miễn là tôi lưu trữ con số không trước, thì giá trị cập nhật sẽ được lưu trữ thành công ngay sau đó.


0

Tôi đã gặp vấn đề -34018 hôm nay khi chạy API SecItemDelete. Những gì tôi đã làm để khắc phục điều này là: 1. Theo dõi giải pháp @ k1th https://stackoverflow.com/a/33085955/889892 2. Chạy SecItemDelete trong luồng chính (Trước đây, nó đã đọc từ luồng chính, vì vậy chỉ cần căn chỉnh nó với xóa) .

Xin lỗi nó quay lại lần nữa :(


0

Bật chia sẻ Keychain trong khả năng của dự án của bạn, nó sẽ giải quyết vấn đề. nhập mô tả hình ảnh ở đây


0

Những gì làm việc cho tôi

  • Bật chia sẻ Keychain.
  • Sử dụng móc khóa càng ít càng tốt và lưu trữ dữ liệu trong bộ nhớ, UserPreferences, đĩa, v.v.
  • Thử lại nhiều lần các thao tác CRUD móc khóa nếu những lỗi này không thành công.
  • Sử dụng DispatchQueue.sync để lưu trữ / xóa / cập nhật dữ liệu.

0

Đối với tôi đó là một vấn đề ký ứng dụng. Tôi chỉ cần chuyển sang nhóm ký chính xác trong Xcode và lỗi không còn xảy ra nữa

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.