Post

Replies

Boosts

Views

Activity

Reply to String catalogs from a Swift package Not loaded
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
Mar ’24
Reply to One-time purchase with free trial
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)") //... }
Apr ’24
Reply to Different App Names
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.
May ’24
Reply to Notarization: The operation couldn't be completed. (SotoS3.S3ErrorType.multipart error 1.)
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))
Jul ’24
Reply to Notarization: The operation couldn't be completed. (SotoS3.S3ErrorType.multipart error 1.)
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.
Sep ’24
Reply to Notarization: The operation couldn't be completed. (SotoS3.S3ErrorType.multipart error 1.)
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.
Sep ’24