MoreRSS

site iconHuFangYun | 胡方运修改

博客名:小猿大圣。天马行空,爱生活,爱coding
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

HuFangYun | 胡方运的 RSS 预览

macOS App 开发 iCloud 不同步问题解决

2025-03-12 23:13:54

背景

时光鸡 - 纪念日·轮播提醒 我又做了 iOS 的第一个版本,想通过 CloudKit 实现两端的数据同步。但是同样的代码 iOS 正常,数据可以正常同步到 iCloud,macOS 的始终不行。

我在这个问题上调试了很久才解决掉,记录一下解决过程。

现象

  1. 同样的代码 iOS 开发环境和商店版本都正常可以同步 iCloud 数据。
  2. 同样的代码 macOS 版本开发环境可以正常同步数据,但是线上版本不行。

如果你也遇到了 macOS 开发环境 iCloud 能正常同步数据,但是 TestFlight 和线上版本却不行,可以看看我下面的处理过程。

我 iOS 版本数据同步是正常的,就排除了类似配置错误或者这个 CloudKit Database 不可用等可能性。

解决办法

参考这个案例 SwiftUI macOS app not syncing with iCloud

Apple 开发者论坛也有同样的问题备份 SwiftUI macOS应用程序无法与iCloud同步

Well, the answer was simple and yet hard to find. It seems when you convert a Core Data app to work with CloudKit you need to add CloudKit.framework to the Frameworks, Libraries, and Embedded Content section. without it, the app will work when running in debug mode (via Xcode) but once it’s in production, signed and notarized, it won’t. Even if you have the right entitlements, all pointing to production, etc.

翻译一下:

嗯,答案很简单,但很难找到。似乎当您将 Core Data 应用程序转换为与 CloudKit 一起使用时,您需要添加 CloudKit.frameworkFrameworks, Libraries, and Embedded Content 部分。如果没有它,应用程序将在调试模式下运行时(通过 Xcode)工作,但一旦它投入生产、签名和公证,它就不会工作。即使您拥有正确的权利,所有权利都指向生产等。

选择你的 Targets,第一个 General Tab 里面有个 Frameworks, Libraries, and Embedded Content,点击 ➕ 添加 CloudKit.framework,Embed 选择 Do Not Embed

报错的日志

error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _performSetupRequest:]_block_invoke(1242): <NSCloudKitMirroringDelegate: 0x60000377c000>: Failed to set up CloudKit integration for store: <NSSQLCore: 0x13dc04080> (URL: file:///Users/admin/Library/Containers/xxx)
<CKError 0x60000064adf0: "Service Unavailable" (6/NSCocoaErrorDomain:4099); "Error connecting to CloudKit daemon. This could happen for many reasons, for example a daemon exit, a device reboot, a race with the connection inactivity monitor, invalid entitlements, and more. Check the logs around this time to investigate the cause of this error."; Retry after 5.0 seconds>

error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate recoverFromError:](2312): <NSCloudKitMirroringDelegate: 0x60000377c000> - Attempting recovery from error: <CKError 0x60000064adf0: "Service Unavailable" (6/NSCocoaErrorDomain:4099); "Error connecting to CloudKit daemon. This could happen for many reasons, for example a daemon exit, a device reboot, a race with the connection inactivity monitor, invalid entitlements, and more. Check the logs around this time to investigate the cause of this error."; Retry after 5.0 seconds>

Error retrieving daemon to get network transfer endpoint: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.cloudd was invalidated: failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.cloudd was invalidated: failed at lookup with error 159 - Sandbox restriction.}

Error getting network transfer endpoint: <CKError 0x600000600990: "Service Unavailable" (6/NSCocoaErrorDomain:4099); "Error connecting to CloudKit daemon. This could happen for many reasons, for example a daemon exit, a device reboot, a race with the connection inactivity monitor, invalid entitlements, and more. Check the logs around this time to investigate the cause of this error."; Retry after 5.0 seconds>

error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate resetAfterError:andKeepContainer:](612): <NSCloudKitMirroringDelegate: 0x60000377c000> - resetting internal state after error: <CKError 0x60000064adf0: "Service Unavailable" (6/NSCocoaErrorDomain:4099); "Error connecting to CloudKit daemon. This could happen for many reasons, for example a daemon exit, a device reboot, a race with the connection inactivity monitor, invalid entitlements, and more. Check the logs around this time to investigate the cause of this error."; Retry after 5.0 seconds>

我的报错日志和 Apple 开发者论坛上提到的这个案例完全一致 SwiftData iCloud sync breaks after disabling and re-enabling iCloud

