feat(ios): Add iOS platform support with Local/Remote flavors#598
feat(ios): Add iOS platform support with Local/Remote flavors#598HankYuLinksys merged 4 commits intodev-2.0.0from
Conversation
- Add xcconfig-based build configuration system:
- Shared.xcconfig: Common settings (iOS 14.0, Swift 5.0, base bundle ID)
- Local.xcconfig: Bundle ID suffix .local, app name "Linksys (Local)"
- Remote.xcconfig: Bundle ID suffix .remote, app name "Linksys (Remote)"
- Debug-Local/Debug-Remote/Release-Local/Release-Remote.xcconfig for each build variant
- Add Xcode schemes:
- Local.xcscheme: Uses Debug-Local/Release-Local configurations
- Remote.xcscheme: Uses Debug-Remote/Release-Remote configurations
- Update Podfile to support 4 build configurations
- Update build_config.dart:
- Add runtime bundle ID detection for iOS/Android platforms
- Web continues to use String.fromEnvironment('force') at compile time
- Await BuildConfig.load() in main.dart to ensure initialization
- Update VSCode launch.json:
- Add "linksys - iOS (Local)" configuration
- Add "linksys - iOS (Remote)" configuration
- Reorder configurations (Local before Remote)
- Remove old Flutter default configurations:
- Delete Debug.xcconfig and Release.xcconfig
- Delete RunnerTests
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||
- Add explicit program entry point to iOS launch configurations in VSCode - Remove hardcoded DEVELOPMENT_TEAM from project.pbxproj - Add empty inputPaths/outputPaths arrays for Pods framework embedding
User description
Summary
forceCommandType) on iOS/Android--dart-define=force=xxxat compile timeBuild Methods
linksys - iOS (Local)linksys - iOS (Remote)flutter run --flavor Localflutter run --flavor RemoteConfiguration
com.linksys.privacygui.localcom.linksys.privacygui.remoteForce Mode Detection
PR Type
Enhancement
Description
Add complete iOS platform support with Local/Remote build flavors
Implement xcconfig-based build configuration system for four variants
Add Xcode schemes and VSCode launch configurations for iOS debugging
Implement runtime bundle ID detection for iOS/Android force mode
Update Podfile to support four build configurations
Diagram Walkthrough
File Walkthrough
3 files
Add runtime bundle ID detection for iOS/AndroidAwait BuildConfig.load() for async initializationAdd Swift AppDelegate for iOS app initialization20 files
Update Flutter SDK revision and platform metadataAdd iOS Local/Remote debug configurationsUpdate build configurations and remove RunnerTests targetDefine shared iOS build settings and base bundle IDConfigure Local flavor bundle ID and app nameConfigure Remote flavor bundle ID and app nameInclude Local and Pods debug configurationInclude Remote and Pods debug configurationInclude Local and Pods release configurationInclude Remote and Pods release configurationAdd Flutter framework metadata plist fileAdd complete Xcode project configuration with four build variantsAdd Xcode scheme for Local build configurationAdd Xcode scheme for Remote build configurationAdd Xcode workspace configuration fileAdd iOS app metadata and configuration plistAdd iOS main storyboard with FlutterViewControllerAdd iOS launch screen storyboardAdd app icon asset catalog configurationAdd Swift-Objective-C bridging header9 files