2025-10-28 21:13:13 +08:00
|
|
|
// !$*UTF8*$!
|
|
|
|
|
{
|
|
|
|
|
archiveVersion = 1;
|
|
|
|
|
classes = {
|
|
|
|
|
};
|
|
|
|
|
objectVersion = 77;
|
|
|
|
|
objects = {
|
|
|
|
|
|
|
|
|
|
/* Begin PBXFileReference section */
|
|
|
|
|
4E9410702EB09F90003658CB /* Bitcoin Monitoring.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Bitcoin Monitoring.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
|
|
|
/* End PBXFileReference section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
|
|
|
|
4E9410722EB09F90003658CB /* test1 */ = {
|
|
|
|
|
isa = PBXFileSystemSynchronizedRootGroup;
|
|
|
|
|
path = test1;
|
|
|
|
|
sourceTree = "<group>";
|
|
|
|
|
};
|
|
|
|
|
/* End PBXFileSystemSynchronizedRootGroup section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXFrameworksBuildPhase section */
|
|
|
|
|
4E94106D2EB09F90003658CB /* Frameworks */ = {
|
|
|
|
|
isa = PBXFrameworksBuildPhase;
|
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
|
files = (
|
|
|
|
|
);
|
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
|
};
|
|
|
|
|
/* End PBXFrameworksBuildPhase section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXGroup section */
|
|
|
|
|
4E9410672EB09F90003658CB = {
|
|
|
|
|
isa = PBXGroup;
|
|
|
|
|
children = (
|
|
|
|
|
4E9410722EB09F90003658CB /* test1 */,
|
|
|
|
|
4E9410712EB09F90003658CB /* Products */,
|
|
|
|
|
);
|
|
|
|
|
sourceTree = "<group>";
|
|
|
|
|
};
|
|
|
|
|
4E9410712EB09F90003658CB /* Products */ = {
|
|
|
|
|
isa = PBXGroup;
|
|
|
|
|
children = (
|
|
|
|
|
4E9410702EB09F90003658CB /* Bitcoin Monitoring.app */,
|
|
|
|
|
);
|
|
|
|
|
name = Products;
|
|
|
|
|
sourceTree = "<group>";
|
|
|
|
|
};
|
|
|
|
|
/* End PBXGroup section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXNativeTarget section */
|
|
|
|
|
4E94106F2EB09F90003658CB /* Bitcoin Monitoring */ = {
|
|
|
|
|
isa = PBXNativeTarget;
|
|
|
|
|
buildConfigurationList = 4E94107F2EB09F92003658CB /* Build configuration list for PBXNativeTarget "Bitcoin Monitoring" */;
|
|
|
|
|
buildPhases = (
|
|
|
|
|
4E94106C2EB09F90003658CB /* Sources */,
|
|
|
|
|
4E94106D2EB09F90003658CB /* Frameworks */,
|
|
|
|
|
4E94106E2EB09F90003658CB /* Resources */,
|
|
|
|
|
);
|
|
|
|
|
buildRules = (
|
|
|
|
|
);
|
|
|
|
|
dependencies = (
|
|
|
|
|
);
|
|
|
|
|
fileSystemSynchronizedGroups = (
|
|
|
|
|
4E9410722EB09F90003658CB /* test1 */,
|
|
|
|
|
);
|
|
|
|
|
name = "Bitcoin Monitoring";
|
|
|
|
|
packageProductDependencies = (
|
|
|
|
|
);
|
|
|
|
|
productName = test1;
|
|
|
|
|
productReference = 4E9410702EB09F90003658CB /* Bitcoin Monitoring.app */;
|
|
|
|
|
productType = "com.apple.product-type.application";
|
|
|
|
|
};
|
|
|
|
|
/* End PBXNativeTarget section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXProject section */
|
|
|
|
|
4E9410682EB09F90003658CB /* Project object */ = {
|
|
|
|
|
isa = PBXProject;
|
|
|
|
|
attributes = {
|
|
|
|
|
BuildIndependentTargetsInParallel = 1;
|
|
|
|
|
LastSwiftUpdateCheck = 1620;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
LastUpgradeCheck = 2600;
|
2025-10-28 21:13:13 +08:00
|
|
|
TargetAttributes = {
|
|
|
|
|
4E94106F2EB09F90003658CB = {
|
|
|
|
|
CreatedOnToolsVersion = 16.2;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
buildConfigurationList = 4E94106B2EB09F90003658CB /* Build configuration list for PBXProject "Bitcoin Monitoring" */;
|
|
|
|
|
developmentRegion = en;
|
|
|
|
|
hasScannedForEncodings = 0;
|
|
|
|
|
knownRegions = (
|
|
|
|
|
en,
|
|
|
|
|
Base,
|
|
|
|
|
);
|
|
|
|
|
mainGroup = 4E9410672EB09F90003658CB;
|
|
|
|
|
minimizedProjectReferenceProxies = 1;
|
|
|
|
|
preferredProjectObjectVersion = 77;
|
|
|
|
|
productRefGroup = 4E9410712EB09F90003658CB /* Products */;
|
|
|
|
|
projectDirPath = "";
|
|
|
|
|
projectRoot = "";
|
|
|
|
|
targets = (
|
|
|
|
|
4E94106F2EB09F90003658CB /* Bitcoin Monitoring */,
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
/* End PBXProject section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXResourcesBuildPhase section */
|
|
|
|
|
4E94106E2EB09F90003658CB /* Resources */ = {
|
|
|
|
|
isa = PBXResourcesBuildPhase;
|
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
|
files = (
|
|
|
|
|
);
|
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
|
};
|
|
|
|
|
/* End PBXResourcesBuildPhase section */
|
|
|
|
|
|
|
|
|
|
/* Begin PBXSourcesBuildPhase section */
|
|
|
|
|
4E94106C2EB09F90003658CB /* Sources */ = {
|
|
|
|
|
isa = PBXSourcesBuildPhase;
|
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
|
files = (
|
|
|
|
|
);
|
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
|
};
|
|
|
|
|
/* End PBXSourcesBuildPhase section */
|
|
|
|
|
|
|
|
|
|
/* Begin XCBuildConfiguration section */
|
|
|
|
|
4E94107D2EB09F92003658CB /* Debug */ = {
|
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
|
buildSettings = {
|
|
|
|
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
|
|
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
|
|
|
|
CLANG_ANALYZER_NONNULL = YES;
|
|
|
|
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
|
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
|
|
|
|
CLANG_ENABLE_MODULES = YES;
|
|
|
|
|
CLANG_ENABLE_OBJC_ARC = YES;
|
|
|
|
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
|
|
|
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
|
|
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_COMMA = YES;
|
|
|
|
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
|
|
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
|
|
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
|
|
|
|
CLANG_WARN_EMPTY_BODY = YES;
|
|
|
|
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
|
|
|
CLANG_WARN_INT_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
|
|
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
|
|
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
|
|
|
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
|
|
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
|
|
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
|
|
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
|
|
|
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
|
|
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
|
|
|
COPY_PHASE_STRIP = NO;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
DEAD_CODE_STRIPPING = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
|
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
|
|
|
ENABLE_TESTABILITY = YES;
|
|
|
|
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
|
|
|
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
|
|
|
|
GCC_DYNAMIC_NO_PIC = NO;
|
|
|
|
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
|
|
|
GCC_OPTIMIZATION_LEVEL = 0;
|
|
|
|
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
|
|
|
"DEBUG=1",
|
|
|
|
|
"$(inherited)",
|
|
|
|
|
);
|
|
|
|
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
|
|
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
|
|
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
|
|
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
|
|
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
|
|
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
|
|
|
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
|
|
|
|
|
MACOSX_DEPLOYMENT_TARGET = 14.8;
|
|
|
|
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
|
|
|
|
MTL_FAST_MATH = YES;
|
|
|
|
|
ONLY_ACTIVE_ARCH = YES;
|
|
|
|
|
SDKROOT = macosx;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
|
|
|
|
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
|
|
|
};
|
|
|
|
|
name = Debug;
|
|
|
|
|
};
|
|
|
|
|
4E94107E2EB09F92003658CB /* Release */ = {
|
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
|
buildSettings = {
|
|
|
|
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
|
|
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
|
|
|
|
CLANG_ANALYZER_NONNULL = YES;
|
|
|
|
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
|
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
|
|
|
|
CLANG_ENABLE_MODULES = YES;
|
|
|
|
|
CLANG_ENABLE_OBJC_ARC = YES;
|
|
|
|
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
|
|
|
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
|
|
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_COMMA = YES;
|
|
|
|
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
|
|
|
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
|
|
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
|
|
|
|
CLANG_WARN_EMPTY_BODY = YES;
|
|
|
|
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
|
|
|
CLANG_WARN_INT_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
|
|
|
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
|
|
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
|
|
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
|
|
|
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
|
|
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
|
|
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
|
|
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
|
|
|
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
|
|
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
|
|
|
COPY_PHASE_STRIP = NO;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
DEAD_CODE_STRIPPING = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
|
|
|
ENABLE_NS_ASSERTIONS = NO;
|
|
|
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
|
|
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
|
|
|
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
|
|
|
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
|
|
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
|
|
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
|
|
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
|
|
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
|
|
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
|
|
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
|
|
|
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
|
|
|
|
|
MACOSX_DEPLOYMENT_TARGET = 14.8;
|
|
|
|
|
MTL_ENABLE_DEBUG_INFO = NO;
|
|
|
|
|
MTL_FAST_MATH = YES;
|
|
|
|
|
SDKROOT = macosx;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
SWIFT_COMPILATION_MODE = wholemodule;
|
|
|
|
|
};
|
|
|
|
|
name = Release;
|
|
|
|
|
};
|
|
|
|
|
4E9410802EB09F92003658CB /* Debug */ = {
|
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
|
buildSettings = {
|
|
|
|
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
|
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
|
|
|
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
|
|
|
|
CODE_SIGN_ENTITLEMENTS = test1/test1.entitlements;
|
|
|
|
|
CODE_SIGN_STYLE = Automatic;
|
|
|
|
|
COMBINE_HIDPI_IMAGES = YES;
|
|
|
|
|
CURRENT_PROJECT_VERSION = 1;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
DEAD_CODE_STRIPPING = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
DEVELOPMENT_ASSET_PATHS = "\"test1/Preview Content\"";
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
ENABLE_APP_SANDBOX = YES;
|
|
|
|
|
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
ENABLE_PREVIEWS = YES;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
ENABLE_USER_SELECTED_FILES = readonly;
|
2025-10-28 21:13:13 +08:00
|
|
|
GENERATE_INFOPLIST_FILE = YES;
|
|
|
|
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
|
|
|
|
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
|
|
|
|
LD_RUNPATH_SEARCH_PATHS = (
|
|
|
|
|
"$(inherited)",
|
|
|
|
|
"@executable_path/../Frameworks",
|
|
|
|
|
);
|
|
|
|
|
MACOSX_DEPLOYMENT_TARGET = 12.4;
|
2025-10-29 21:19:18 +08:00
|
|
|
MARKETING_VERSION = 1.0.2;
|
2025-10-28 21:13:13 +08:00
|
|
|
PRODUCT_BUNDLE_IDENTIFIER = com.mark.test1;
|
|
|
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
|
|
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
|
|
|
|
SWIFT_VERSION = 5.0;
|
|
|
|
|
};
|
|
|
|
|
name = Debug;
|
|
|
|
|
};
|
|
|
|
|
4E9410812EB09F92003658CB /* Release */ = {
|
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
|
buildSettings = {
|
|
|
|
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
|
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
|
|
|
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
|
|
|
|
|
CODE_SIGN_ENTITLEMENTS = test1/test1.entitlements;
|
|
|
|
|
CODE_SIGN_STYLE = Automatic;
|
|
|
|
|
COMBINE_HIDPI_IMAGES = YES;
|
|
|
|
|
CURRENT_PROJECT_VERSION = 1;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
DEAD_CODE_STRIPPING = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
DEVELOPMENT_ASSET_PATHS = "\"test1/Preview Content\"";
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
ENABLE_APP_SANDBOX = YES;
|
|
|
|
|
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
|
2025-10-28 21:13:13 +08:00
|
|
|
ENABLE_PREVIEWS = YES;
|
✨ feat(ui): add configurable refresh interval and enhanced menu features
Major feature enhancement for the BTC price monitoring application:
### New Features
- **Configurable Refresh Intervals**: Users can now select from 5s, 10s, 30s, 60s options
- **Persistent Settings**: User preferences saved via UserDefaults
- **GitHub Integration**: Direct link to project repository via menu
- **Version Display**: Shows current app version in about dialog
- **Debug Logging**: Comprehensive debug output for development (Debug builds only)
### Implementation Details
- **AppSettings.swift**: New configuration management class
- **RefreshInterval.swift**: Enum defining refresh options with display text
- **Enhanced PriceManager**: Dynamic timer management with configurable intervals
- **Updated BTCMenuBarApp**: Added refresh settings submenu, GitHub link, and version info
- **Debug Infrastructure**: Conditional compilation logging throughout price update flow
### UI/UX Improvements
- **Refresh Settings Submenu**: Visual indicators (✓) for current selection
- **Enhanced About Dialog**: Shows current refresh interval and app version
- **Clean Menu Structure**: Organized with proper separators and SF Symbols
- **GitHub Button**: Quick access to project repository
### Code Quality
- **Removed Redundancy**: Deleted unused ContentView.swift template file
- **Comprehensive Comments**: Added detailed Chinese comments throughout
- **Error Handling**: Robust error handling with user-friendly messages
- **Architecture Clean**: Follows MVVM pattern with clear separation of concerns
### Files Changed
- Modified: BTCMenuBarApp.swift, PriceManager.swift, project.pbxproj
- Added: AppSettings.swift, RefreshInterval.swift
- Deleted: ContentView.swift (unused template)
- Updated: Entitlements, app entry point, and service files
BREAKING CHANGE: None - all changes are additive and backward compatible
2025-10-29 14:21:07 +08:00
|
|
|
ENABLE_USER_SELECTED_FILES = readonly;
|
2025-10-28 21:13:13 +08:00
|
|
|
GENERATE_INFOPLIST_FILE = YES;
|
|
|
|
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
|
|
|
|
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
|
|
|
|
LD_RUNPATH_SEARCH_PATHS = (
|
|
|
|
|
"$(inherited)",
|
|
|
|
|
"@executable_path/../Frameworks",
|
|
|
|
|
);
|
|
|
|
|
MACOSX_DEPLOYMENT_TARGET = 12.4;
|
2025-10-29 21:19:18 +08:00
|
|
|
MARKETING_VERSION = 1.0.2;
|
2025-10-28 21:13:13 +08:00
|
|
|
PRODUCT_BUNDLE_IDENTIFIER = com.mark.test1;
|
|
|
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
|
|
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
|
|
|
|
SWIFT_VERSION = 5.0;
|
|
|
|
|
};
|
|
|
|
|
name = Release;
|
|
|
|
|
};
|
|
|
|
|
/* End XCBuildConfiguration section */
|
|
|
|
|
|
|
|
|
|
/* Begin XCConfigurationList section */
|
|
|
|
|
4E94106B2EB09F90003658CB /* Build configuration list for PBXProject "Bitcoin Monitoring" */ = {
|
|
|
|
|
isa = XCConfigurationList;
|
|
|
|
|
buildConfigurations = (
|
|
|
|
|
4E94107D2EB09F92003658CB /* Debug */,
|
|
|
|
|
4E94107E2EB09F92003658CB /* Release */,
|
|
|
|
|
);
|
|
|
|
|
defaultConfigurationIsVisible = 0;
|
|
|
|
|
defaultConfigurationName = Release;
|
|
|
|
|
};
|
|
|
|
|
4E94107F2EB09F92003658CB /* Build configuration list for PBXNativeTarget "Bitcoin Monitoring" */ = {
|
|
|
|
|
isa = XCConfigurationList;
|
|
|
|
|
buildConfigurations = (
|
|
|
|
|
4E9410802EB09F92003658CB /* Debug */,
|
|
|
|
|
4E9410812EB09F92003658CB /* Release */,
|
|
|
|
|
);
|
|
|
|
|
defaultConfigurationIsVisible = 0;
|
|
|
|
|
defaultConfigurationName = Release;
|
|
|
|
|
};
|
|
|
|
|
/* End XCConfigurationList section */
|
|
|
|
|
};
|
|
|
|
|
rootObject = 4E9410682EB09F90003658CB /* Project object */;
|
|
|
|
|
}
|