SHA256
Replace current wrapper claims with native architecture/security/build evidence, preserve historical documents, track all thirty pages and explicit release gates, correct brand attribution and provide the twelve-section delivery report without claiming completion. Native signing remains paused and Apple application/device validation outstanding.
44 lines
2.2 KiB
Markdown
44 lines
2.2 KiB
Markdown
# iOS development
|
|
|
|
Requires macOS, Xcode 16.4 or newer with an iOS simulator, and XcodeGen 2.44.1.
|
|
Minimum iOS/iPadOS 18.4 is retained for this rebuild. The application surface is
|
|
SwiftUI; the old WKWebView renderer is archived, not shipped. No CocoaPods or external
|
|
runtime package is required. For App Store submission use Apple's currently
|
|
required Xcode/iOS SDK, not merely the oldest compiler that can build the source.
|
|
|
|
```sh
|
|
bash scripts/install-xcodegen.sh "$HOME/.local/yuvomi-xcodegen"
|
|
"$HOME/.local/yuvomi-xcodegen/xcodegen/bin/xcodegen" generate --spec ios/project.yml
|
|
device=$(python3 scripts/select-simulator.py)
|
|
xcodebuild -project ios/Yuvomi.xcodeproj -scheme Yuvomi \
|
|
-destination "platform=iOS Simulator,id=$device" CODE_SIGNING_ALLOWED=NO test
|
|
xcodebuild -project ios/Yuvomi.xcodeproj -scheme Yuvomi \
|
|
-destination 'generic/platform=iOS' -archivePath artifacts/Yuvomi-unsigned.xcarchive \
|
|
CODE_SIGNING_ALLOWED=NO archive
|
|
```
|
|
|
|
`project.yml` is the source of truth. The Xcode project and generated Info.plist
|
|
are ignored. The XcodeGen download is version- and SHA256-pinned. The project
|
|
includes a privacy manifest, camera/photo/local-network usage strings, universal
|
|
app icon, orientation support, unit and UI test targets, and no ATS exception.
|
|
|
|
On macOS or Linux with Swift 6 installed:
|
|
|
|
```sh
|
|
swift test --package-path ios
|
|
swiftc -frontend -parse ios/Sources/*.swift ios/Tests/*.swift ios/UITests/*.swift
|
|
```
|
|
|
|
These portable tests compile the **production Foundation API transport, contracts
|
|
and URL/metadata policies**. Parsing does not typecheck SwiftUI or Security APIs. Neither command is
|
|
evidence that the iOS application builds. Actual Xcode testing is mandatory.
|
|
|
|
For a device build select your authorized development team in Xcode, use your own
|
|
registered bundle identifier, and let Xcode manage development provisioning.
|
|
Never commit generated profiles or certificates. See `release-process.md` for
|
|
distribution. A Linux environment cannot produce a validated iOS archive.
|
|
|
|
The Mac runner now bootstraps checksum-pinned native Node 22 before checkout,
|
|
because its JavaScript actions cannot start without Node in the service PATH.
|
|
This does not install/choose Xcode, accept its license or create a simulator.
|