XCode+Swift应用开发
综合
苹果全球开发者大会(英语:Apple Worldwide Developers Conference,缩写:WWDC)是苹果公司每年定期于美国加州举办的信息技术活动,该活动通常在加州圣何塞会议中心举行。
Siri(西丽/女人名) 音标为[siri] 发音类似“C瑞”。
iPad OS 17+支持了UVC协议;iOS 16.4 + 支持了 Add to Home Screen、Web Push API 和 Badging API;
iTunes 下载(新版已无法安装*.ipa应用) - https://www.apple.com.cn/itunes/ Apple Configurator for Mac(“从我的Mac选取...”*.ipa应用安装至真机/控制台输出iPhone日志) - https://apps.apple.com/app/id1037126344
iOS封闭情况
“苹果税” - 实体商品和服务(网约车、外卖、广告联盟)免费,但对内购数字商品和服务收30%佣金,外购浏览器交易则不提成;国内应用平台对广告联盟则会分成。 未开放或严重受限: 第三方应用市场(只能用App Store/已放开欧洲市场)、第三方浏览器引擎(只能用WebKit)、NFC API(受限) 短信新标准RCS、TYPE-C接口(刚支持) 文件管理: iOS浏览器Safari上传文件时,只能选取某app固定目录沙盒内的文件,即没有公共文件区域(根目录无法存放文件),故必须安装一个文件管理器app,否则没法存储。
iOS开发
iOS官方Swift下载 iOS编程开发 Swift单元测试 iOS开发的3种Timer定时器 Apple Developer Program 的年费为 99 美元,Apple Developer Enterprise Program 的年费为 299 美元;开发阶段只需Apple ID即可,开发者中心账号未付费前则无App上架入口。 您的苹果开发者账号每年需要续费,否则到期后应用市场会无法搜索到 App。续费以后就会重新显示,若想付费推广可开通 Apple Ads。 *.ipa文件是变种的zip压缩包,其Payload目录包含了*.app,而*.app则是可直接运行在iOS模拟器的程序格式。 最低支持版本首选支持主屏幕小部件的iOS 14,其次为支持UVC设备的iOS 17。 上传至 App Store Connect 的 App 必须是Xcode 15+iOS 17。 iPhone App 图标(主屏幕):180x180px (@3x);App Store网页图标最低要求则为1024x1024px。 iOS程序示例:iOS 13+才支持SwiftUI,低版本可用Storyboard(UIKit)。 说明 - Storyboard空项目包含了iOS 13的特性,故应该参照修改 兼容早期版本的写法;Info.plist(SwiftUI无此文件) 指定主入口 Main.storyboard 即 <key>UISceneStoryboardFile</key><string>Main</string>。 注意 - 未安装git则创建项目时勿勾上“生成git”;若模拟器内白屏可最大化再恢复来重绘下;xcode新建app项目并部署到模拟器(默认iPhone 16 Pro型号),全程无需apple账号。 HiApp.swift import SwiftUI @main struct LandmarksApp: App { var body: some Scene { WindowGroup { ContentView() } } } ContentView.swift import SwiftUI struct ContentView: View { var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") } .padding() } } #Preview { // 可选 - 编辑器预览应用UI ContentView() } class Player { var obj = MyClass() let playerName: String func complete(level: Int) { obj.method(to: level + 1) method(x: 0) } // 声明了argumentLabel的参数,调用时必须写成(参数名: 实参)。 func method(argumentLabel x: String) -> String { return x; } init(name: String) { playerName = name } } XCode: 注意 - iOS模拟器Run应用不需要“Development team”,但真机则需要。 说明 - 开发者官网下载离线安装包Xcode_*.*.xip也要网页登录,总下载列表 - https://developer.apple.com/download/all/?q=xcode (3GiB的xcode.xip解压为xcode.app后占12GiB/macOS兼容性) - https://developer.apple.com/cn/xcode/ 纯命令行xcode构建工具只有约1.5GiB,若不需要写代码可采用之:xcode-select --install 安装后路径 /Library/Developer/CommandLineTools Mac App Store安装的XCode位置查看(默认值/Applications/Xcode.app/Contents/Developer):xcode-select -p 直接将xip放到“访达”->“应用程序”下,双击会直接解压为Xcode.app,就不用剪切了;或解压xip后复制到/Applications/中。 双击Xcode,勾上8GiB的“iOS 18.0 Simulator”,会自动下载安装,不像网页需要登录,还应将其位置通知给系统:sudo xcode-select --switch /Applications/Xcode.app git作者信息填写:Ensure the author information supplied in Xcode > Settings is correct then create the git repository using Source Control > New Git Repository… Xcode 概念: PROJECT=*.xcodeproj;TARGETS即Gradle中的Module,后者配置可覆盖前者全局配置项;Scheme=运行配置Debug、Release等等。 Bundle Identifier(Bundle ID)即点号分隔的AppID,必填且应唯一,填写位置在 General->Identity 中;临时用约定为“bid.7day”。 UDID即Apple设备标识,用来绑定 *.ipa 证书来限制分发范围和时效。 Xcode登录Apple Account后就出现在Target的Team ID下拉里了,两者一一对应,只跑在模拟器就选择None,无需登录。 Provisioning Profile: 必须匹配当前项目Target的AppID;iOS签名超详细说明 - https://blog.51cto.com/u_4955660/2842825 类似权能描述文件,包含单个AppID(Bundle ID)、多个UDID、多个Signing Certificate,其中iOS Distribution(App Store and Ad Hoc)即发布app至App Store的证书。 Xcode通过Ad Hoc方式自动签发时,该文件处于~/Library/MobileDevice/Provisioning Profile/[UUID].mobileprovision;手动指定通常指从Apple开发者中心创建和下载过来用。 In-House指不限设备数量的企业内部分发,Ad Hoc指对已注册设备的分发,均不走App Store。 Xcode签名证书设置中点叹号可看到Devices: n Included下有没有真机设备,似乎在选择设备后,自动添加设备标识到该Provisioning Profile中。 PROVISIONING_PROFILE_SPECIFIER参数可指定Profile Name或Profile UUID,以避免新建描述文件了。 Xcode运行至模拟器可直接设 Team 为 None,且无需登录Apple Account,默认即“Automatically manage signing”勾上状态: 侧栏首个图标即Project视图,选中根项目名会在主区域列出项目总配置页,进入 TARGETS 栏 Signing & Capabilities 二级选项卡,选中 Signing(Debug) -> Team 的 None,勾不勾 Automatically manage signing 不影响。 Xcode运行至真机不能Team为None,需要Add Account登录Xcode,7天过期版本可直接勾上 Automatically manage signing,会自动根据Bundle ID生成证书,且要在iOS设备信任此应用开发者:设置 -> 通用 -> Device Management。 App Store市场分发: 注意 - “钥匙串访问”图标已被苹果隐藏,可通过新路径打开 /System/Library/CoreServices/Applications/Keychain Access.app 创建CSR(申请到证书后就没用了) - “钥匙串访问”>“证书助理”>“从证书颁发机构请求证书”:填邮箱和姓名即可,最后生成为*.csr文件。 开发者后台创建证书时上传*.csr得到cer证书,下载下来双击安装至“钥匙串访问”中,如果多人使用,可通过该证书导出*.p12分发出去,效力一样,但后者不含密钥,无法再导出。 设备签名: https://www.cnblogs.com/yibinpan/p/10050543.html 若勾上了 automatic signing, Xcode 会 registers 在 Scheme toolbar menu 所选中的 connected device. 免费7天个人TeamID获取:(模拟器内用无需TeamID,但Godot导出时则是必选项,且构建时会用到,故弄个免费的来占位) 注意 - 签发的App只能部署最多3个设备;每个iOS设备只能同时装3个调试应用,多出应卸载再装。 Xcode -> Settings -> Accounts -> ➕Apple account(虚拟机里输入密码可能错乱,故写好后用鼠标拷贝):个人账户Role值为User,企业账户则为Agent、Admin或Member。 接着选中登录的 Apple ID -> Manage Certificates -> ➕Apple Development(以前叫iOS Development) - 将自动生成一个证书,若已生成则无需此操作,换MAC也会保留;免费账号似乎无法删除证书,估计满了3个后会自动清除? Keychain Access(钥匙串访问) -> login -> Apple Development:*@* -> Organizational Unit(组织单位/团队ID) 模拟器命令:注意 - 若Xcode运行时未列出模拟器,可点 Editor->Validate Settings->Perform Changes 自动修复下警告问题。 查看可用设备 xcrun simctl list devices 随机启动模拟器(默认iPhone 15 Pro Max?/任务栏图标右键可切换Device) open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app 启动指定模拟器 xcrun simctl boot安装应用 xcrun simctl install ~/x.app 启动指定应用 xcrun simctl launch com.example.MyAppBundleId macOS虚拟机安装和使用 - https://nav.congci.com/main/home/topics/apple-ios-iphone/