游牧周记第36期
游戏
Diablo IV的卡死问题
2025之后,就卡顿极其严重,问了无数AI,查了无数资料均无效果。 后来还是Gemini 2.5Pro给出了稍微有用的答案。 去掉一个配置文件就好了。 LocalPrefs.txt,说是在Diablo IV的文档目录下,我建议搜一下。 其实就是彻底把游戏配置归零,然后进入游戏提醒重新配置,你也可以直接跳过。 然后真的就顺了很多,虽然和几年前刚刚安装时比有时候还有点卡。 原理就是作为多年老用户,遗留了很多老的配置在配置文件中,互相可能有冲突了。
Gemini越来越神了,会否成为真正的AI一哥?
expo开发
iOS app如何去掉Apple Pay功能设置
我注意到remove的是
com.apple.developer.in-app-payments 貌似内购,而不是apple pay啊 merchant.com.your.merchant.id
🧠 结论先讲:
com.apple.developer.in-app-payments是 Apple Pay(实体支付),不是内购(IAP)!
✅ 区分这两个容易混淆的权限
| 能力名称 | 键名(Key) | 功能用途 | 说明 |
|---|---|---|---|
| 🛒 In-App Purchase (IAP) | com.apple.InAppPurchase(隐含于系统) | 订阅、金币、虚拟物品 | App Store 管理,Xcode 和 profile 默认支持 |
| 💳 Apple Pay(实体支付) | com.apple.developer.in-app-payments | 实体商品支付、Apple Wallet 支付 | 需要配置商户 ID,如:merchant.com.xxx |
🔍 你看到的这个字段:
<key>com.apple.developer.in-app-payments</key>
<array>
<string>merchant.com.your.merchant.id</string>
</array>
正是 Apple Pay 的专属字段,它告诉 Xcode:
这个 App 打算使用 Apple Pay,接入商户
merchant.com.your.merchant.id。
❗️它不是 IAP(内购)
-
IAP 并不需要你手动加任何 entitlement;
-
只要你的 App ID 开启了 In-App Purchase 能力,并在 App Store Connect 配置商品,就可以正常使用;
-
Apple Pay 才需要这个 entitlement,并配合后台商户配置使用。
✅ 你应该怎么做?
-
✅ 如果你只使用 IAP(订阅、金币),删除这个字段是完全正确的;
-
✅ 同时在 Apple Developer Portal → App ID → Capabilities 中关闭 Apple Pay;
-
✅ 用
eas credentials删除旧 profile,重新生成干净的 App Store profile; -
✅ 在
eas build时加入--clear-cache,清除旧的 entitlements 残留。
✅ 为什么这个字段出现在 prebuild 后?
Expo 的模板可能默认为支持 Apple Pay 的插件(如 expo-payments-stripe)预留了这个能力。如果你:
-
用了
expo-dev-client -
或者启用了其他支付相关插件(即使没用 Apple Pay)
就有可能在 prebuild 时被注入。
suhe注:不认同这点,以前没出现过,原因还是不详。
✅ 最后确认(只使用 IAP 的最小需求)
| 项目 | 是否需要 Apple Pay |
|---|---|
expo-in-app-purchases | ❌ 不需要 |
react-native-iap | ❌ 不需要 |
| App Store Connect 商品配置 | ❌ 不需要 Apple Pay,仅需要开启 IAP 能力 |
merchant.com.xxx | ✅ 仅 Apple Pay 需要,IAP 完全不需要 |
GitHub结合Eas打包的工作流程
一个人开发项目,而且希望主分支 main 继续承担日常开发任务,同时只在需要 EAS 构建时创建 PR + 贴 label 触发远程打包。这种需求非常清晰,也非常实用,我们可以为你设计一套轻量、流畅、零冗余的 Git 使用流程,专为“单人开发 + Expo GitHub App 构建”场景优化。
✅ 你的目标简化版
| 需求 | 实现方式 |
|---|---|
日常开发就在 main 分支上 | 继续直接用 main 写代码,无需每次都建分支 |
| 需要远程构建时触发 PR + Expo 构建 | 快速从 main 创建一个构建分支,发 PR,贴 Label,完成后自动删除 |
🧭 推荐工作流设计(为你量身定制)
✅ Step 1:日常开发保持在 main
你继续在 main 分支做日常开发、调试、测试,无需变动流程。
git checkout main
# 编辑代码...
git commit -am "修复组件显示 bug"
git push origin main
✅ Step 2:需要构建时,创建一个构建专用分支
你只在需要构建的时候,从当前的 main 快速拉个构建用分支(不做额外开发):
git checkout -b build/eas-android-20250803
git push origin build/eas-android-20250803
📌 命名建议:
build/eas-平台-日期,比如build/eas-android-20250803
✅ Step 3:GitHub 上发起 PR(无需修改任何代码)
-
打开 GitHub,会自动提示你:
Compare & pull request -
点击进入 PR 页面。
-
在右侧添加 Label,例如:
eas-build-android:prod_android -
不需要写代码 diff,不需要添加 Reviewer,你自己点就好。
✅ Step 4:Expo GitHub App 识别 Label 并构建
-
构建过程会在 PR → Checks 里展示;
-
Expo Dashboard 会显示构建进度和下载链接;
-
你可以继续用电脑干别的事,等它构建完成。
✅ Step 5:构建完成后,合并 PR 并清理分支
如果你希望主分支也保留这次构建记录:
# 在 GitHub PR 页面点击 “Merge Pull Request”
然后回到本地:
git checkout main
git pull origin main
git branch -d build/eas-android-20250803
git push origin --delete build/eas-android-20250803
也可以 不合并,直接关闭 PR 然后删除分支也没关系 —— 因为你本来就在 main 写代码,构建用 PR 只是工具人 😎。
✅ 自动化版本(可选 Shell 脚本)
如果你想一条命令就完成构建流程(不用记这么多命令),你可以用如下脚本:
#!/bin/bash
DATE=$(date +%Y%m%d)
BRANCH=build/eas-android-$DATE
# 确保当前在 main
git checkout main
git pull
# 创建构建分支并推送
git checkout -b $BRANCH
git push origin $BRANCH
echo ""
echo "✅ 分支 $BRANCH 已创建并推送"
echo "👉 请访问 GitHub 页面创建 PR 并添加 label: eas-build-android:prod_android"
保存为 eas-build.sh,加权限:
chmod +x eas-build.sh
然后以后只需运行:
./eas-build.sh
就自动完成创建分支 + 推送,剩下你只需在 GitHub 上贴个 label。
✅ 为什么这个流程适合你(一人开发者)?
| 特性 | 优点 |
|---|---|
| main 分支持续开发 | 不被强迫换分支、不打断手感 |
| 构建过程隔离 | 不会把构建 commit 和构建控制信息混进 main |
| 构建结束即可删 | PR 不需要合并,临时存在就好 |
| label 构建精准控制 | 不用担心误触发、不用写复杂 CI 文件 |
| GitHub 自动记录构建日志 | PR 页面和 Expo Dashboard 保留构建历史,可审计 |
🧩 可选优化项(建议长期使用时加上)
-
.github/PULL_REQUEST_TEMPLATE.md:自动提示自己加 label; -
.gitignore:确保构建相关的缓存文件不被提交; -
eas.json里 profile 明确配置好平台和镜像,便于稳定复用。
✅ 总结
你可以用这个结构保持开发流畅、构建可控:
| 开发场景 | 操作 |
|---|---|
| 正常写代码 | 就在 main |
| 想打包构建 | main 拉个 build/eas-xxx 分支 → 发 PR → 贴 label |
| 构建完成 | Merge 或 Close PR,然后删掉构建分支 |
| 重复这个流程 | 所有构建 PR 都是干净、独立、不会干扰你 main 的 |
Eas云端打包pnpm项目的问题
报错情况:
eas打包expo app项目报错:Running "pnpm install --frozen-lockfile" in /Users/expo/workingdir/build/ directory ERROR packages field missing or empty For help, run: pnpm help install pnpm install --frozen-lockfile exited with non-zero code: 1
之前没有发现过,但近期出现,可能两个原因:
- pnpm/eas/expo版本更新;
- eas云端服务是gitHub Action触发的; 之前的一个项目遇到过,差点忘了,解决方法就是在pnpm-workspace.yaml中加入:
# 告诉 pnpm 在哪些文件夹里寻找项目
packages:
# 如果您的 Expo 项目就在根目录,并且没有其他包,可以这样写:
- '.'
App 切换到后台的Expo优雅处理方式
首先做一个通用勾子。
// useAppStatePaulseTask.tsx
import { useEffect, useRef } from 'react';
import { AppState, AppStateStatus } from 'react-native';
export function useAppStatePauseTask(onPause: () => void) {
const appState = useRef(AppState.currentState);
useEffect(() => {
const subscription = AppState.addEventListener('change', (nextAppState: AppStateStatus) => {
if (appState.current.match(/active/) && nextAppState.match(/inactive|background/)) {
onPause(); // App 进入后台时触发
}
appState.current = nextAppState;
});
return () => subscription.remove();
}, [onPause]);
}
在页面调用的例子:
// 在 App 切换到后台(如按了 Home 键、切换到其他 App)时停止某些正在进行的任务
useAppStatePauseTask(() => {
handleAiStop(); // 中止 AI
ExpoSpeechRecognitionModule.stop(); // 停止语音识别
});
新作品
没错,我要开发新的app了,灵感来自于到中国的一个澳洲朋友。
和AI有关,和语言有关,先透露到这里。
总之先去AppStore注册,还有RevenueCat把付款机制做了,图标啥的AI赶紧整一个。
对了还有ICP备案啥的。
一切从简从速。




