修复上传图片失败问题

This commit is contained in:
zeng 2026-01-27 15:16:20 +08:00
parent 261c75c8b7
commit 54aeb47fd9
2 changed files with 217 additions and 196 deletions

View File

@ -318,6 +318,7 @@ extension APUploadIAPListVC {
} }
let imaUrl = URL.init(fileURLWithPath: imgPath) let imaUrl = URL.init(fileURLWithPath: imgPath)
let uploadFileName = imaUrl.lastPathComponent.isEmpty ? imgName : imaUrl.lastPathComponent
guard let fileMD5 = URL.init(fileURLWithPath: imgPath).fileMD5() else { guard let fileMD5 = URL.init(fileURLWithPath: imgPath).fileMD5() else {
ascAPI.addMessage("内购商品截图文件错误:\(imgPath) ,无法生成 md5 值~") ascAPI.addMessage("内购商品截图文件错误:\(imgPath) ,无法生成 md5 值~")
return return
@ -333,10 +334,14 @@ extension APUploadIAPListVC {
} }
} }
ascAPI.addMessage("创建新的送审截图:\(product.reviewScreenshot)") ascAPI.addMessage("创建新的送审截图:\(uploadFileName)")
// //
let imaSize = imaUrl.fileSizeInt() let imaSize = imaUrl.fileSizeInt()
guard let shot = await ascAPI.createInAppPurchasesScreenshot(iapId: iapId, fileName: imgName, fileSize: imaSize) else { guard imaSize > 0 else {
ascAPI.addMessage("内购商品截图文件错误:\(imgPath) ,文件大小为 0~")
return
}
guard let shot = await ascAPI.createInAppPurchasesScreenshot(iapId: iapId, fileName: uploadFileName, fileSize: imaSize) else {
// //
ascAPI.addMessage("内购商品:\(product.productId) ,创建送审截图失败!❌ ") ascAPI.addMessage("内购商品:\(product.productId) ,创建送审截图失败!❌ ")
return return
@ -357,7 +362,7 @@ extension APUploadIAPListVC {
request.headers[header.name ?? ""] = header.value ?? "" request.headers[header.name ?? ""] = header.value ?? ""
} }
ascAPI.addMessage("上传新的送审截图:\(product.reviewScreenshot)") ascAPI.addMessage("上传新的送审截图:\(uploadFileName)")
// //
guard let response = try? await URLSession.shared.upload(for: request, fromFile: imaUrl) else { guard let response = try? await URLSession.shared.upload(for: request, fromFile: imaUrl) else {
ascAPI.addMessage("内购商品:\(product.productId) ,创建送审截图失败!上传图片异常~ ❌ ") ascAPI.addMessage("内购商品:\(product.productId) ,创建送审截图失败!上传图片异常~ ❌ ")
@ -368,7 +373,7 @@ extension APUploadIAPListVC {
return return
} }
ascAPI.addMessage("提交新的送审截图:\(product.reviewScreenshot)") ascAPI.addMessage("提交新的送审截图:\(uploadFileName)")
// //
if ((await ascAPI.updateInAppPurchasesScreenshot(iapShotId: shot.id, fileMD5: fileMD5)) != nil) { if ((await ascAPI.updateInAppPurchasesScreenshot(iapShotId: shot.id, fileMD5: fileMD5)) != nil) {
ascAPI.addMessage("内购商品:\(product.productId) ,送审截图上传成功!✅ ") ascAPI.addMessage("内购商品:\(product.productId) ,送审截图上传成功!✅ ")
@ -636,6 +641,7 @@ extension APUploadIAPListVC {
} }
let imaUrl = URL.init(fileURLWithPath: imgPath) let imaUrl = URL.init(fileURLWithPath: imgPath)
let uploadFileName = imaUrl.lastPathComponent.isEmpty ? imgName : imaUrl.lastPathComponent
guard let fileMD5 = URL.init(fileURLWithPath: imgPath).fileMD5() else { guard let fileMD5 = URL.init(fileURLWithPath: imgPath).fileMD5() else {
ascAPI.addMessage("订阅商品截图文件错误:\(imgPath) ,无法生成 md5 值~") ascAPI.addMessage("订阅商品截图文件错误:\(imgPath) ,无法生成 md5 值~")
return return
@ -651,10 +657,14 @@ extension APUploadIAPListVC {
} }
} }
ascAPI.addMessage("创建新的送审截图:\(product.reviewScreenshot)") ascAPI.addMessage("创建新的送审截图:\(uploadFileName)")
// //
let imaSize = imaUrl.fileSizeInt() let imaSize = imaUrl.fileSizeInt()
guard let shot = await ascAPI.createSubscriptionScreenshot(iapId: iapId, fileName: imgName, fileSize: imaSize) else { guard imaSize > 0 else {
ascAPI.addMessage("订阅商品截图文件错误:\(imgPath) ,文件大小为 0~")
return
}
guard let shot = await ascAPI.createSubscriptionScreenshot(iapId: iapId, fileName: uploadFileName, fileSize: imaSize) else {
// //
ascAPI.addMessage("订阅商品:\(product.productId) ,创建送审截图失败!❌ ") ascAPI.addMessage("订阅商品:\(product.productId) ,创建送审截图失败!❌ ")
return return
@ -675,7 +685,7 @@ extension APUploadIAPListVC {
request.headers[header.name ?? ""] = header.value ?? "" request.headers[header.name ?? ""] = header.value ?? ""
} }
ascAPI.addMessage("上传新的送审截图:\(product.reviewScreenshot)") ascAPI.addMessage("上传新的送审截图:\(uploadFileName)")
// //
guard let response = try? await URLSession.shared.upload(for: request, fromFile: imaUrl) else { guard let response = try? await URLSession.shared.upload(for: request, fromFile: imaUrl) else {
ascAPI.addMessage("订阅商品:\(product.productId) ,创建送审截图失败!上传图片异常~ ❌ ") ascAPI.addMessage("订阅商品:\(product.productId) ,创建送审截图失败!上传图片异常~ ❌ ")
@ -686,7 +696,7 @@ extension APUploadIAPListVC {
return return
} }
ascAPI.addMessage("提交新的送审截图:\(product.reviewScreenshot)") ascAPI.addMessage("提交新的送审截图:\(uploadFileName)")
// //
if ((await ascAPI.updateSubscriptionScreenshot(iapShotId: shot.id, fileMD5: fileMD5)) != nil) { if ((await ascAPI.updateSubscriptionScreenshot(iapShotId: shot.id, fileMD5: fileMD5)) != nil) {
ascAPI.addMessage("订阅商品:\(product.productId) ,送审截图上传成功!✅ ") ascAPI.addMessage("订阅商品:\(product.productId) ,送审截图上传成功!✅ ")

View File

@ -1143,6 +1143,17 @@ class APASCAPI {
} }
let shot = try await provider.request(request).data let shot = try await provider.request(request).data
return shot return shot
} catch APIProvider.Error.decodingError(let decodeError, let data) {
if let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any],
json["data"] is NSNull {
return nil
}
let err = APIProvider.Error.decodingError(decodeError, data)
handleError("获取订阅商品的送审截图异常: \(err.localizedDescription)")
return nil
} catch APIProvider.Error.requestFailure(let statusCode, let errorResponse, _) {
handleRequestFailure(statusCode, errorResponse)
return nil
} catch { } catch {
handleError("获取订阅商品的送审截图异常: \(error.localizedDescription)") handleError("获取订阅商品的送审截图异常: \(error.localizedDescription)")
return nil return nil