不过他的解决办法不是上面提到的 CloudKit.framework 而是 com.apple.developer.icloud-container-environment 这个属性写的 Development 导致上线后出现了问题,改成 Production 就好了。我感觉这个配置还挺好用的,我就直接固定成 Production 了,这样开发环境也直接连接线上数据库,反正都是连接我个人的 iCloud 不影响其他用户的数据。

该属性的 Apple 文档地址

机票还能这么买!随心飞低价旅行攻略

2025-03-12 09:00:32

前言

抱歉,抱歉,博客有 4 个月没更新了。想写的话题挺多的,都还待在提醒事项内。今天和大家分享一下随心飞和旅行 😆。

背景

发现这个随心飞后,最近 3 年我和小秋旅行的次数明显变多了,主要是机票太便宜了,要是北京飞海南原价五到六千的机票,五六百就能买到,能不去嘛。✈️

实惠

先给大家列一下我们最近的几次飞行和价格,都是北京出发的中国联合航空的随心飞机票,大家看实惠不 😆

❗️❗️ 都是来回的机票价格,而且包含燃油和基建。✈️

广东湛江 1 月份 638 元 = 398 ➕ 240
广东湛江 11月份 538元 = 398 ➕ 140
云南昆明 2 月份 638 元
海南海口 3 月份 538 元
浙江温州 3 月份 478元 = 298 ➕ 180

我感觉超级便宜,也因为机票便宜,我们俩最近几年旅行的次数越来越多,想趁着还没有小孩,多出去转转。

随心飞

随心飞的出发城市不止北京,还有佛山、鄂尔多斯、石家庄、温州、上海、成都。

北京都是从大兴机场起飞。✈️

中国联合航空的随心飞有两种:
1️⃣ 一种是 398 元的,如果盲盒没有开到喜欢的城市,可以全额退款。
2️⃣ 另一种是 298 元,90 天的盲盒中一定要选一个城市的,即使没开到喜欢的城市也不能退款。

如果就是想随机去一个城市,298 的更划算,如果是有目的地开不到不想去,那就选 398 的,开不到就不去了,还能全额退款。💰

随心飞的盲盒,是 90 天内,每天随机推送三个城市,你如果喜欢就选定城市,挑选往返的时间,不过有时候没有合适的时间。如果没有选定城市,就继续抽盲盒。你也可以许愿你想去的城市,后面可能会推送给你。

第一次随心飞是从推送的城市来选,飞完一个月内凭机票可以再在中联航公众号进行盲盒大抽奖,这种虽然说是盲盒,但是可以一直刮奖,约等于指定城市飞行。价格也是 298元(旺季可能调整到398)+税费。我们去海南和云南就是通过这种先随机飞一次,然后指定城市兑换的。

优点

1️⃣ 价格实在太便宜了,可以用两三百的价格飞到其他城市去旅行,比如我去海南那次,正常飞机票来回要 6000 左右。而我们来回只用了 500 多。

2️⃣ 带行李额度,每人 7 公斤

缺点

1️⃣ 没有飞机餐,我觉的无所谓。

2️⃣ 日期有时候不合适,我们要上班的原因,一般都得凑双休,如果时间自由,那真是太合适了。

3️⃣ 时间有时候很早,比如早上 8 点的飞机

怎么买

中国联合航空的抖音和微信都可以购买。

最后

不过小红书上也有很多的差评,也可以提前了解一下,提前避坑。看看大家吐槽的点是不是你在意的。

当然,如果有更实惠的其他随心飞,也欢迎大家评论一下,或者通过首页提供的其他社交账号和我联系。

再聊一聊

如果没遇到小秋,我可能很少出去旅行,因为我感觉旅行是一件很花钱的事情,而旅行带来的快乐,我可以从其他地方获得,比如创作带来的认可(例如写博客、开发 App 等)以及数码体验。

相反小秋很喜欢旅行,可以跟不同的人聊天、有新的经历、可以接触大自然,她说出去玩能给她带来能量,像是给自己充电。可以缓解工作的疲惫,当她从旅行回到工作岗位时又充满干劲。

我要做的就是陪伴,陪她一起旅行,同时也感受一下这种我自己不会主动解锁的体验。

提前避坑:父母患病和医保问题

2024-11-30 15:09:30

开篇

前一段时间,我在 V2EX 看到有人问,新农合医保是不是没啥用,还需要交吗?🤔

‼️ 我告诉大家,当家人生病的时候,就知道这个问题的答案是,非常需要,而且要交最高档的,不然会后悔的。

