chadtmiller.com/knotless
git that lives in your Atmosphere account
1
10
The iOS app is ready for TestFlight
ios/Knotless/PrivacyInfo.xcprivacynew+23−0
| @@ -0,0 +1,23 @@ | ||
<?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>NSPrivacyTracking</key> | ||
<false/> | ||
<key>NSPrivacyTrackingDomains</key> | ||
<array/> | ||
<key>NSPrivacyCollectedDataTypes</key> | ||
<array/> | ||
<key>NSPrivacyAccessedAPITypes</key> | ||
<array> | ||
<dict> | ||
<key>NSPrivacyAccessedAPIType</key> | ||
<string>NSPrivacyAccessedAPICategoryUserDefaults</string> | ||
<key>NSPrivacyAccessedAPITypeReasons</key> | ||
<array> | ||
<string>CA92.1</string> | ||
</array> | ||
</dict> | ||
</array> | ||
</dict> | ||
</plist> | ||
ios/ExportOptions.plistnew+16−0
| @@ -0,0 +1,16 @@ | ||
<?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>method</key> | ||
<string>app-store-connect</string> | ||
<key>teamID</key> | ||
<string>YN68LN9T7Z</string> | ||
<key>destination</key> | ||
<string>export</string> | ||
<key>signingStyle</key> | ||
<string>automatic</string> | ||
<key>manageAppVersionAndBuildNumber</key> | ||
<false/> | ||
</dict> | ||
</plist> | ||
ios/project.yml+1−0
| @@ -12,6 +12,7 @@ settings: | ||
TARGETED_DEVICE_FAMILY: "1,2" | ||
GENERATE_INFOPLIST_FILE: YES | ||
INFOPLIST_KEY_CFBundleDisplayName: Knotless | ||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption: NO | ||
INFOPLIST_KEY_UILaunchScreen_Generation: YES | ||
INFOPLIST_KEY_UIApplicationSceneManifest_Generation: YES | ||
INFOPLIST_KEY_UISupportedInterfaceOrientations: UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight | ||
ios/README.md+15−0
| @@ -21,6 +21,21 @@ and `KNOTLESS_ACTOR` set, `run.sh` mints an hour's service token for each method | ||
into `build/.tokens.json` and hands the app its path. That code isn't in a | ||
release build. | ||
| ||
## TestFlight | ||
| ||
Raise `CURRENT_PROJECT_VERSION` in `project.yml` for each upload, then: | ||
| ||
cd ios && xcodegen generate | ||
xcodebuild archive -project Knotless.xcodeproj -scheme Knotless -configuration Release \ | ||
-destination 'generic/platform=iOS' -archivePath build/Knotless.xcarchive -allowProvisioningUpdates | ||
xcodebuild -exportArchive -archivePath build/Knotless.xcarchive -exportPath build/export \ | ||
-exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates | ||
| ||
`build/export/Knotless.ipa` goes up with Xcode's Organizer or Transporter. Signing | ||
in needs `webcredentials` on Apple's CDN | ||
(`https://app-site-association.cdn-apple.com/a/v1/knotless.dev`), as a release build | ||
can't use developer mode: it can take a day or two after the file changes. | ||
| ||
## Looking at a screen | ||
| ||
`just ios-look <screen>` draws a screen in the simulator, light and dark, from | ||