After removing the UUIDs of the notarization requests, I was able to create the post.
Post
Replies
Boosts
Views
Activity
Hello @eskimo , Thank you. Only one of the UUIDs was problematic. Here it is
https://gist.github.com/atacan/ba7f47ac78f0f8ad79a9a70331ffa70d
It's the request ID from Jan 15, 2024 mentioned in the other post.
You are right! I just added one text view to the app's target and now it works.
I don't put any new view or logic in my app target files normally. Everything is in the Swift libraries. I'll file a feedback to be able to do that with localization.
The repo is updated:
https://github.com/atacan/DiscussionStringCatalogPackage/tree/main?tab=readme-ov-file#scenario-three-the-swift-package-and-the-app-have-a-string-catalog-but-the-app-has-a-text-view-and-its-text-is-localized
Hello @App Store Commerce Engineer ,
check if that trial is active or not
How can we get the date of the original purchase unaffected by refunds?
A Product has two properties that returns VerificationResult<Transaction>?: latestTransaction and currentEntitlement.
Testing it in Xcode, when I refund the free-trial non-consumable product and purchase it again, both of these properties' originalPurchaseDate and originalID refer to the latest purchase, not the original transaction that was refunded.
let latestTransactionVerificationResult = await freeTrialProduct.latestTransaction
switch latestTransactionVerificationResult {
case .verified(let signedType):
// check whether originalPurchaseDate is within the free trial period
let originalPurchaseDate = signedType.originalPurchaseDate
// returns the latest active one, not the original refunded one
logger.debug("freeTrial originalID: \(signedType.originalID)")
logger.debug("freeTrial originalPurchaseDate: \(signedType.originalPurchaseDate)")
logger.debug("freeTrial purchaseDate: \(signedType.purchaseDate)")
logger.debug("freeTrial signedDate: \(signedType.signedDate)")
//...
}
The answer to my question is to use Transaction.all https://developer.apple.com/documentation/storekit/transaction/3851203-all
I go through that sequence and store the minimum originalPurchaseDate associated with a particular StoreKit product ID to be used in the app.
Product > Clear All Issues will remove them.
In App Store Connect, App Information > Localizable Information > Name is the longer one. Developers do that to include keywords in the title hoping for good ASO.
The one that the users see when using the app is set and localizable in Xcode. Find the target in the project view then edit General > Display name field.
If you are using string catalogs, add InfoPlist.xcstrings file to your target. It will have CFBundleDisplayName key so that you can translate this name.
Hello, thank you.
I got the same error. Here is what I did.
Xcode > Organizer > Distribute App > Custom > Copy App
ditto -c -k --keepParent AppName.app/ AppName.zip
xcrun notarytool submit AppName.zip --keychain-profile "notarytool-password" --wait
I ran the same command also after making Xcode 16 Beta 3 the active Xcode. I got the same error.
The error I see is the following:
Conducting pre-submission checks for AppName.zip and initiating connection to the Apple notary service...
Submission ID received
id: 27810ac1-0c04-4bd8-a24a-13d868846d2f
Error: abortedUpload(resumeRequest: SotoS3.S3.ResumeMultipartUploadRequest(uploadRequest: SotoS3.S3.CreateMultipartUploadRequest(acl: nil,
bucket: "notary-submissions-prod",
bucketKeyEnabled: nil,
cacheControl: nil,
contentDisposition: nil,
contentEncoding: nil,
contentLanguage: nil,
contentType: nil,
expectedBucketOwner: nil,
_expires: SotoCore.OptionalCustomCoding<SotoCore.HTTPHeaderDateCoder>(value: nil),
grantFullControl: nil,
grantRead: nil,
grantReadACP: nil,
grantWriteACP: nil,
key: "prod/AROARQRX7CZS3PRF6ZA5L:27810ac1-0c04-4bd8-a24a-13d868846d2f",
metadata: nil,
objectLockLegalHoldStatus: nil,
objectLockMode: nil,
_objectLockRetainUntilDate: SotoCore.OptionalCustomCoding<SotoCore.ISO8601DateCoder>(value: nil),
requestPayer: nil,
serverSideEncryption: nil,
sSECustomerAlgorithm: nil,
sSECustomerKey: nil,
sSECustomerKeyMD5: nil,
sSEKMSEncryptionContext: nil,
sSEKMSKeyId: nil,
storageClass: nil,
tagging: nil,
websiteRedirectLocation: nil),
uploadId: "8PznO1GCHLY.4hhKSVqntQf7LBaIox10kzjo1pkXmO4z1noX7qMXhKYYBh0WKJIRq4mKAvbcHzfVCKsGuBB4okUpWt46X0K8Me.kRDXQaYJeBsEaj_lPKfqiJGNZi06P8glRt6ZFnf.E7_97sfrmYsJl4KRowteprR3YMKtGG13Z6vfLzK7kqRcfh3n.bddj",
completedParts: []),
error: The operation couldn’t be completed. (Network.NWError error 60 - Operation timed out))
Hello, thank you. I tried it using my phone's hotspot. Would that count? I got the same error.
To see if there is something wrong with this particular app, I tried to notarize another app of mine, that is currently distributed on the Mac App Store. Trying to notarize the build that was accepted to App Store also gives the same error.
I've been able to notarize the app. I have no idea about what's changed.
If it had failed, I was going to test it after disabling iCloud+ private relay but it worked when it was on.
Hello, I got the same error again today.
Below is the notarization logs
[v1.0(22782)][20:24:28.938Z] Debug [DEBUG] Instantiating APITaskManager for use with GS Tokens.
[v1.0(22782)][20:24:28.939Z] Debug [DEBUG] Instantiated AKSession for service: com.apple.dt.Xcode, sourceApp: com.apple.gs.xcode.auth
[v1.0(22782)][20:24:28.939Z] Info [API] Initialized Notary API with base URL: https://appstoreconnect.apple.com/notary/v2/
[v1.0(22782)][20:24:28.940Z] Debug [FILEHASH] Generating md5 and sha256 digest with buffer size 1048576 for file:///var/folders/h0/tfkdn065565fkgnh9j_x54p00000gn/T/XcodeDistPipeline.~~~AdgxIB/Packages/MyAppName.zip
[v1.0(22782)][20:24:29.026Z] Debug [FILEHASH] MD5 digest: c27d7228b9ea9b7b1c49bc6ea798f0ac
[v1.0(22782)][20:24:29.026Z] Debug [FILEHASH] Base64-encoded MD5 Digest: **1yKLnqm3scSbxup5jwrA==
[v1.0(22782)][20:24:29.026Z] Debug [FILEHASH] SHA256 digest: f7a67ca7e69f57b773619acab2e0a3ce31c6c824ade4ce32b577a5878dae24a0
[v1.0(22782)][20:24:29.026Z] Debug [FILEHASH] Finished generating file hashes for MyAppName.zip. Operation took 85ms.
[v1.0(22782)][20:24:29.032Z] Debug [API] Sending submissions payload: submissionPayload(submissionName: "MyAppName.zip", md5: "c27d7228b9ea9b7b1c49bc6ea798f0ac", sha256: "f7a67ca7e69f57b773619acab2e0a3ce31c6c824ade4ce32b577a5878dae24a0", notifications: [APNSRegistration(deviceId: "7C46F04CBC66E26E310057E5CC2C497B141F2FF8F94B8C81E307D8537F107D78", topic: "com.apple.dt.Xcode", identifier: "MyAppName")])
[v1.0(22782)][20:24:29.033Z] Info [API] Preparing POST request to URL: https://appstoreconnect.apple.com/notary/v2/submissions?, Custom Headers: private<Dictionary<String, String>>
[v1.0(22782)][20:24:29.033Z] Debug [AUTHENTICATION] Authenticating request to '/notary/v2/submissions' with Xcode GrandSlam token. ID: 001869-08-2bf2a57c-247f-4fb4-8e85-c49ad15d33d3:gstoken
[v1.0(22782)][20:24:29.033Z] Debug [DEBUG] GSToken request headers: private<Dictionary<String, String>>
[v1.0(22782)][20:24:29.034Z] Debug [TASKMANAGER] Starting Task Manager loop to wait for asynchronous HTTP calls.
[v1.0(22782)][20:24:29.785Z] Debug [API] Received response status code: 200, message: no error, URL: https://appstoreconnect.apple.com/notary/v2/submissions?, Correlation Key: K7CIFIIHY5UUWVC4DFLOMRMFPY
[v1.0(22782)][20:24:29.785Z] Debug [TASKMANAGER] Completed Task with ID 1 has received a parsable response.
[v1.0(22782)][20:24:29.785Z] Debug [TASKMANAGER] Ending Task Manager loop.
[v1.0(22782)][20:24:29.788Z] Debug [UPLOAD] File sized 36.3 MB w/ min calculated part size: 37.1 KB. Multipart upload chunk size: 5.00 MB
[v1.0(22782)][20:24:29.797Z] Debug [UPLOAD] File sized 36.3 MB w/ min calculated part size: 37.1 KB. Multipart upload chunk size: 5.00 MB
[v1.0(22782)][20:24:29.797Z] Info [UPLOAD] Starting S3 multipart upload of file at 'file:///var/folders/h0/tfkdn065565fkgnh9j_x54p00000gn/T/XcodeDistPipeline.~~~AdgxIB/Packages/MyAppName.zip' with part size 5 MB to Bucket: notary-submissions-prod, Key: prod/AROARQRX7CZS3PRF6ZA5L:ce19c607-6400-447e-9f48-fb8e2102ea56
[v1.0(22782)][20:24:58.536Z] Info [UPLOAD] An error occurred during multipart upload. Retrying exactly once from the last completed part. Error: The operation couldn’t be completed. (Network.NWError error 60 - Operation timed out)
[v1.0(22782)][20:25:30.964Z] Debug [UPLOAD] Successfully aborted multipart upload with uploadID: 9dyT_Zv8zgk1_Yq0dlWbmCBc2QLsq3n7AivzgvmiAPEXHg.HCadmmOmvCUu8foRcqzzaOw.zxNTywTn41j3sg9_h9JLu5jyQLoEQMbtGzlF_NMOhZ9MLUy0PFPQz_vDEet4DVOBh.t9dhPJUwWdX91FJhHZaYiD9yOrdzKBrZWcXgn0sccb.A.nvbWhTSTbq
[v1.0(22782)][20:25:30.966Z] Info [UPLOAD] Attempting to shutdown local S3 upload service.
[v1.0(22782)][20:25:30.966Z] Info [UPLOAD] Successfully shutdown local S3 upload service.
Hello,
I turned off Private Relay (but this affects only Safari to my knowledge, right?),
connected to the Hotspot of my iPhone,
bumped the build number by 20 (to make sure not to use a build number that failed before).
This time upload was successful.
Notarization result was interesting though. It was notarized with a yellow exclamation point. When I looked at the status log, what I see is in the attachment.
Unable to find API request response with task ID 2 for GET submissions/ d630eb27-00c0-4523-bb0a-60729272f529/logs.