🍀 这篇文章没有广告,是我的一些亲身经历,很幸运你点进这篇文章,听我聊一些可能可以帮你避坑的事。

医保

要有医保

我是从农村出来的,父母是农村医保,也就是新农合。我之前知道他们交了新农合医保,但是说实话我现在感觉自己关注的太少了。我是最近父母生病才知道,新农合也是分档的,幸亏我爸妈去年都换到最高档了,最高档也不贵 500 多。但是在农村像我爸妈这种辛苦了一辈子的普通人,很多人会觉的两个人一年交一千多的医保很贵,很多老人为了省钱,不愿意交最高档的,甚至医保也不想交,可能会觉的自己健康,不需要,不用交,没用。

医保是国内居民最基础的医疗保障,即使买其他医疗保险,也要求先有医保。

⚠️ 本文的第一个提醒:不管是新农合还是其他城乡居民、职工医保,一定要有,而且尽量交最高档的。最高档是一年 500,并不是很贵,确认一下自己父母有没有医保,是不是最高档。✅

确保医保卡可用

第二个问题,注意下父母的医保卡能不能使用。

我都没想到这个会有问题。人倒霉的时候,真是任何想不到的事情都会遇到。

在我们县级市内,就医是用不到医保卡的,可能各种系统打通了,直接用身份证就可以,也是用新农合医保实时结算的。所以我爸从来没用过他的医保卡。结果这次他生病了,来北京看病才发现,医保卡刷卡报错,用不了。

医保卡用不了,就需要自费,不能医保实时结算,后续需要保留好就医收据、明细,再线下手工报销 🧶。

我爸的医保卡后面联系了当地医保、银行各方,应该是没激活。本来看病就挺着急的,医保卡又有问题,挺糟心的,而且要求必须本人回老家激活。😭

⚠️ 本文的第二个提醒:大家注意家人的医保卡是可用的。✅

抽烟 🚬

我爸有 40 多年的抽烟史了,从十几岁就开始抽烟。从我开始知道抽烟有害健康的时候,我就经常劝我爸戒烟,但是一直戒不了。前年我爸出了车祸,断了几根肋骨,咳嗽的时候胸很疼,然后他就把烟戒了,我当时感觉也算是因祸得福了。

我知道抽烟有害健康,我自己不抽烟。我听到的比较多的狡辩就是,谁谁谁也抽烟,都活到 90 多了,你看身边这么多抽烟的都没事。

不要这样比,你看到的只是他也抽烟,你看不到的是人家有各种保险保障,就算生病了有钱治疗。人家定期有体检,可以及时发现潜在的风险,人家基因好、命好,有长寿的潜力。所以不要和别人比,人只能活一次,有非常多比抽烟有意义的事情,健康是人生一切的关键。

抽烟死亡的概率

刚才说吸烟多的人,有25%概率死于吸烟导致的肺癌。按照这个比例,这些人会有28%概率死于心血管疾病,18%概率死于肺部疾病, 7%死于吸烟导致的其他癌症,9%死于吸烟导致的其它疾病。

加起来,25+28+18+7+9=87%!

香烟被誉为”人类有史以来杀人最多的毒品”,并非浪得虚名。

这是75岁的概率,再早点,比如 65岁呢?

查查数据就知道,烟民有 35% 的概率,在 65 岁会死于吸烟带来的各种疾病。也就是说,虽然现在人均寿命已经接近 80 岁,但一辈子抽烟的人,1/3 活不过 65岁

上次我在肿瘤医院胸内科发现大部分病人的年龄在 59 岁以下,如果家人年龄也在这附近,更要多注意了。

大病和父母异地就医

这次带我爸来北京看病,发现咱们政府在医疗补贴方面做的还挺好的,和大家分享一些提高报销比例的途径。

  1. 办理异地就医选长期居住,北京这边可以办理居住卡,异地就医要先申请再就医,这样才能结算。几乎是实时通过审核,还挺方便的。这样报销比例是按照北京的计算,比老家高一点。

  2. 还有一个叫 门诊慢特病,对一些特别的疾病高血压,恶性肿瘤等100多种疾病,报销的比例大约 70~80左右。山东的申请还挺快的,可以线上申请,几个小时就通过了,也很方便。

唯一的坏处是只能从申请当日开始算,之前的报销不了,所以要早申请。

保险和体检

有能力的小伙伴,可以定期给父母体检,配备百万医疗保险。医保只能报销一部分,父母老了生病的概率也变大了,有保险保障也算是理财的一部分,降低财产损失。

总结

