Приложение Mac App Store для проверки получения (от получателя) повреждено и не может быть открыто.

Я использую Receigen (http://receigen.etiemble.com/) для проверки получения одного моих приложений для MacOS. Это прекрасно работало несколько лет, но кое-что изменилось. Я не обновлял это приложение в течение года или около того и отправил изменение, но оно было отклонено, потому что проверка квитанции не работала.

Когда я пытаюсь проверить квитанции локально, появляется логин в App Store, я ввожу свой адрес электронной почты и пароль, а затем получаю сообщение «приложение повреждено».

Я использовал Receigen Code Assistant для генерации кода проверки (он генерирует код проверки квитанции и рандомизирует его настолько, насколько это возможно, поэтому вы не можете легко взломать каждое приложение, которое использует Receigen).

Я использую macOS 10.14.3 и Xcode 10.2.

Это заголовок из моего кода, сгенерированного получателем:

//    
// This code was generated by RECEIGEN 4.0.4 on 2019-04-08 15:54:01 and will use:    
//    
// Bundle Identifier            : com.inadaydevelopment.mac10biiFinancialCalculator    
// Bundle Version               : 2.1.0    
// Receipt Identifier           : com.inadaydevelopment.mac10biiFinancialCalculator    
// Receipt Version              : 2.1.0    
//    
// Language                     : ObjC    
// Platform                     : OSX    
// Code Prefix                  : ReceiptValidation    
// Success Behavior             : RunApplication    
// Failure Behavior             : ExitWith173    
//    
// Certificate Name             : Apple Root CA    
// Certificate Fingerprint      : 611E5B662C593A08FF58D14AE22452D198DF6C60    
// Signer Certificate OID       : 1.2.840.113635.100.6.11.1    
//    
// OpenSSL Version              : 1.0    
//    
// This generated code has to be linked with OpenSSL libcrypto (either statically or dynamically)    
// Refer to the website for more details and specific cases.    
//

Я проверил, что идентификатор пакета и версия соответствуют тому, что у меня есть в XCode (текстовое поле недостаточно длинное, но оно ДЕЙСТВИТЕЛЬНО начинается с com.inaday ...):

введите здесь описание изображения

Я просмотрел страницу диагностики Receigen, чтобы увидеть возможные исправления для этого, но ничего не помогло:

1) Я просмотрел / искал в своей консоли какие-либо записи «storeagent», но не нашел их. Возможно, на странице диагностики есть информация для более старой версии macOS?

2) Я выполнил команды killall и rm -r, чтобы исправить любые проблемы с кешированием, связанные с поврежденным сообщением. Я тоже несколько раз перезагружался.

3) Я заглянул внутрь пакета приложения и не увидел квитанции.

4) Я удалил единственную другую копию приложения, о которой мне известно (ту, которую я установил из App Store), и попробовал все снова. Та же проблема.

5) Пытался удалить контейнер. Та же проблема.

6) Я попробовал "sudo pkill -f CommerceKit". Та же проблема.

Вот что я обнаружил в своей консоли:

ReceiptRefreshRequest: Ошибка при получении квитанции для / Users / kenny / Library / Developer / Xcode / DerivedData / 10bii_Financial_Calculator-edfoaceclymbdsazqdpinclhsejp / Build / Products / Debug / 10bii Financial Calculator.app - Error Domain = com.apple.commerce.server нулевой)"

Вот полный раздел из консоли:

default 11:52:42.776265 -0700   commerce    StoreSession: StatusCode: 200; <private>; Environment: SB; URL: https://p100-sandbox.itunes.apple.com/WebObjects/MZFinance.woa/wa/createAppReceipt
debug   11:52:42.776776 -0700   commerce    looked up value <private> for key PrimaryAccount:1 in CFPrefsPlistSource<0x7fe4eb803860> (Domain: com.apple.appstore.commerce, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No)
debug   11:52:42.776811 -0700   commerce    looked up value <private> for key KnownAccounts:1 in CFPrefsPlistSource<0x7fe4ea6058a0> (Domain: com.apple.commerce, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No)
debug   11:52:42.776909 -0700   commerce    Handling response <private> for URL <private>...
debug   11:52:42.776943 -0700   commerce    No handling for HTTP status code 200 in response for URL <private>
default 11:52:42.777268 -0700   storeuid    ReceiptRefreshRequest: Error fetching receipt for /Users/kenny/Library/Developer/Xcode/DerivedData/10bii_Financial_Calculator-edfoaceclymbdsazqdpinclhsejp/Build/Products/Debug/10bii Financial Calculator.app - Error Domain=com.apple.commerce.server Code=500317 "(null)"
debug   11:52:42.777338 -0700   storeuid    Bundle: <private>, key: APP_IS_DAMAGED_TITLE, value: , table: MacAppStore, localizationName: (null), result: APP_IS_DAMAGED_TITLE
debug   11:52:42.777400 -0700   storeuid    Bundle: <private>, key: APP_IS_DAMAGED_TITLE, value: , table: Localizable, localizationName: (null), result: “%@” is damaged and can’t be opened. Delete “%@” and download it again from the App Store.
debug   11:52:42.777427 -0700   storelegacy Bundle: <private>, key: com.apple.commerce.server, value: com.apple.commerce.server, table: Error, localizationName: (null), result: com.apple.commerce.server
debug   11:52:42.777496 -0700   storeuid    Resource lookup at <private>
    Request       : appStore type: icns
    Result        : file:///System/Library/PrivateFrameworks/CommerceKit.framework/Resources/appStore.icns
debug   11:52:42.777471 -0700   storelegacy Bundle: <private>, key: The operation couldn\U2019t be completed. (%@ error %ld.), value: The operation couldn\U2019t be completed. (%@ error %ld.), table: Error, localizationName: (null), result: The operation couldn’t be completed. (%1$@ error %2$ld.)
debug   11:52:42.777544 -0700   storeuid    Bundle: <private>, key: OK, value: , table: MacAppStore, localizationName: (null), result: OK
default 11:52:42.777540 -0700   storelegacy StoreLegacy: Failed to renew receipt for application at path /Users/kenny/Library/Developer/Xcode/DerivedData/10bii_Financial_Calculator-edfoaceclymbdsazqdpinclhsejp/Build/Products/Debug/10bii Financial Calculator.app : 'The operation couldn’t be completed. (com.apple.commerce.server error 500317.)'

person Kenny Wyland    schedule 09.04.2019    source источник


Ответы (1)


Нашел здесь ответ, воспроизведенный ниже на случай, если оригинал исчезнет: https://forums.developer.apple.com/thread/92419

Проблема заключалась в том, что я пытался войти, используя свою обычную учетную запись iTunes.


... пользователь должен использовать Apple ID тестового пользователя Sandbox, не свой собственный Apple ID, который в то время мне не был понятен. Кроме того, я обнаружил, что пользователю необходимо выйти из Mac App Store со своим Apple ID, чтобы иметь возможность даже ввести Apple ID тестового пользователя песочницы по запросу.

Однако учетные записи тестовых пользователей песочницы зависят от страны. Итак, вам нужен тестовый пользователь Sandbox для каждой страны. И прямо сейчас у меня очень похожие сообщения об ошибках для пользователя в новой стране. Мне, вероятно, придется использовать другой запрос DTS, чтобы понять это.

person Kenny Wyland    schedule 28.05.2019