SuperAPI AI 工具集

ios-empty-project

编程与开发

查看项目

更新于 10-16 12:54

技能介绍

用途

ios-empty-project 用于从零生成最小化的 iOS 工程结构,作为后续开发的起点。它提供三种模板:SwiftUI、UIKit(Swift,纯代码)和 UIKit(Objective-C,纯代码)。

主要能力

  • 生成源码与资源:在 {ProjectName}/{ProjectName}/ 下创建对应模板的源码文件(main / AppDelegate / SceneDelegate / ViewController、Info.plist 等)。UIKit 工程(Swift/OC)必须包含 LaunchScreen.storyboard。
  • 直接生成 .xcodeproj:在工程根目录创建 {ProjectName}.xcodeproj/project.pbxproj,为合法 Xcode 工程格式,包含 PBXBuildFile、PBXFileReference、PBXGroup、PBXSourcesBuildPhase、PBXFrameworksBuildPhase、PBXResourcesBuildPhase、PBXNativeTarget、PBXProject 与 XCBuildConfiguration 等配置。
  • 关键 Build Settings:IPHONEOS_DEPLOYMENT_TARGET = 15.0,INFOPLIST_FILE = {ProjectName}/Info.plist,PRODUCT_BUNDLE_IDENTIFIER = com.example.{ProjectName},TARGETED_DEVICE_FAMILY = "1,2",GENERATE_INFOPLIST_FILE = NO(使用自定义 Info.plist 时);Swift 工程增加 SWIFT_VERSION = "5.0"。不引用不存在的 Asset Catalog。
  • 目录约定:工程根目录为 {ProjectName}/{ProjectName}.xcodeproj/ 与 {ProjectName}/{ProjectName}/(源码目录)。

使用方式

默认方式是直接生成 .xcodeproj,完成后可直接 open {ProjectName}.xcodeproj 编译运行,无需执行 xcodegen generate。若用户明确要求使用 XcodeGen,可额外提供 project.yml 并说明需本地执行 xcodegen generate。

XcodeGen 可选流程:安装命令为 brew install xcodegen(或 Mint:mint install yonaskolb/XcodeGen);创建工程目录;在工程根目录创建 project.yml;将模板源码放入 MyApp/MyApp/;运行 xcodegen generate;执行 open MyApp.xcodeproj。资料提供 SwiftUI、UIKit Swift、UIKit OC 三种 project.yml 示例。

模板选择

创建前需让开发者选择:Swift 还是 Objective-C?模板包括 Swift+SwiftUI(新项目首选,声明式 UI,代码量少)、Swift+UIKit(纯代码无 Storyboard)、Objective-C+UIKit(维护老项目、接入 OC 第三方库、团队偏好 OC)。

关键注意事项

  • Launch Screen(必须):UIKit 空工程(Swift/OC)必须包含 LaunchScreen.storyboard 并在 Info.plist 配置 UILaunchStoryboardName,否则在刘海屏设备上会出现非全屏(黑边)。SwiftUI 工程由系统处理,可不单独提供。
  • CFBundleExecutable:使用自定义 Info.plist 且 GENERATE_INFOPLIST_FILE = NO 时,必须配置 CFBundleExecutable 为 $(EXECUTABLE_NAME),否则真机安装会报「missing or invalid CFBundleExecutable」(CoreDeviceError 3002)。
  • Scene 配置:SwiftUI 工程无需 Info.plist 中的 Scene 配置;UIKit 纯代码工程需移除 UIMainStoryboardFile 等键,但保留 UILaunchStoryboardName = LaunchScreen;Objective-C 工程 UISceneDelegateClassName 须填 SceneDelegate(不要用 $(PRODUCT_MODULE_NAME).SceneDelegate)。
  • 最低支持版本建议 iOS 15+。

适用场景

适合需要快速获得可直接用 Xcode 打开的 iOS 工程骨架的开发者,也可作为集成百度地图 iOS SDK 的前置步骤。资料建议若用于集成百度地图 SDK,语言选择 Objective-C,并提前在 Info.plist 配置 CFBundleDisplayName 与 NSLocationWhenInUseUsageDescription,后续使用 baidu-map-ios-sdk 技能完成 Podfile、pod install、AppDelegate 初始化 BMKMapManager。

限制

SPM 初始化(swift package init --type executable)生成的是命令行可执行文件,不是 iOS App,iOS App 仍需 Xcode 工程。XcodeGen 方式需用户本地安装并执行命令。资料未提供具体收费、价格与效果数据。