Files
lanework/KanbanMobile/Info.plist
T
rzen 51d7b4b4bf The owners say so out loud — LSHandlerRank: Owner on both apps' board-type claims
Implied already by exporting the UTI; explicit so Lanework outranks any
third-party claimant of dev.rzen.indie.kanban-board on either platform.

Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
2026-08-08 20:54:11 -04:00

100 lines
3.5 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>Lanework</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Lanework</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>NSHumanReadableCopyright</key>
<string>© 2026 rzen</string>
<key>UILaunchScreen</key>
<dict/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<!-- Document-based, so App Store Connect requires this — the in-place editing that lets a
board opened from the Files app (or "On My iPhone ▸ Lanework") be edited where it sits. -->
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<!-- Publishes the sandbox's Documents/ as "On My iPhone ▸ Lanework" in the Files app — the
device home (`DeviceHomeResolver`), which is where a board that is not in iCloud lives.
Without this a local board would be a real board the user could not reach, back up by
hand, or move off the phone any way except through this app, which is not what "local"
is allowed to mean here. -->
<key>UIFileSharingEnabled</key>
<true/>
<!-- Same document-type + UTI declaration as the Mac app's Info.plist, and it must stay
byte-identical in meaning: the package conformance is what makes NSMetadataQuery and the
Files app treat a `.kanban` directory as one document instead of a folder of loose files.
The iOS app *exports* the type because it is a separate App Store product — on this
platform, it is the owner. -->
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>Lanework Board</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>dev.rzen.indie.kanban-board</string>
</array>
<key>LSTypeIsPackage</key>
<true/>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>com.apple.package</string>
<string>public.directory</string>
</array>
<key>UTTypeDescription</key>
<string>Lanework Board</string>
<key>UTTypeIdentifier</key>
<string>dev.rzen.indie.kanban-board</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>kanban</string>
</dict>
</dict>
</array>
<!-- Publishes the container's Documents/ as a visible folder in iCloud Drive — on every
platform, including the Mac's Finder, which is how boards reach the Mac app before it
adopts the container natively (open panel into iCloud Drive ▸ Lanework). -->
<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.dev.rzen.indie.Kanban</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>Lanework</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>
</dict>
</plist>