diff --git a/AppleParty/AppleParty/AppListView/InAppPurchseView/APUploadIAPListVC.swift b/AppleParty/AppleParty/AppListView/InAppPurchseView/APUploadIAPListVC.swift index a636cd1..19b6f5f 100644 --- a/AppleParty/AppleParty/AppListView/InAppPurchseView/APUploadIAPListVC.swift +++ b/AppleParty/AppleParty/AppListView/InAppPurchseView/APUploadIAPListVC.swift @@ -445,7 +445,7 @@ extension APUploadIAPListVC { //订阅组设置国际化 if let group = currentSubGroup { - for localization in product.localizations { + if let localization = product.groupLocalization { let _ = await ascAPI.createSubscriptionGroupLocalizations(iapGroupId: group.id, name: localization.name, locale: localization.locale, customAppName: nil) } } @@ -478,7 +478,8 @@ extension APUploadIAPListVC { // 2. 商品本地化语言 ascAPI.addMessage("开始更新订阅商品本地化版本:\(product.productId)") let localizations = await ascAPI.fetchSubscriptionLocalizations(iapId: iap.id) - for localization in product.localizations { +// for localization in product.localizations { + if let localization = product.subscriptionLocalization { // 如果已经存在本地化语言,则更新 if let locale = localizations.filter({ $0.attributes?.locale == localization.locale }).first { // 更新 @@ -514,9 +515,12 @@ extension APUploadIAPListVC { } // 2. 商品本地化语言 - for localization in product.localizations { + if let localization = product.subscriptionLocalization { await createSubscriptionLocalization(iapId: iap.id, localization: localization, product: product, ascAPI: ascAPI) } +// for localization in product.localizations { +// await createSubscriptionLocalization(iapId: iap.id, localization: localization, product: product, ascAPI: ascAPI) +// } // 3. 商品价格档位 await updateSubscriptionPricePoint(iapId: iap.id, product: product, ascAPI: ascAPI) diff --git a/AppleParty/AppleParty/AppListView/InAppPurchseView/Models/IAPExcelParser.swift b/AppleParty/AppleParty/AppListView/InAppPurchseView/Models/IAPExcelParser.swift index 13d07f6..2af9924 100644 --- a/AppleParty/AppleParty/AppListView/InAppPurchseView/Models/IAPExcelParser.swift +++ b/AppleParty/AppleParty/AppListView/InAppPurchseView/Models/IAPExcelParser.swift @@ -71,6 +71,9 @@ struct IAPProduct { var reviewScreenshot: String = "" var familySharable: Bool = false var inAppPurchaseType: IAPType = .UNKNOW //# CONSUMABLE、NON_CONSUMABLE、NON_RENEWING_SUBSCRIPTION + var groupLocalization: IAPLocalization? + var subscriptionLocalization: IAPLocalization? + var localizations: [IAPLocalization] = [] // 订阅类型的特有 var subscriptions: IAPSubscriptions? @@ -186,6 +189,18 @@ struct IAPExcelParser { iap.reviewScreenshot = columnValues["F"] ?? "" iap.reviewNote = columnValues["G"] ?? "" + //订阅组国际化 + if let text = columnValues["H"], !text.isEmpty { + let localization = IAPLocalization(name: text, description: "", locale: "en-US") + iap.groupLocalization = localization + } + // 商品本地化名称和描述 + if let text = columnValues["I"], !text.isEmpty { + let des = columnValues["J"] ?? "" + let localization = IAPLocalization(name: text, description: des, locale: "en-US") + iap.subscriptionLocalization = localization + } + // 非法的行 if iap.productId.isEmpty, iap.name.isEmpty { continue @@ -214,28 +229,29 @@ struct IAPExcelParser { iap.territories = territory } + // 商品本地化名称和描述 - var localizations: [IAPLocalization] = [] - // 本地化的标识,从下标7开始,奇数遍历,成对出现的 - let columeMax = columnIndexs.count - let columeEndIndex = columnIndexs.count - 1 - for idx in stride(from: 7, to: columeEndIndex, by: 2){ - if idx + 1 <= columeMax { - let locale = columnTitles[idx] - let key1 = columnIndexs[idx] - let key2 = columnIndexs[idx+1] - let name = columnValues[key1] ?? "" - let description = columnValues[key2] ?? "" - if !name.isEmpty && !description.isEmpty { - var localization = IAPLocalization() - localization.locale = locale - localization.name = name - localization.description = description - localizations.append(localization) - } - } - } - iap.localizations = localizations +// var localizations: [IAPLocalization] = [] +// // 本地化的标识,从下标7开始,奇数遍历,成对出现的 +// let columeMax = columnIndexs.count +// let columeEndIndex = columnIndexs.count - 1 +// for idx in stride(from: 7, to: columeEndIndex, by: 2){ +// if idx + 1 <= columeMax { +// let locale = columnTitles[idx] +// let key1 = columnIndexs[idx] +// let key2 = columnIndexs[idx+1] +// let name = columnValues[key1] ?? "" +// let description = columnValues[key2] ?? "" +// if !name.isEmpty && !description.isEmpty { +// var localization = IAPLocalization() +// localization.locale = locale +// localization.name = name +// localization.description = description +// localizations.append(localization) +// } +// } +// } +// iap.localizations = localizations result.append(iap) } } diff --git a/IAP-20251024_142831.xlsx b/IAP-20251024_142831.xlsx index dbf1994..86affaa 100644 Binary files a/IAP-20251024_142831.xlsx and b/IAP-20251024_142831.xlsx differ