V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hwdq0012
V2EX  ›  iOS

ios 开发这么离谱的吗

  •  
  •   hwdq0012 · 18 小时 15 分钟前 · 3124 次点击

    我的 mac book 版本是 14.7.4 (23H420) Sonoma
    我安装了 xcode 16.2 , 想开发 ios 16.0 的版本(因为我的 iphone 是这个版本
    但是 xcode16.2 内置的 ios sdk 是 18.2
    于是我又下载了一个 xcode 14.0.1 (内置 ios sdk 16.0 ), 但是 Sonoma 不支持这个版本的 xocde
    我又把 xcode 14.0.1 内置 的 ios sdk 16.0 复制到 xcode 16.2 中, 还是不能使用 16.0 的 ios sdk

    ❯ xcrun --sdk ios --show-sdk-version
    2025-05-02 14:42:44.267 xcodebuild[40697:13592334] [MT] DVTSDK: Skipped SDK /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk; its version (16.0) is below required minimum (18.2) for the iphoneos platform.
    2025-05-02 14:42:44.430 xcodebuild[40697:13592334] Writing error result bundle to /var/folders/pr/vrpq9jvn4jgff8c5jmlm12mm0000gp/T/ResultBundle_2025-02-05_14-42-0044.xcresult
    xcodebuild: error: SDK "ios" cannot be located.
    2025-05-02 14:42:45.664 xcodebuild[40699:13592356] [MT] DVTSDK: Skipped SDK /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk; its version (16.0) is below required minimum (18.2) for the iphoneos platform.
    2025-05-02 14:42:45.837 xcodebuild[40699:13592356] Writing error result bundle to /var/folders/pr/vrpq9jvn4jgff8c5jmlm12mm0000gp/T/ResultBundle_2025-02-05_14-42-0045.xcresult
    xcodebuild: error: SDK "ios" cannot be located.
    xcrun: error: Failed to open property list '/Users/hbb/source/repos/rn/AwesomeProject/ios/SDKSettings.plist'
    2025-05-02 14:42:47.075 xcodebuild[40700:13592367] [MT] DVTSDK: Skipped SDK /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk; its version (16.0) is below required minimum (18.2) for the iphoneos platform.
    2025-05-02 14:42:47.241 xcodebuild[40700:13592367] Writing error result bundle to /var/folders/pr/vrpq9jvn4jgff8c5jmlm12mm0000gp/T/ResultBundle_2025-02-05_14-42-0047.xcresult
    xcodebuild: error: SDK "ios" cannot be located.
    xcrun: error: unable to lookup item 'SDKVersion' in SDK 'ios'
    
    

    各位佬都怎么设备 开发环境的,如果要支持旧环境的话, 不然要装旧的操作系统吧

    第 1 条附言  ·  14 小时 19 分钟前
    防止其他 v 友看不仔细 我反复回复
    ============
    我的 xcode 是页面下载的,下载即有 ios 18.2 的 sdk
    我从 xcode 中创建了 16.0 的 simulator ,但在项目中选择不了, 只有下载了 18.2 的 simulator 才会显示 16.0 的 simulator

    所以假如没有没有其他问题的话
    要编译一个项目部署到旧版本的 simulator 中的步骤是

    + 下载最新的 xcode , 安装最新的 simulator
    + 查看 xcode 支持的最低的 sdk 版本,
    + 安装在这个范围内的 simulator 编译是仍然用的是最新版本的 sdk ,比如编译 ios 16.2 用的使用 ios 18.2sdk (内置)
    + 有 pod 依赖的话, 修改 Podfile, 改 platform :ios, 16.0 ,然后 pod install 安装依赖
    + 在 xcode 中设置 minimum deployment 版本为 16.0 ,build setting 里几个 deployement 相关的 ios sdk 版本也都设置 16.0 , 那个显示 18.2 灰色的不用改,不影响

    然后编译
    49 条回复    2025-05-03 08:11:18 +08:00
    paopaosa
        1
    paopaosa  
       18 小时 8 分钟前
    “设置”里组件选:“iOS 16.0 Simulator” 不行吗?
    MakHoCheung
        2
    MakHoCheung  
       18 小时 2 分钟前
    你的操作也离谱。正确做法是在项目设置那设置 minimum deployments 为 16
    kekeabab
        3
    kekeabab  
       18 小时 1 分钟前
    你在折腾什么,用 18 的 sdk 也一样能开发 ios16 啊
    salor
        4
    salor  
       17 小时 56 分钟前 via iPhone
    但凡问了 AI 一句也不至于搞出这么多离谱无用功。
    hwdq0012
        5
    hwdq0012  
    OP
       17 小时 41 分钟前
    @paopaosa
    @MakHoCheung 必然是操作过这个了
    @kekeabab
    @salor ai 不是万能的

    https://www.reddit.com/r/Xcode/comments/1gh366e/why_does_xcode_require_the_latest_update_to_run/

    不完装最新的模拟器,其他旧的模拟器不会显示出来
    kera0a
        6
    kera0a  
       17 小时 34 分钟前 via iPhone
    @hwdq0012 别嘴硬,人家是没安装最新的模拟器,你是去安装旧的 Xcode 去开发 iOS16 ,完全两码事。

    解决办法只是改个配置值,楼上已经说了,你要嘴硬就继续折腾吧。
    hwdq0012
        7
    hwdq0012  
    OP
       17 小时 27 分钟前
    @kera0a 我发现 ios 程序员怎么好像有一种天然的傲慢,我已经设置过 minimum deplymentments 为 16.0,也下载了 ios 模拟器 15.0 和 16.0 ,但是都选中不了,我才会试其他方式,直到刚才我下载了最新的模拟器才可以选中之前创建的旧的 device simulator

    承认吧,ios 开发环境就是烂
    Seanfuck
        8
    Seanfuck  
       17 小时 10 分钟前
    模拟器?不都是直接用手机调试嘛
    hwdq0012
        9
    hwdq0012  
    OP
       17 小时 6 分钟前
    @Seanfuck 模拟器有什么坑吗,还没入门,跟 react native 文档编译 aweomproject 测试环境,还没编译过
    macwenbo
        10
    macwenbo  
       17 小时 3 分钟前
    @hwdq0012 有点。为了装 xcode 16 , 连 macos 都升到最新了。就怕出幺蛾子。
    hwdq0012
        11
    hwdq0012  
    OP
       17 小时 0 分钟前
    @macwenbo macos 是之前为了跟着文档编译 chromium 升级的,我的系统是之前 m2 air 上备份过来的,也是比较旧了就升了
    qiaobeier
        12
    qiaobeier  
       16 小时 55 分钟前
    @salor 没有基础知识,连怎么问 AI 都不会。我组里那个妹子用了 AI 后,质量没见提高,堆💩的速度倒是快了很多,我真是服了。
    feikaras
        13
    feikaras  
       16 小时 46 分钟前
    @hwdq0012 我觉得人家没有任何义务给你手把手帮忙。有这个需求的人肯定有真机,不知道在折腾啥。而且设置一个 plist 的 key 值又不需要旧版 sdk 。
    salor
        14
    salor  
       16 小时 41 分钟前 via iPhone
    @hwdq0012 Xcode 设置里就能下载老版 sdk ,插上真机 run 一下它也会给你下载手机对应版本的 sdk ,说了让你问 AI 你说 AI 不是万能的,那你哪怕用大白话去问过吗?
    自己把两分钟就能解决的问题折腾出几个钟头都解决不了。反过来自己起个吊炸天的标题开群嘲怪地球没引力某个开发群体傲慢。
    chiaf
        15
    chiaf  
       16 小时 36 分钟前
    设置➡️component ,左下角➕选择 iOS 16 的 simulator (四个版本,0 ,1 ,2 ,4 )
    项目中的 minimum deployment 选择 iOS 16 (多个版本,自己挑选)
    chiaf
        16
    chiaf  
       16 小时 33 分钟前
    @chiaf 有真机直接在真机运行,不需要安装相应版本的模拟器,安装最新的就行。

    只要 minimum deployment 不大于你手机系统的版本就行,不包括最后一位,比如 iOS 16.1.1 ,iOS 16.1.2 ,都属于 iOS 16.1
    hwdq0012
        17
    hwdq0012  
    OP
       16 小时 33 分钟前
    @feikaras 他们也没给出建设性的建议呀,说话还难听

    @salor 你告诉我怎么问,我问了他让我下载 xcode 14.0.1 ,再复制 ios sdk ,这个就是问 ai 问出来的


    @chiaf simulator 已经下载了 16.0 的版本了,选中不了创建的 16.0 的仿真设备,得先下载最新的仿真器,否则一直显示#5 楼那个外链那个界面
    chiaf
        18
    chiaf  
       16 小时 28 分钟前
    你点击那个地方,有弹窗,选择 manage run destinations ,这里面添加对应系统的模拟器

    hwdq0012
        19
    hwdq0012  
    OP
       16 小时 26 分钟前
    @chiaf 创建过了,选中不了,直到安装了 18.3 的模拟器,一下全显示在下拉窗口中了,否则全不显示,你看看 5 楼那个外显,我和他一样的情况
    MacsedProtoss
        20
    MacsedProtoss  
       16 小时 23 分钟前 via iPhone   ❤️ 1
    1.这就是为什么苹果可以做到让旧版本系统迅速退场,Xcode 是与 macOS 系统版本绑定的 虽然有办法高版本系统跨大版本运行旧的 Xcode ,但是会造成一些奇怪的问题
    2.现在安装特定版本模拟器的方法是去官网下载对应的 simulator 版本然后跑指令安装进去就完事了
    3.iOS simulator runtime 里面其实分为 sdk 和 simulator ,两个用处并不一样,sdk 用来编译的,你不装新的只装旧的的操作闻所未闻
    4.Xcode 有做过一些调整,你现在的操作只有旧版本 Xcode 能这么干
    5.手机是 16.0 的那还装啥模拟器,一般这么复杂的整模拟器就是因为老版本系统手机手里没有,但是线上又出了问题需要排查
    6.实际上你折腾半天也依然是用的 iOS18 的 sdk 去编译的 编译 sdk 与 Xcode 有关系 这也是为啥你必须要有个对应的新版本系统的 simulator runtime 才能编译
    7.你不求甚解就开始说什么 iOS 开发傲慢,正是因为你不懂,所以你在做一个“很新的”事情,一般 iOS 开发根本不需要你这种神秘操作,因此别人才说你的操作离谱
    8.接 7 其实你的需求我完全没看懂?手机是 iOS16 的?所以呢?你把 target version 改掉的时候其实就已经自动标记了 iOS17/18 的 API ,你用到的时候会提示的。同 6 ,不同 sdk 编出来的包其实表现是有差异的,反而你不做骚操作的话大部分情况下不同 iOS 系统的 API 表现是一致的,而且苹果对于 App Store 的 sdk 有限制需要用最新的,所以正常开发不会有用旧版 sdk 的事情
    chiaf
        21
    chiaf  
       16 小时 11 分钟前
    @hwdq0012 #19 5 楼的也看不出什么,那张图里的 18.1 的都没安装,第一次打开 Xcode 没有安装 iOS 的组件。

    你最好把你的图发出来看看,不然不好分析什么原因。

    现在 Xcode 默认只有 macOS 的组件,其他的 iOS ,watchOS vision OS ,都是用户自己选择要不要安装。
    hefish
        22
    hefish  
       16 小时 8 分钟前
    为啥一定要用模拟器? 直接接手机不是更好?
    hwdq0012
        23
    hwdq0012  
    OP
       16 小时 1 分钟前
    @MacsedProtoss 很反直觉,我最开始的操作是想让开发出来的程序可以兼容 ios 15 ,我没有 ios 15 的机器,,所以用了模拟器,但工程选择不了这个创建的模拟器,15.0 16.0 都不能正常使用,这才有后面一堆的在你们看来很神秘的操作,但是我之前编译 chromium mac 版本的时候,了解到开发环境可以有多个 xcode ,可以切换不同的 xcode 再切换 sdk ,ai 的回答在我看来不神秘,而且合理,因为我即有 sdk (从旧版本中复制过来,ai 指示的),也有 simulator 了

    a2: 我直接在 xcode 16.2 里操作的下载仿真操作系统,创建设备

    a7: 我只是在编译一个 react native 的入门文档上的项目,尝试修改 deploymennt target 版本
    treblex
        24
    treblex  
       16 小时 0 分钟前
    是这样的,前段时间还看熊猫短信的开发者说自己电脑上好几个 xcode 同时存在,虽然他是因为有旧项目没升级
    xcode14 好像是 flutter 支持的最低版本,我在之前没遇到过这种问题
    可能是新系统又更新了什么,没了解过,换 win 了
    hwdq0012
        25
    hwdq0012  
    OP
       15 小时 58 分钟前
    @chiaf #21 外链中最后两楼人的评论也是安装了最新的 simulator 才能用 旧的 simulator


    @hefish #22 业余尝试入门, 我想支持尽可能旧的设备,xcode 可以创建旧的 simulator 却不选择它们,参考#5 楼外链中最后两楼评论
    chiaf
        26
    chiaf  
       15 小时 53 分钟前
    @hwdq0012 #25 首先必须安装 iOS 18 ( Xcode 16 )的 sdk 😂,然后才能安装旧的 sdk


    外链中 OP 说了


    I have the older simulator, but if I don't install the latest one, the old one won't even be displayed. After adding the latest one, I can choose any of the old simulators. It's weird.


    他已经解决了🤪
    hwdq0012
        27
    hwdq0012  
    OP
       15 小时 46 分钟前
    @chiaf #26 我没按倒 2 楼说的操作之前,编译都编译不了,因为没有选择一个 deploymennt ,所以安装了最新 simulator 后我也解决了编译不了的问题, 现在又有其他报错又是其他的事了,已经不是 0 楼描述问题的范围了
    icyalala
        28
    icyalala  
       15 小时 15 分钟前
    虽然众所周知 Xcode 是最不靠谱 IDE 。。但是 OP 比它还要不靠谱。。。
    给个建设性意见:系统和支持看这里 https://developer.apple.com/support/xcode/
    操作优先在 Xcode 里进,先不要命令行或者复制来复制去
    hwdq0012
        29
    hwdq0012  
    OP
       15 小时 2 分钟前
    @icyalala 我看的是 https://developer.apple.com/download/all/?q=xcode , 没什么区别

    我优先在 xcode 里安装 ios 16.0 simulator ,并不好用 没有安装最新的 simulator 之前,根本选不了
    icyalala
        30
    icyalala  
       14 小时 58 分钟前
    @hwdq0012 你第一次打开 Xcode ,会有个选项让你选择你需要的组件,macOS/iOS/watchOS/tvOS ,如果你勾选 iOS 就会自动下载 iOS SDK 和最新模拟器,你要不勾选当然就没有了。
    MacsedProtoss
        31
    MacsedProtoss  
       14 小时 47 分钟前 via iPhone
    @hwdq0012 旧的 Xcode 很大但是直接打包了 iOS sdk 因此可以直接复制旧的 simulator 进去 新的 Xcode 启动的时候就提示了要安装 iOS 依赖但是你没有安装 然后你又用一知半解的方案尝试直接安装旧版本 simulator 自然出了问题
    Xcode 把 sdk 和 simulator 打包在一起的操作确实是会令人产生迷惑 但是大部分人并不会遇到 因为如果只是想要让 app 能在低版本系统上运行并不需要你安装旧版本的 simulator
    你把你的情况重新整理一下就能懂:Xcode 需要使用对应版本的 sdk 才能编译,安装 Xcode 时候会提醒你安装 sdk 但是你没有执行。之后你尝试安装旧版本的 simulator 但是无法选择,原因很简单,没有 sdk 编译都不行还选个 P 的 simulator 作为 target 呢?
    而且正常人开发都是支持某个版本及以上的所有 iOS ,因此开发的时候都是用最新的系统版本进行的,只需要声明最低支持的 iOS 版本来对 API 可用性进行标记即可,并不是说你声明 iOS15+就是用 iOS15 的 sdk 来编译的,依然是用 iOS18 的 sdk 来编译,一般是测试时候才会用旧版本真机验证,有问题的时候如果开发没有真机才会用旧版模拟器去测试。
    因此你确实是不求甚解地进行操作,只要你懂为什么你就知道为啥自己的操作,就知道自己错在哪里,就不会觉得 Xcode 有啥问题
    hwdq0012
        32
    hwdq0012  
    OP
       14 小时 43 分钟前
    @icyalala #30 我没有想要安装最新的仿真工具,我只是想兼容旧设备, 看的文档是 https://reactnative.dev/docs/getting-started-without-a-framework?package-manager=yarn
    并没有 xcode 相关的说明 ,我也是摸索着配置部署到旧设备上
    hwdq0012
        33
    hwdq0012  
    OP
       14 小时 33 分钟前
    @MacsedProtoss 我的问题是选择不了 deployement 还没有到编译的步骤,并不是你说的那样,我看了 iphone.platform/sdks 里是有 18.2 sdk 的目录的,只是没下载 18.2 的 simulator 而已,从 xcode 14.0.1 复制 16.0 的 sdk 之前我确认过了,所以很确定。 我的 xcode 是从网页下载的,并没有看到什么自动安装的选项
    有 18.2 的 ios sdk + 16.0 的 ios simulator 也并不能选择 ,下拉框只有一个 18.2 的条目,选择了就会让下载 18.2 的 simulator ,但我一直没安装,因为我不用它,我从 xcode device/simulator 安装的 16.0 并不会显示在这里,直到你安装了 18.2 的 simulator 才会显示出来
    MacsedProtoss
        34
    MacsedProtoss  
       12 小时 59 分钟前 via iPhone
    @hwdq0012 有点无语 确实是感觉听不进去的 上面都说了 sdk 在 simulator 里面包含着且 Xcode 与 sdk 版本是绑定的,你不信的话那也没办法,一切的根源就是你不了解 Xcode 的情况下就想要用自己的猜测去配置…Xcode 不管从哪里下载的 都会在首次启动的时候有个 install 界面 只要你勾选了 iOS 就没有任何问题了
    & 就像上面说的 你的目标是 iOS15 不代表你需要 iOS15 的模拟器 你只需要设置最低 target 之后用 iOS18 模拟器开发 也是可以正常在 iOS15 上运行的
    xiangyuecn
        35
    xiangyuecn  
       12 小时 38 分钟前
    不过说句实在的,从敲代码的角度来讲,xcode 确实很屎,随便拎一个编辑器都比这玩意好使
    okakuyang
        36
    okakuyang  
       12 小时 1 分钟前
    网页下载的安装包那是面向高级用户的,别人清楚下载下来是什么。入门去 appstore 里下载就行了。xcode 是和 iOS 的最新 sdk 绑定了,不下最新 sdk 用都用不了。
    hwdq0012
        37
    hwdq0012  
    OP
       11 小时 49 分钟前
    @MacsedProtoss 我刚从废纸篓里找出 xcode 16.2 的 .xip 重新解压了一次,很确定的告诉你两件事
    1. 解压即有 ios 18.2 sdk
    2. 打开后没有跳出什么界面让安装什么东西


    @okakuyang 你不能拿自己的标准来衡量别人,在你看来很高级的东西, 在我看来只是入门知识
    nailuoGG
        38
    nailuoGG  
       11 小时 36 分钟前   ❤️ 2
    来看 op 怒喷全场
    nailuoGG
        39
    nailuoGG  
       11 小时 36 分钟前
    不过 Xcode 确实有些不一样,习惯习惯就好
    icyalala
        40
    icyalala  
       11 小时 16 分钟前
    @hwdq0012 一个 Xcode 3GB ,一套 Runtime 8GB ,怎么可能自带。。。
    hwdq0012
        41
    hwdq0012  
    OP
       10 小时 52 分钟前
    @icyalala 好的,你是对的,虽然在 finder 里显示了 12GB

    ```bash
    iPhoneOS.platform/Developer/SDKs
    ❯ pwd
    /Users/hbb/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

    iPhoneOS.platform/Developer/SDKs
    ❯ ll
    total 0
    drwxrwxr-x 8 hbb staff 256B 5 2 21:13 iPhoneOS.sdk
    lrwxr-xr-x 1 hbb staff 12B 5 2 21:13 iPhoneOS18.2.sdk -> iPhoneOS.sdk

    iPhoneOS.platform/Developer/SDKs
    ❯ du -h -d .
    77M .
    ```

    但确实 没有弹什么窗口要安装什么
    hwdq0012
        42
    hwdq0012  
    OP
       10 小时 47 分钟前
    @hwdq0012

    但是我看我正常编译的环境,这个目录也是这么大
    ```bash
    ❯ cd /Applications/Xcode16.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

    iPhoneOS.platform/Developer/SDKs
    ❯ ll
    total 0
    drwxrwxr-x 8 hbb staff 256B 3 16 17:30 iPhoneOS.sdk
    lrwxr-xr-x 1 hbb staff 12B 3 16 17:31 iPhoneOS18.2.sdk -> iPhoneOS.sdk

    iPhoneOS.platform/Developer/SDKs
    ❯ du -h -d 1
    74M ./iPhoneOS.sdk
    74M .

    ```
    okakuyang
        43
    okakuyang  
       9 小时 56 分钟前
    @hwdq0012 某名奇妙的回复,xcode 是和 sdk 绑定的,你要用最新的 xcode ,必须要下最新 sdk 。你不下最新的 sdk ,自己移动一个旧版的 sdk 到路径下去,我觉得 xcode 都没法正常工作。ios 开发环境有什么烂的,iOS 本来就是平台开发,自然会有平台的历史因素和操作惯性,这种问题哪个开发平台都会有。
    hwdq0012
        44
    hwdq0012  
    OP
       9 小时 40 分钟前
    @okakuyang
    1. 下载 xcode 16.2 解压后
    .../Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
    .../Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
    这两个路径都已经有 18.2 的 sdk 了
    2. 在 1 的基础上我安装了 16.0 的 simulator ,创建了设备, 在工程中选中不了, 直到安装了 18.2 的 simulator

    3. 在这个基础上我问 ai , ai 让下载 14.0.1 的 xcode,我下载后发现运行不了, ai 又让我尝试复制 xcode 14.0.1 的 ios sdk 到 xcode 16.2 的目录, 我测试了还是不行, 这时我才来 V2EX 发贴

    4. xcode 就是烂, 没一个地方说 18.2 的 simulator 非装不可, 给人的感觉就是配置想要的版本后再下载就行了
    这也是合理的思维,按需要安装 simualtor,

    5. 我看你们是在屎坑里玩久了玩出优越感了
    feikaras
        45
    feikaras  
       3 小时 3 分钟前 via iPhone
    @hwdq0012 环境都搭建不来你还有什么可以喷别人的。你觉得人家没回复你,我看人家早就回复你了,我还再回复了一遍,你还在里面兜圈子。人家说什么你是一个字都没看进。
    yoyoyoyolol
        46
    yoyoyoyolol  
       2 小时 42 分钟前 via iPhone
    android 配置 gradle 啥的坑才多,苹果开发已经是傻瓜式的了
    KingCloser
        47
    KingCloser  
       2 小时 15 分钟前
    我看了 op 的全部回复,但凡承认一下自己的错误有这么难吗?还嘲讽 ios 开发的傲慢,回复里都有正确的答案,你也是真离谱
    hwdq0012
        48
    hwdq0012  
    OP
       1 小时 32 分钟前 via iPhone
    @KingCloser
    @feikaras
    然而我在五楼就已经自己解决了 而现 48 楼
    MacsedProtoss
        49
    MacsedProtoss  
       55 分钟前 via iPhone
    你的 append 就是错误的 没有任何官方页面下载的 Xcode 自带 iOS sdk 不用嘴硬了
    确实是感觉故意听不进去一样 懒得再回复了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 01:06 · PVG 09:06 · LAX 18:06 · JFK 21:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.