阳台不够大真麻烦啊。
亚马逊的《基地》都第三季了,看预告似乎第一反派“骡”出现了,要进入剧情高潮。但我从第一季开始就抑制不住对这片子的恶心,即使跳着看也很少坚持看完一集。作为小说粉的我,实在受不了这个改变和表演的风格。如果是50-70年代科幻间谍风反而我会喜欢。
亚马逊的魔戒前传很多人不喜欢,我还觉得不错,但这部...真就算了。
《黑袍纠察队》是他们不可超越的神作。




其实游戏设计部分剧情和部分演员的表演真不错,整体符合预期。
但整体上确实过于平庸,特别是警察线等周边路线,还有嘉宾啥的都搞得非常无聊(韩国人对外国文化的理解还是有点刻板简单)。
结局也挺无语的,感觉铺垫不够,有点失败。
最精彩的反而是最后几个人渣的演出,太真实了,东亚人可能不陌生,西方人可能觉得有点破底线。
应该韩国这边不会拍续集了,要拍也会换卡司换场地(比如片尾暗示的美国)。
本来剧情还算紧凑,符合韩片的爽剧感觉,但没有了一拳超人(对,就是说馬東錫的那些)那种幽默感。
非要搞得深沉,还加点阴谋论,整个气氛不伦不类。
导演明显是看了太多John Wick,但把男主搞成一个有自杀和自虐倾向的一拳超人。
和鱿鱼游戏类似,最大的亮点是各个反派配角,两个黑老大演得不错,有点像之前看的美剧“黑帮领地”那感觉,包括挑起事端的无脑黑二代,都挺不错,不算单薄刻板。
最后结局证明了我的推断,男主有自杀倾向,而且是完全没必要的。


一直下雨,估计还有很久,去年在广州被雨劝回,这次我们也该踏上归途了。
汉口当年是第二上海,现在也在某些地方cos上海滩。
吃了2天小龙虾,蒸虾还不错,巴厘的品质稳定,价格是路边店的2-3倍。
热干面、凉面、粉都加麻酱,这点像北方?还是北方学武汉?
总之,现在开始不想再吃KFC等快餐了。


古德寺据说是这几年才被注意的,以前只有附近人知道,西式建筑中的大雄宝殿和观音祠,确实绝无仅有。

岳阳楼70元门票,不想买只想在旁边拍照这种想法,早已被当地旅游部门提前预判,所有周围的各个可能在景区外看到的角度都被封死。
洞庭湖和城市共生,不愧鱼米之乡。
贵州一大主题是吃,但我们随便整了点米豆腐和羊肉粉,感觉一般。

住处在观山湖区,原以为是比较偏僻的地方,结果基建像CBD,离博物馆和会展中心很近,于是去了省博物馆。
吃了脆哨燃面,配的豆腐脑面汤太惊艳了。
幸好先去了烟台威海的海边,对海滩和海鲜祛魅,不然一般人在这边容易被坑,拉客文化严重。
青岛市博物馆在维修,开放的部分完全没意思。
海军博物馆可能是最有意思的,可以上军舰。据说很难预约,主要是app问题,但我们试了还好,可能修复了。
第二天天气极好,晴朗而不炎热,据说是几个月来最好的一天,颜值提高了10倍不止,石老人海水浴场非常棒,第一海水浴场也不错,沿海的部分都很上镜。这才是青岛。


看了京杭大运河,上了城楼。
宿迁人的性格似乎有点冷,不耐烦,不适合搞服务业。KFC座位上完全不整理,喊了也不动,有几家店白天人少时关灯,整个黑的。
本想逛一下新盛路步行街啥的,看这架势算了。
在东哥故里的京东门口打个卡。

由于地缘多样性,历史复杂,所以信息量挺大。
免费章盖得很爽,冰箱贴品种也多。
傍晚逛了淮河路步行街,比较低配的春熙路。
路过李鸿章故居和明教寺等古迹,都关门了。
罍街就是一个中等规模的网红打开商业街。(2008年,青铜器“春秋镂空龙耳罍”在安徽省出土,为后来罍街的命名带来灵感。)
16元/人的中餐(两荤两素)其实蛮合适的,特别是在大馆子里,毕竟现在的经济形势,不搞点这些很难支撑流量了。
合肥给人的整体感觉,确实是个大县城...