✅ 列一下待办,大家可以检查一下自己家人保障是否都到位:

  • 不管是新农合还是其他类型,要有医保,并且是最高档
  • 保证医保卡或者医保二维码是可以用的,无异常
  • 给父母买百万医疗
  • 父母定期体检
  • 父母抽烟的话,如果有多年抽烟史,更要重视上面的几条。

健康的人不会想到,偌大的医院比菜市场人还多,非常拥挤,挂不上号,有些人甚至花一俩万去挂号排床位。CT 等检查预约都要好几个月。这世界上有太多事情我们没经历过是想象不到的。

所以希望大家和家人都身体健康,定期体检、有保险保障。

我和 Apple 开发的缘分

2024-11-25 23:35:48

Apple 开发者会员 🍎

今年 1 月 1 日的时候我又开通了 Apple 开发一年的会员,本来想 1 月 1 日注册,这个日子很好记,同时也代表一个新的开始,没想到因为时差问题,Apple 是从 12 月 31 开始计算的。

哈哈哈,生活真是处处充满惊喜和意外。不过这也是个很好记的日子,寓意是辞旧迎新?🧨

上面说了「又」。是的,这不是我第一次缴费了,我之前有一年也买了一年开发者会员想开发 App,但是一年什么都没干,白交了一年的学费,属实冲动消费了。

其实没有开发者会员也是能开发 App 的,只是一些功能比如 iCloud 同步,自己开发的 App 用不了,也没法上架。

⚠️ 所以我建议大家先把自己的 App 开发出来,等要上架了,再开通发者会员也来得及,不要冲动消费。

产出

第一年的会员没有产出,那今年那?

可能是 12 月 31 日的寓意起作用了,挥手告别过去,我今年开发过 4 款 App 📱。

两款上架了,上架的都盈利了。一款待上架阶段,一款算是调研阶段。

其中一款,收益还可以,每天能卖出去 1-3 份,让我对独立开发这个方向看到一点希望 💰。

缘分从何谈起?💗

回到主题,聊一聊缘分,大四快毕业的时候,我们学校和校外的 IT 培训班合作,让我们去培训班免费体验 7 天,能选的培训班都在一线城市,还管吃管住,这不就是免费的 7 天旅行吗?大家都相当开心 😆。

我选的北京的一个培训班,当时培训班有两个方向,一个 iOS 开发,一个前端开发,我当时前端比较熟悉,不假思索的选前端,但是选前端的人太多了,名额满了,我就只能去 iOS 班了,刚进班里,老师说又有了一个前端开发的名额,谁想去,我第一个举手了,但是还有一位女生也想去,老师说女士优先,就让这位女同学去了前端班。

我就这样留在了 iOS 班。iOS 班开发 App 是没有手机真机的,只有一台很卡入门级别配置还很老的 Mac mini,外接的显示器也很糊,就这我也是第一次接触 macOS 呀。

老师讲完课让我们根据讲的内容自由发挥,最后他选出做的最好的前三名的小组,前三名是有奖品的。

老师讲的内容就是怎么做一个 iOS 的登录页面,我很快就做出来了,然后又加了背景图、按钮颜色等自由发挥的内容,老师看到我作业后说,这个是我钦点的第一名了。因为我做的是最快、最完整的,还有自由发挥的额外内容。

很意外,就这么拿了一个一等奖 🏆。

可能因为是体验课,大部分同学都没认真听,也没把这个奖品当回事,我做了,就这样拿了一个一等奖。

奖品是一个程序员风格的双肩包 🎒,大约 200 元左右。质量很好,我背了挺长时间。

我们是三个人一组,一等奖是我们小组三个人都有这个包。我们组有一位同学,一直在睡觉,他很惊讶,说自己睡了一觉起来我们组得了一等奖,白得一个包。哈哈哈哈。

这就是我和 Apple 开发最早的缘分 💗。

那次培训班之旅,洗脑还是挺成功的,回学校的火车上,还是有不少人对培训老师讲的培训前景,以及这个行业的高薪心动了,甚至有人都不想考研了,打算直接去培训。

不过回到学校后不少人也冷静下来了,该考研考研,该实习实习。

毕业后我并没有做 iOS 开发,因为没有这个基础,我没有 iOS 开发的设备,对一个普通学生来说,这些设备很昂贵。其次周围也没有这样的氛围,我周围的人都在做前端或者后端,我继续从事了我已经很熟悉的前端开发。

实习的时候我分期买了第一部 iPhone,后买又买了 iPad,感觉苹果的设备很精致,系统设计交互很特别。

再后来自己有收入了,也买了不少的 Apple 设备,当我同时拥有 Mac 和 iPhone 的时候我有过为什么不试试 Apple 开发的想法? 💡

