name: iosApp options: bundleIdPrefix: com.zhushenwudi.lovelivemusicplayer deploymentTarget: iOS: "18.0" createIntermediateGroups: true groupSortPosition: top # Match Flutter Runner configs (Debug / Release / Profile=AdHoc) configs: Debug: debug Release: release Profile: release settings: base: SWIFT_VERSION: "5.0" TARGETED_DEVICE_FAMILY: "1,2" CLANG_ENABLE_MODULES: YES ENABLE_BITCODE: NO ENABLE_USER_SCRIPT_SANDBOXING: NO # Xcode 15+/26 Debug Dylib puts app code in *.debug.dylib without App Group # entitlements → CFPrefs "client is not entitled" / Container null on simulator. ENABLE_DEBUG_DYLIB: NO # Synced from Flutter Runner (pubspec 1.7.4+74) MARKETING_VERSION: "1.7.4" CURRENT_PROJECT_VERSION: "74" SUPPORTED_PLATFORMS: "iphoneos iphonesimulator" ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES configs: Debug: CODE_SIGN_STYLE: Manual CODE_SIGN_IDENTITY: "Apple Development" "CODE_SIGN_IDENTITY[sdk=iphoneos*]": "iPhone Developer" DEVELOPMENT_TEAM: "" "DEVELOPMENT_TEAM[sdk=iphoneos*]": V73L9LHPCA Release: CODE_SIGN_STYLE: Manual CODE_SIGN_IDENTITY: "Apple Development" "CODE_SIGN_IDENTITY[sdk=iphoneos*]": "iPhone Distribution" DEVELOPMENT_TEAM: "" "DEVELOPMENT_TEAM[sdk=iphoneos*]": V73L9LHPCA VALIDATE_PRODUCT: YES Profile: CODE_SIGN_STYLE: Manual CODE_SIGN_IDENTITY: "Apple Development" "CODE_SIGN_IDENTITY[sdk=iphoneos*]": "iPhone Distribution" DEVELOPMENT_TEAM: "" "DEVELOPMENT_TEAM[sdk=iphoneos*]": V73L9LHPCA VALIDATE_PRODUCT: YES targets: iosApp: type: application platform: iOS sources: - path: iosApp excludes: - "Info.plist" - "**/*.entitlements" info: path: iosApp/Info.plist properties: CFBundleDisplayName: LLMP CFBundleName: LLMP CFBundleShortVersionString: "$(MARKETING_VERSION)" CFBundleVersion: "$(CURRENT_PROJECT_VERSION)" LSRequiresIPhoneOS: true CADisableMinimumFrameDurationOnPhone: true ITSAppUsesNonExemptEncryption: false LSApplicationCategoryType: public.app-category.music LSSupportsOpeningDocumentsInPlace: true UIFileSharingEnabled: true UIRequiresFullScreen: true UIStatusBarHidden: false UIViewControllerBasedStatusBarAppearance: false UIApplicationSupportsIndirectInputEvents: true UILaunchScreen: {} BGTaskSchedulerPermittedIdentifiers: - com.zhushenwudi.lovelivemusicplayer UIBackgroundModes: - audio - fetch - processing - remote-notification UISupportedInterfaceOrientations: - UIInterfaceOrientationPortrait "UISupportedInterfaceOrientations~ipad": - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight NSCameraUsageDescription: 需要获取摄像头权限扫描二维码 NSPhotoLibraryUsageDescription: 需要读取相册获取图片 NSLocalNetworkUsageDescription: 需要访问本地网络以连接电脑传输歌曲和同步数据 NSBonjourServices: - _llmp._tcp NSAppTransportSecurity: NSAllowsArbitraryLoads: true NSAllowsArbitraryLoads: true MOBAppKey: 375f94ab8316c MOBAppSecret: 9cac7a0532d211eb04fcf6b25b197859 LSApplicationQueriesSchemes: - mqq - mqqapi - timapi - mqqopensdkminiapp - mqqopensdkapiV2 - mqqopensdkapiV3 - mqqopensdkapiV4 - mqzoneopensdk - mqzoneopensdkapi - mqzoneopensdkapi19 - mqzoneopensdkapiV2 - mqqwpa - mqzone CFBundleURLTypes: - CFBundleTypeRole: Editor CFBundleURLName: qq CFBundleURLSchemes: - QQ0614FEC2 - CFBundleTypeRole: Editor CFBundleURLName: qzone CFBundleURLSchemes: - tencent102039234 - CFBundleTypeRole: Editor CFBundleURLName: llmp CFBundleURLSchemes: - llmp - CFBundleTypeRole: Editor CFBundleURLName: llmppush CFBundleURLSchemes: - llmppush # KMP / WidgetKit deep link (also used on Android) - CFBundleTypeRole: Editor CFBundleURLName: homeWidget CFBundleURLSchemes: - homeWidgetExample UIApplicationSceneManifest: UIApplicationSupportsMultipleScenes: true UISceneConfigurations: UIWindowSceneSessionRoleApplication: - UISceneConfigurationName: Default Configuration UISceneDelegateClassName: $(PRODUCT_MODULE_NAME).SceneDelegate CPTemplateApplicationSceneSessionRoleApplication: - UISceneConfigurationName: CarPlay Configuration UISceneDelegateClassName: $(PRODUCT_MODULE_NAME).CarPlaySceneDelegate # Base entitlements written by XcodeGen; Debug/Profile use Debug file, Release overrides below entitlements: path: iosApp/iosApp.entitlements properties: aps-environment: development com.apple.developer.associated-domains: - applinks:0524259523de2fc4f2a1a2a32df3efd8.share2dlink.com com.apple.developer.carplay-audio: true com.apple.developer.playable-content: true com.apple.security.application-groups: - group.com.zhushenwudi.lovelivemusicplayer settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.zhushenwudi.lovelivemusicplayer PRODUCT_NAME: LLMP INFOPLIST_FILE: iosApp/Info.plist INFOPLIST_KEY_CFBundleDisplayName: LLMP INFOPLIST_KEY_LSApplicationCategoryType: public.app-category.music ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS: YES LD_RUNPATH_SEARCH_PATHS: - $(inherited) - "@executable_path/Frameworks" FRAMEWORK_SEARCH_PATHS: - $(inherited) - "$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)" OTHER_LDFLAGS: - $(inherited) - -framework - ComposeApp - -lsqlite3 "EXCLUDED_ARCHS[sdk=iphonesimulator*]": $(inherited) configs: Debug: CODE_SIGN_ENTITLEMENTS: iosApp/iosApp.entitlements "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]": LLMP-M-DEVELOP PROVISIONING_PROFILE_SPECIFIER: "" Release: CODE_SIGN_ENTITLEMENTS: iosApp/iosAppRelease.entitlements "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]": LLMP-M-RELEASE PROVISIONING_PROFILE_SPECIFIER: "" Profile: CODE_SIGN_ENTITLEMENTS: iosApp/iosApp.entitlements "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]": LLMP-M-AD-HOC PROVISIONING_PROFILE_SPECIFIER: "" dependencies: - target: WidgetExtension embed: true postBuildScripts: - name: Verify Widget Extension Embedded basedOnDependencyAnalysis: false script: | set -euo pipefail APPEX="${TARGET_BUILD_DIR}/${WRAPPER_NAME}/PlugIns/WidgetExtension.appex" if [ ! -d "$APPEX" ]; then echo "error: WidgetExtension.appex is missing from ${TARGET_BUILD_DIR}/${WRAPPER_NAME}" echo "error: The app will install without widgets. Check WidgetExtension code signing." exit 1 fi echo "Widget extension embedded: $APPEX" preBuildScripts: - name: Build ComposeApp.framework basedOnDependencyAnalysis: false script: | set -euo pipefail cd "$SRCROOT/.." if [ "YES" = "${OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED:-}" ]; then echo "Kotlin framework was built by the IDE; syncing Compose resources only" ./gradlew -Pcompose.ios.resources.archs=arm64 :composeApp:syncComposeResourcesForIos --rerun exit 0 fi ./gradlew :composeApp:embedAndSignAppleFrameworkForXcode WidgetExtension: type: app-extension platform: iOS sources: - path: WidgetExtension excludes: - "Info.plist" - "**/*.entitlements" - "HomeWidgetExampleControl.swift" - "HomeWidgetExampleLiveActivity.swift" info: path: WidgetExtension/Info.plist properties: CFBundleDisplayName: LLMP CFBundleShortVersionString: "$(MARKETING_VERSION)" CFBundleVersion: "$(CURRENT_PROJECT_VERSION)" NSExtension: NSExtensionPointIdentifier: com.apple.widgetkit-extension entitlements: path: WidgetExtension/WidgetExtension.entitlements properties: com.apple.security.application-groups: - group.com.zhushenwudi.lovelivemusicplayer settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.zhushenwudi.lovelivemusicplayer.HomeWidgetExample PRODUCT_NAME: "$(TARGET_NAME)" INFOPLIST_FILE: WidgetExtension/Info.plist INFOPLIST_KEY_CFBundleDisplayName: LLMP INFOPLIST_KEY_NSHumanReadableCopyright: "" CODE_SIGN_ENTITLEMENTS: WidgetExtension/WidgetExtension.entitlements # Match Flutter HomeWidgetExampleExtension deployment IPHONEOS_DEPLOYMENT_TARGET: "17.0" ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME: WidgetBackground LD_RUNPATH_SEARCH_PATHS: - $(inherited) - "@executable_path/Frameworks" - "@executable_path/../../Frameworks" SKIP_INSTALL: YES SUPPORTS_MACCATALYST: NO GENERATE_INFOPLIST_FILE: YES "EXCLUDED_ARCHS[sdk=iphoneos*]": armv7 "EXCLUDED_ARCHS[sdk=iphonesimulator*]": $(inherited) configs: Debug: "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]": LLMP-M-DEVELOP-WIDGET PROVISIONING_PROFILE_SPECIFIER: "" Release: "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]": LLMP-M-RELEASE-WIDGET PROVISIONING_PROFILE_SPECIFIER: "" Profile: "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]": LLMP-M-AD-HOC-WIDGET PROVISIONING_PROFILE_SPECIFIER: "" schemes: # Main app scheme — do NOT list WidgetExtension with `run` / `all`, or XcodeGen # marks wasCreatedForAppExtension=YES and Run jumps to widget debug (needs _XCWidgetKind). # Widget still builds + embeds via iosApp → WidgetExtension dependency. iosApp: build: targets: iosApp: all run: config: Debug archive: config: Release profile: config: Profile # Only use this scheme when debugging WidgetKit itself (intentionally opens Home). WidgetExtension: build: targets: WidgetExtension: [run, test, profile, analyze, archive] iosApp: [run] run: config: Debug environmentVariables: _XCWidgetKind: HomeWidgetExampleWhite _XCWidgetFamily: systemMedium