diff --git a/Source/Data b/Source/Data index c9fba699..65c77cd4 160000 --- a/Source/Data +++ b/Source/Data @@ -1 +1 @@ -Subproject commit c9fba699065cd3a427e6156e12ba3c2ec223b38c +Subproject commit 65c77cd48a887f9a2c68b9f722771e7e0c19ca15 diff --git a/Source/Modules/ControllerModules/KeyHandler_Core.swift b/Source/Modules/ControllerModules/KeyHandler_Core.swift index 58d06d9e..cfa0a337 100644 --- a/Source/Modules/ControllerModules/KeyHandler_Core.swift +++ b/Source/Modules/ControllerModules/KeyHandler_Core.swift @@ -238,7 +238,7 @@ class KeyHandler { } /// 獲取候選字詞陣列資料內容。 - var candidatesArray: [String] { + func candidatesArray(fixOrder: Bool = true) -> [String] { var arrNodes: [Megrez.NodeAnchor] = rawNodes var arrCandidates: [String] = [] @@ -262,7 +262,7 @@ class KeyHandler { } } } - if mgrPrefs.fetchSuggestionsFromUserOverrideModel, !mgrPrefs.useSCPCTypingMode { + if mgrPrefs.fetchSuggestionsFromUserOverrideModel, !mgrPrefs.useSCPCTypingMode, !fixOrder { let arrSuggestedUnigrams: [Megrez.Unigram] = fetchSuggestedCandidates().stableSort { $0.score > $1.score } let arrSuggestedCandidates: [String] = arrSuggestedUnigrams.map(\.keyValue.value) arrCandidates = arrSuggestedCandidates.filter { arrCandidates.contains($0) } + arrCandidates diff --git a/Source/Modules/ControllerModules/KeyHandler_States.swift b/Source/Modules/ControllerModules/KeyHandler_States.swift index a9e5c5e4..fad4108b 100644 --- a/Source/Modules/ControllerModules/KeyHandler_States.swift +++ b/Source/Modules/ControllerModules/KeyHandler_States.swift @@ -169,7 +169,7 @@ extension KeyHandler { InputState.ChoosingCandidate( composingBuffer: currentState.composingBuffer, cursorIndex: currentState.cursorIndex, - candidates: candidatesArray, + candidates: candidatesArray(fixOrder: mgrPrefs.useFixecCandidateOrderOnSelection), isTypingVertical: isTypingVertical ) } @@ -772,8 +772,7 @@ extension KeyHandler { return true } - // 此處僅借用該函式生成結果內的某個物件,不用糾結「是否縱排輸入」。 - let candidates = candidatesArray + let candidates = candidatesArray(fixOrder: true) guard !candidates.isEmpty else { IME.prtDebugIntel("3378A6DF") errorCallback() diff --git a/Source/Modules/IMEModules/mgrPrefs.swift b/Source/Modules/IMEModules/mgrPrefs.swift index d62688d9..6bf13e1f 100644 --- a/Source/Modules/IMEModules/mgrPrefs.swift +++ b/Source/Modules/IMEModules/mgrPrefs.swift @@ -57,6 +57,7 @@ struct UserDef { static let kShowHanyuPinyinInCompositionBuffer = "ShowHanyuPinyinInCompositionBuffer" static let kInlineDumpPinyinInLieuOfZhuyin = "InlineDumpPinyinInLieuOfZhuyin" static let kFetchSuggestionsFromUserOverrideModel = "FetchSuggestionsFromUserOverrideModel" + static let kUseFixecCandidateOrderOnSelection = "UseFixecCandidateOrderOnSelection" static let kCandidateTextFontName = "CandidateTextFontName" static let kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" @@ -274,6 +275,9 @@ public enum mgrPrefs { UserDefaults.standard.setDefault( mgrPrefs.fetchSuggestionsFromUserOverrideModel, forKey: UserDef.kFetchSuggestionsFromUserOverrideModel ) + UserDefaults.standard.setDefault( + mgrPrefs.useFixecCandidateOrderOnSelection, forKey: UserDef.kUseFixecCandidateOrderOnSelection + ) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeySCPC, forKey: UserDef.kUsingHotKeySCPC) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeyAssociates, forKey: UserDef.kUsingHotKeyAssociates) @@ -351,6 +355,9 @@ public enum mgrPrefs { @UserDefault(key: UserDef.kFetchSuggestionsFromUserOverrideModel, defaultValue: true) static var fetchSuggestionsFromUserOverrideModel: Bool + @UserDefault(key: UserDef.kUseFixecCandidateOrderOnSelection, defaultValue: false) + static var useFixecCandidateOrderOnSelection: Bool + static var minCandidateLength: Int { mgrPrefs.allowBoostingSingleKanjiAsUserPhrase ? 1 : 2 } @@ -584,7 +591,7 @@ extension mgrPrefs { UserDef.kCandidateTextFontName, UserDef.kCandidateKeyLabelFontName, UserDef.kCandidateKeys, UserDef.kAssociatedPhrasesEnabled, UserDef.kPhraseReplacementEnabled, UserDef.kUsingHotKeySCPC, UserDef.kUsingHotKeyAssociates, UserDef.kUsingHotKeyCNS, UserDef.kUsingHotKeyKangXi, UserDef.kUsingHotKeyJIS, - UserDef.kUsingHotKeyHalfWidthASCII, + UserDef.kUsingHotKeyHalfWidthASCII, UserDef.kUseFixecCandidateOrderOnSelection, ] } diff --git a/Source/Resources/Base.lproj/Localizable.strings b/Source/Resources/Base.lproj/Localizable.strings index 1ea7dee5..261aa368 100644 --- a/Source/Resources/Base.lproj/Localizable.strings +++ b/Source/Resources/Base.lproj/Localizable.strings @@ -84,6 +84,7 @@ // SwiftUI Preferences "(Shift+)Space:" = "(Shift+)Space:"; "Allow boosting / excluding a candidate of single kanji" = "Allow boosting / excluding a candidate of single kanji"; +"Always use fixed listing order in candidate window" = "Always use fixed listing order in candidate window"; "An accomodation for elder computer users." = "An accomodation for elder computer users."; "Apple ABC (equivalent to English US)" = "Apple ABC (equivalent to English US)"; "Apple Chewing - Dachen" = "Apple Chewing - Dachen"; diff --git a/Source/Resources/en.lproj/Localizable.strings b/Source/Resources/en.lproj/Localizable.strings index 1ea7dee5..261aa368 100644 --- a/Source/Resources/en.lproj/Localizable.strings +++ b/Source/Resources/en.lproj/Localizable.strings @@ -84,6 +84,7 @@ // SwiftUI Preferences "(Shift+)Space:" = "(Shift+)Space:"; "Allow boosting / excluding a candidate of single kanji" = "Allow boosting / excluding a candidate of single kanji"; +"Always use fixed listing order in candidate window" = "Always use fixed listing order in candidate window"; "An accomodation for elder computer users." = "An accomodation for elder computer users."; "Apple ABC (equivalent to English US)" = "Apple ABC (equivalent to English US)"; "Apple Chewing - Dachen" = "Apple Chewing - Dachen"; diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index 97071713..057cc480 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -84,6 +84,7 @@ // SwiftUI Preferences "(Shift+)Space:" = "(Shift+)Space:"; "Allow boosting / excluding a candidate of single kanji" = "即排除/即最優先にできる候補の文字数の最低限は1字とする"; +"Always use fixed listing order in candidate window" = "候補文字を固定順番で陳列する"; "An accomodation for elder computer users." = "年配なるユーザーのために提供した機能である。"; "Apple ABC (equivalent to English US)" = "Apple ABC (Apple U.S. キーボードと同じ)"; "Apple Chewing - Dachen" = "Apple 大千注音キーボード"; diff --git a/Source/Resources/zh-Hans.lproj/Localizable.strings b/Source/Resources/zh-Hans.lproj/Localizable.strings index 7b92f19e..81e9a423 100644 --- a/Source/Resources/zh-Hans.lproj/Localizable.strings +++ b/Source/Resources/zh-Hans.lproj/Localizable.strings @@ -84,6 +84,7 @@ // SwiftUI Preferences "(Shift+)Space:" = "(Shift+)空格键:"; "Allow boosting / excluding a candidate of single kanji" = "将可以就地升权/排除的候选字词的最短词长设为单个汉字"; +"Always use fixed listing order in candidate window" = "以固定顺序来陈列选字窗内的候选字"; "An accomodation for elder computer users." = "针对年长使用者的习惯而提供。"; "Apple ABC (equivalent to English US)" = "Apple ABC (与 Apple 美规键盘等价)"; "Apple Chewing - Dachen" = "Apple 大千注音键盘排列"; diff --git a/Source/Resources/zh-Hant.lproj/Localizable.strings b/Source/Resources/zh-Hant.lproj/Localizable.strings index b286d1f4..b4c27069 100644 --- a/Source/Resources/zh-Hant.lproj/Localizable.strings +++ b/Source/Resources/zh-Hant.lproj/Localizable.strings @@ -84,6 +84,7 @@ // SwiftUI Preferences "(Shift+)Space:" = "(Shift+)空格鍵:"; "Allow boosting / excluding a candidate of single kanji" = "將可以就地升權/排除的候選字詞的最短詞長設為單個漢字"; +"Always use fixed listing order in candidate window" = "以固定順序來陳列選字窗內的候選字"; "An accomodation for elder computer users." = "針對年長使用者的習慣而提供。"; "Apple ABC (equivalent to English US)" = "Apple ABC (與 Apple 美規鍵盤等價)"; "Apple Chewing - Dachen" = "Apple 大千注音鍵盤佈局"; diff --git a/Source/UI/PrefUI/suiPrefPaneDictionary.swift b/Source/UI/PrefUI/suiPrefPaneDictionary.swift index 48b75c57..acd69b3b 100644 --- a/Source/UI/PrefUI/suiPrefPaneDictionary.swift +++ b/Source/UI/PrefUI/suiPrefPaneDictionary.swift @@ -39,6 +39,8 @@ struct suiPrefPaneDictionary: View { forKey: UserDef.kAllowBoostingSingleKanjiAsUserPhrase) @State private var selFetchSuggestionsFromUserOverrideModel: Bool = UserDefaults.standard.bool( forKey: UserDef.kFetchSuggestionsFromUserOverrideModel) + @State private var selUseFixecCandidateOrderOnSelection: Bool = UserDefaults.standard.bool( + forKey: UserDef.kUseFixecCandidateOrderOnSelection) private let contentWidth: Double = { switch mgrPrefs.appleLanguages[0] { case "ja": @@ -147,6 +149,13 @@ struct suiPrefPaneDictionary: View { .onChange(of: selFetchSuggestionsFromUserOverrideModel) { value in mgrPrefs.fetchSuggestionsFromUserOverrideModel = value } + Toggle( + LocalizedStringKey("Always use fixed listing order in candidate window"), + isOn: $selUseFixecCandidateOrderOnSelection + ) + .onChange(of: selUseFixecCandidateOrderOnSelection) { value in + mgrPrefs.useFixecCandidateOrderOnSelection = value + } } } } diff --git a/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib b/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib index e8e96d1a..7dc12991 100644 --- a/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib +++ b/Source/WindowNIBs/Base.lproj/frmPrefWindow.xib @@ -1,6 +1,7 @@ + @@ -680,9 +681,9 @@ + - - - + + + - + + - - + - + + + + + - - - - - - - - + + + + + + + diff --git a/Source/WindowNIBs/en.lproj/frmPrefWindow.strings b/Source/WindowNIBs/en.lproj/frmPrefWindow.strings index 93d74f20..f586aeec 100644 --- a/Source/WindowNIBs/en.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/en.lproj/frmPrefWindow.strings @@ -42,6 +42,7 @@ "cf2-se-PDO.title" = "Dictionary and Language Models"; "chkAllowBoostingSingleKanjiAsUserPhrase.title" = "Allow boosting / excluding a candidate of single kanji"; "chkFetchSuggestionsFromUserOverrideModel.title" = "Applying typing suggestions from half-life user override model"; +"chkUseFixecCandidateOrderOnSelection.title" = "Always use fixed listing order in candidate window"; "dIN-TZ-67g.title" = "Space to +cycle candidates, Shift+Space to +cycle pages"; "E1l-m8-xgb.title" = "Advanced Settings"; "eia-1F-Do0.title" = "Auto-convert traditional Chinese glyphs to JIS Shinjitai characters"; diff --git a/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings b/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings index 3b111111..af59bae2 100644 --- a/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/ja.lproj/frmPrefWindow.strings @@ -42,6 +42,7 @@ "cf2-se-PDO.title" = "辞書と言語モデル"; "chkAllowBoostingSingleKanjiAsUserPhrase.title" = "即排除/即最優先にできる候補の文字数の最低限は1字とする"; "chkFetchSuggestionsFromUserOverrideModel.title" = "入力中で臨時記憶モジュールからお薦めの候補を自動的に選ぶ"; +"chkUseFixecCandidateOrderOnSelection.title" = "候補文字を固定順番で陳列する"; "dIN-TZ-67g.title" = "Shift+Space で次のページ、Space で次の候補文字を"; "E1l-m8-xgb.title" = "詳細設定"; "eia-1F-Do0.title" = "入力した繁体字を日文 JIS 新字体と自動変換"; diff --git a/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings b/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings index bb1acf76..06bb9035 100644 --- a/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/zh-Hans.lproj/frmPrefWindow.strings @@ -42,6 +42,7 @@ "cf2-se-PDO.title" = "辞典&語言模型"; "chkAllowBoostingSingleKanjiAsUserPhrase.title" = "将可以就地升权/排除的候选字词的最短词长设为单个汉字"; "chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字时自动套用来自半衰记忆模组的建议"; +"chkUseFixecCandidateOrderOnSelection.title" = "以固定顺序来陈列选字窗内的候选字"; "dIN-TZ-67g.title" = "Shift+Space 换下一页,Space 换选下一个候选字。"; "E1l-m8-xgb.title" = "进阶设定"; "eia-1F-Do0.title" = "自动将繁体中文字转换为日本简化字(JIS 新字体)"; diff --git a/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings b/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings index b98afaf4..acdb1ccc 100644 --- a/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings +++ b/Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings @@ -42,6 +42,7 @@ "cf2-se-PDO.title" = "辭典&語言模型"; "chkAllowBoostingSingleKanjiAsUserPhrase.title" = "將可以就地升權/排除的候選字詞的最短詞長設為單個漢字"; "chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字時自動套用來自半衰記憶模組的建議"; +"chkUseFixecCandidateOrderOnSelection.title" = "以固定順序來陳列選字窗內的候選字"; "dIN-TZ-67g.title" = "Shift+Space 換下一頁,Space 換選下一個候選字"; "E1l-m8-xgb.title" = "進階設定"; "eia-1F-Do0.title" = "自動將繁體中文字轉換為日本簡化字(JIS 新字體)"; diff --git a/Update-Info.plist b/Update-Info.plist index c3fdc05f..974b98f8 100644 --- a/Update-Info.plist +++ b/Update-Info.plist @@ -3,9 +3,9 @@ CFBundleShortVersionString - 1.7.2 + 1.7.3 CFBundleVersion - 1972 + 1973 UpdateInfoEndpoint https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist UpdateInfoSite diff --git a/vChewing.pkgproj b/vChewing.pkgproj index 2353d5e8..83ee1409 100644 --- a/vChewing.pkgproj +++ b/vChewing.pkgproj @@ -726,7 +726,7 @@ USE_HFS+_COMPRESSION VERSION - 1.7.2 + 1.7.3 TYPE 0 diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 66f78204..9ea7065c 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -1393,7 +1393,7 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -1405,7 +1405,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 12.3; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests; @@ -1434,7 +1434,7 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1442,7 +1442,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 12.3; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests; @@ -1476,7 +1476,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1500,7 +1500,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1533,7 +1533,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -1553,7 +1553,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1671,7 +1671,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; @@ -1708,7 +1708,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1740,7 +1740,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; @@ -1772,7 +1772,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1799,7 +1799,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -1825,7 +1825,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1852,7 +1852,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1972; + CURRENT_PROJECT_VERSION = 1973; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; @@ -1873,7 +1873,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.7.2; + MARKETING_VERSION = 1.7.3; PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "";