DevLog:2026年1月19日

1、上周参考ChatGPT的建议,给DoitWith增加了“下一步”功能,用于记录工作流程,同时调整了部分操作方式和界面细节,构建测试,发现问题如下:

1.应用内的示例Todo无法修改内容,标题、下一步、日期、重复在修改之后保存,均未生效

2.修改新建的Todo时也无法生效

3.删除示例Todo后,第一次删除会被归类到General,第二次删除后仍然在General里,同时回收站中也有同样的条目,应该是在删除之后直接进入回收站,不应继续存在于Todo列表中

2、Cursor在修改过程中指出问题1和2是由于EditTodoView只更新内存数组,未更新CoreData导致的,问题3是因为分组信息未能正确获取,并且删除后要调用loadFromCoreData()重新加载,确保列表更新,再次测试,已经可以正常保存修改,但删除后仍然会被归类到General分组,继续反馈给Cursor修改

3、Cursor认为这是因为删除时创建的todoCopy被当做正常Todo出现在列表中,在删除Todo时,需要从CoreData中删除原始TodoEntity,并创建DeletedTodoEntity,保存到回收站,修改后再次测试删除功能也已正常

4、然后和Cursor明确“完成Todo”的逻辑,如果一条Todo未添加下一步,点击完成按钮时就直接完成整条Todo,如果添加了下一步,点击完成按钮时就完成下一步,所有下一步均完成后,才会完成整条Todo,另外,在添加和修改Todo时,下一步的输入框里不要提示下一步1、下一步2,只显示“下一步”就好

5、突然想起来上周发起的4个Archive任务,打开看了下4条都已经通过了Notary,目前的状态都是Ready to distribute,第4条没有任何的问题,全部绿色,前3条都有黄色的提示信息“Unable to find API request response with task ID for GET submissions”,询问ChatGPT得知,这是Xcode(Organizer/Notary UI)在向Apple Notary服务拉取公证日志(log)时失败了,常见的原因包括Apple服务端短暂异常/延迟、网络或代理导致请求被拦截、或Xcode UI的偶发BUG(任务其实已经在处理/已完成,但UI拉日志失败),怀疑可能是因为公司网络质量差导致的

6、接下来尝试用命令行形式将.app制作成.dmg,包括安装create-dmg——进入.app所在目录——生成DMG——公证DMG——Staple等步骤:

1.安装create-dmg:

brew install create-dmg

2.进入.app所在目录(在Archieve中导出时选择导出到桌面,不要cd进.app里面):

cd ~/Desktop

3.生成DMG:

create-dmg \

  –volname “chatwith” \

  –window-size 800 400 \

  –icon-size 120 \

  –icon “chatwith.app” 200 190 \

  –app-drop-link 600 185 \

  “chatwith.dmg” \

  “chatwith.app”

4.公证DMG:

xcrun notarytool submit chatwith.dmg \

  –apple-id wujinlei51@gmail.com \

  –team-id 6UY94UFR36 \

  –password xzfg-rgmk-niks-ehtt \

  –wait

5.Staple:

xcrun stapler staple chatwith.dmg

最后一步收到The staple and validate action worked!的提示之后,就说明公证票据已经成功“钉”进chatwith.dmg,即使离线,Gatekeeper也能验证,到此完成,今晚换另一台电脑安装测试

7、继续前边对DoitWith的修改,主要是明确完成Todo的逻辑,并调整下一步输入框的提示文字,针对完成Todo的逻辑,需要修改CoreData模型、修改Todo结构体、修改完成Todo的逻辑,并修改TodoRowView和GroupTodoRowView显示下一步完成状态,Cursor在进行这些修改的同时,增加了一个针对编辑Todo的功能:在EditTodoView中,当修改nextSteps时,会自动过滤掉超出范围的已完成索引,明天测试一下这个功能具体是指什么