最好的时刻

至今我从事前端开发 7 年多了,兜兜转转,我又开始接触 Apple 生态的开发了。想法落地,我开始尝试 iOS 和 macOS 开发,可能一切都是最好的安排。今年有了 AI 的加持,写个 App 比以前更容易了。

奇妙 🍀

兜兜转转,我又回到这条道路上。又开始了 Apple 生态的软件开发,我觉的很奇妙。

我的手机流量和宽带套餐性价比方案

2024-11-12 09:15:56

和大家分享一下我们家现在的手机流量和宽带方案,我感觉非常划算,也稳定用了两年多了。

现状

📱 我和小秋目前有三个手机号,都是北京移动,月租分别是

  • 我的手机号月租 0 元
  • 小秋的主卡 8 元
  • 小秋的流量卡 10 元
  • 宽带每年 500 元

⌛️ 额度:流量 100G 通话 700分钟 家庭宽带 500M

我感觉挺划算的,也满足我们日常使用,和大家分享一下怎么操作的。

详情

北京移动每年年初的时候会有个「移动福卡 Pro 版」的套餐,有时候会下架,但是年初会再上架。

前年年末我问的时候说没有了取消了,但是去年年初我发现又上架了。

⚠️ 找不到这个套餐也没关系,也有类似的,就是找新手机号送宽带的套餐。

这个套餐是办理一个新手机号,每年 500元,然后流量 100G 1000分钟通话,不过我办理的时候通话只有 700分钟的了,也不错。

新手机号小秋在用,只用来打电话和用流量,不注册和绑定任何软件。因为是套餐送的,这个手机号以后就不用了,后面我们叫它流量卡 🌊。

小秋以前的手机号用了很多年了,绑定了很多软件,就办理了保号套餐 8 元,手机内关闭这个卡的流量功能。日常就是用流量卡的流量。

🎊 然后把我的手机号设置成流量卡的副卡,这样只需要流量卡每月再交 10 元。这个是开通副卡的费用,但是我的手机卡完全没有费用了,流量和通话都和流量卡共用,月租也没有了。

就实现了上面的效果:

  • 小秋的主卡月租 8 元,保号套餐。
  • 流量卡10 元,开通副卡。
  • 我的手机卡0 元,或者说费用就是上面流量卡的费用。

⚠️ 注意

不过注意,换宽带的套餐,有时候需要 100-200 元的光猫安装费用。

安装师傅每次都是换新的光猫,并不能直接用以前的,而且需要把以前的光猫自己还到营业厅,不要直接给安装人员。要不然系统里会记录你没还设备,进入黑名单。

我上次就直接给了安装人员,结果系统显示我没归还设备,后来打电话找了客服,安装人员又给我快递发了一个光猫,我还到营业厅才解除的黑名单。这个挺坑的。

换宽带套餐后新机的安装费用也不统一,有时候不要新机的安装费,有时候又需要,办理套餐的时候需要问清楚。

iMessage 在国内好用吗?

2024-11-09 19:08:10

背景

苹果发布会经常出现系统级别短信软件 iMessage 的一些功能升级介绍,不过国内关注的比较少。主要是国内有国民级的聊天软件微信,iMessage 相比微信局限挺多的。

我和小秋以前也是用微信聊天, 去年偶然间发现用系统自带的 iMessage 聊天挺好的 😃。和大家聊一聊 iMessage 的一些优势:

优势

  1. 👍 可以显示已读。这样有很好的反馈,知道发送的信息对方有没有收到。
  2. ☁️ 所有数据自动保存到 iCloud,有备份不会丢,也可以自动同步到其他设备。
  3. 🔐 iCloud 的数据是保存在个人 iCloud 存储中,相对于微信更安全,隐私性更好一些。
  4. 🔍 系统级别的搜索支持。比如 iMessage 的照片在相册搜索的时候也能搜到,图片中的文字也可以检索到。
  5. 😃 还有我很喜欢的贴纸功能。系统相册中可以方便的提取图片中的人物制作成贴纸,这些贴纸就能在 iMessage 中使用。相当于可以用自己拍的照片制作表情包。我和小秋聊天的时候,就用我们自己照片制作的贴纸当表情包,很有意思。

最后

不过我觉的这种聊天仅限于亲密关系,除了小秋,我和其他人还是用微信和邮件等方式沟通,这可能也是微信不做已读功能的原因吧。并不是所有人都喜欢显示已读。

还有近两年 iMessage 收到骚扰短信的情况几乎不见了,之前经常收到乱七八糟诈骗短信,现在治理的好多了。