v4.6.0
🚀 v4.6.0 — Windows Maps Extension & Offline OsmAnd Runtime
🗺️ A new Windows-only maps extension brings the offline OsmAnd/OBF runtime into iPhotron, with clearer packaging, installer integration, and a documented upstream build workflow.
Key Updates
🗺️ Windows Maps Extension
- Added a self-contained maps extension rooted at
src/maps/tiles/extension/for the offline OBF map runtime. - The bundled extension now carries
World_basemap_2.obf, OsmAnd resources, and native runtime binaries in one predictable layout. - Windows builds can use the native OsmAnd widget runtime for a fuller offline map experience while keeping the repository self-contained.
| Without maps extension | With maps extension |
|---|---|
|
|
⚙️ Runtime Selection & Fallback Behavior
- Improved map backend startup so iPhotron can prefer the native Windows widget when the runtime is healthy.
- Preserved the Python/helper-backed OBF renderer as a practical fallback path.
- Linux and macOS continue using the existing Python / legacy map path while the native maps extension remains Windows only.
📦 Packaging & Installer Integration
- Aligned local development, Nuitka packaging, and the Windows installer around the same extension directory contract.
- Documented how the extension is synchronized into packaged builds and optional installer assets.
- Made Windows release work more reproducible by standardizing which runtime artifacts ship with the application.
🧰 Upstream Build Workflow
- Split the OsmAnd runtime build pipeline into the dedicated
PySide6-OsmAnd-SDK side project. - Added clearer developer documentation for building, syncing, and validating the maps extension from the upstream workspace.
- Improved the handoff between runtime experimentation in the side project and release packaging in the main iPhotron repository.
🚀 v4.6.0 — Windows 地图扩展与离线 OsmAnd 运行时
🗺️ 新增的 Windows 专用地图扩展为 iPhotron 引入了离线 OsmAnd/OBF 运行时,并带来了更清晰的打包结构、安装程序集成以及文档化的上游构建工作流。
关键更新
🗺️ Windows 地图扩展
- 在
src/maps/tiles/extension/目录下新增了自包含的 地图扩展 (maps extension),用于支持离线 OBF 地图运行时。 - 绑定的扩展现在集成了
World_basemap_2.obf、OsmAnd 资源文件以及原生运行时二进制文件,采用了统一的可预测布局。 - Windows 版本现在可以使用原生的 OsmAnd 挂件运行时,以获得更完整的离线地图体验,同时保持仓库的自包含性。
⚙️ 运行时选择与回退机制
- 优化了地图后端启动逻辑,使 iPhotron 在运行时环境健康时优先选择原生 Windows 挂件。
- 保留了基于 Python/辅助程序的 OBF 渲染器作为实用的备选路径。
- 在原生地图扩展仅限 Windows 使用期间,Linux 和 macOS 将继续使用现有的 Python 或旧版地图路径。
📦 打包与安装程序集成
- 围绕相同的扩展目录规范,统一了本地开发、Nuitka 打包以及 Windows 安装程序的处理逻辑。
- 记录了扩展如何同步到打包构建版本以及可选安装程序资产中的过程。
- 通过标准化随应用程序发布的运行时伪影(Artifacts),提高了 Windows 发布版本的可重现性。
🧰 上游构建工作流
- 将 OsmAnd 运行时构建流水线拆分为独立的 [PySide6-OsmAnd-SDK](https://github.com/OliverZhaohaibin/PySide6-OsmAnd-SDK) 侧向项目。
- 增加了更清晰的开发者文档,涵盖如何从上游工作区构建、同步和验证地图扩展。
- 改善了侧向项目中的运行时实验与 iPhotron 主仓库发布打包之间的交接流程。

