Browse Source

Merge pull request 'trent-tweaks' (#133) from trent-tweaks into qrcode-reboot

Reviewed-on: https://gitea.anomalistdesign.com/trent_larson/crowd-funder-for-time-pwa/pulls/133
qrcode-reboot
trentlarson 1 day ago
parent
commit
52685702c1
  1. 3
      .gitignore
  2. 44
      BUILDING.md
  3. 4
      README.md
  4. 20
      android/.gitignore
  5. 2
      android/.gradle/buildOutputCleanup/cache.properties
  6. BIN
      android/.gradle/file-system.probe
  7. 0
      android/.gradle/vcs-1/gc.properties
  8. 2
      android/app/.gitignore
  9. 2
      assets/README.md
  10. 22
      ios/App/App.xcodeproj/project.pbxproj
  11. BIN
      ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
  12. 18
      ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json
  13. 10
      ios/App/App/Info.plist
  14. 4
      package-lock.json
  15. 2
      package.json
  16. 1
      pkgx.yaml
  17. 4
      test-playwright/test-playwright/test-results/.last-run.json
  18. 29
      test-playwright/test-results/.last-run.json

3
.gitignore

@ -53,5 +53,4 @@ build_logs/
android/app/src/main/assets/public
android/app/src/main/res
android/.gradle/buildOutputCleanup/buildOutputCleanup.lock
android/.gradle/file-system.probe

44
BUILDING.md

@ -337,6 +337,8 @@ Prerequisites: macOS with Xcode installed
npx cap sync ios
```
- If that fails with "Could not find..." then look at the "gem_path" instructions above.
3. Copy the assets:
```bash
@ -344,20 +346,38 @@ Prerequisites: macOS with Xcode installed
npx capacitor-assets generate --ios
```
3. Open the project in Xcode:
4. Bump the version to match Android
```
cd ios/App
xcrun agvtool new-version 15
# Unfortunately this edits Info.plist directly.
#xcrun agvtool new-marketing-version 0.4.5
cat App.xcodeproj/project.pbxproj | sed "s/MARKETING_VERSION = .*;/MARKETING_VERSION = 0.4.5;/g" > temp
mv temp App.xcodeproj/project.pbxproj
cd -
```
5. Open the project in Xcode:
```bash
npx cap open ios
```
4. Use Xcode to build and run on simulator or device.
6. Use Xcode to build and run on simulator or device.
5. Release
7. Release
* Under "General" renamed a bunch of things to "Time Safari"
* Choose Product -> Destination -> Any iOS
* Choose Product -> Archive (which will trigger a build and take time, and "login" keychain password is machine user login, repeatedly)
* Click Distribute
* Choose Product -> Destination -> Build Any iOS
* Choose Product -> Archive
* This will trigger a build and take time, needing user's "login" keychain password which is just their login password, repeatedly.
* If it fails with `building for 'iOS', but linking in dylib (.../.pkgx/zlib.net/v1.3.0/lib/libz.1.3.dylib) built for 'macOS'` then run XCode outside that terminal (ie. not with `npx cap open ios`).
* Click Distribute -> App Store Connect
* In AppStoreConnect, add the build to the distribution: remove the current build with the "-" when you hover over it, then "Add Build" with the new build.
* It can take 15 minutes for the build to show up in the list of builds.
* You'll probably have to "Manage" something about encryption, disallowed in France.
* Then "Save" and "Add to Review" and "Resubmit to App Review".
#### First-time iOS Configuration
@ -393,13 +413,15 @@ Prerequisites: Android Studio with SDK installed
npx capacitor-assets generate --android
```
4. Open the project in Android Studio:
4. Bump version to match iOS, in android/app/build.gradleq
5. Open the project in Android Studio:
```bash
npx cap open android
```
5. Use Android Studio to build and run on emulator or device.
6. Use Android Studio to build and run on emulator or device.
## Android Build from the console
@ -429,6 +451,12 @@ Prerequisites: Android Studio with SDK installed
... and find your `aab` file at app/build/outputs/bundle/release
At play.google.com/console:
- Create new release, upload, hit Next.
- Save & send changes for review.
## First-time Android Configuration for deep links

4
README.md

@ -31,7 +31,9 @@ See [TESTING.md](test-playwright/TESTING.md) for detailed test instructions.
## Icons
To add an icon, add to main.ts and reference with `fa` element and `icon` attribute with the hyphenated name.
Application icons are in the `assets` directory, processed by the `capacitor-assets` command.
To add a Font Awesome icon, add to main.ts and reference with `font-awesome` element and `icon` attribute with the hyphenated name.
## Other

20
android/.gitignore

@ -1,5 +1,17 @@
# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore
app/build/*
!app/build/.npmkeep
# Copied web assets
app/src/main/assets/public
# Generated Config files
app/src/main/assets/capacitor.config.json
app/src/main/assets/capacitor.plugins.json
app/src/main/res/xml/config.xml
# secrets
app/gradle.properties.secrets
app/time-safari-upload-key-pkcs12.jks
@ -94,11 +106,3 @@ lint/tmp/
# Cordova plugins for Capacitor
capacitor-cordova-android-plugins
# Copied web assets
app/src/main/assets/public
# Generated Config files
app/src/main/assets/capacitor.config.json
app/src/main/assets/capacitor.plugins.json
app/src/main/res/xml/config.xml

2
android/.gradle/buildOutputCleanup/cache.properties

@ -1,2 +0,0 @@
#Wed Apr 09 09:01:13 UTC 2025
gradle.version=8.11.1

BIN
android/.gradle/file-system.probe

Binary file not shown.

0
android/.gradle/vcs-1/gc.properties

2
android/app/.gitignore

@ -1,2 +0,0 @@
/build/*
!/build/.npmkeep

2
assets/README.md

@ -0,0 +1,2 @@
Application icons are here. They are processed for android & ios by the `capacitor-assets` command, as indicated in the BUILDING.md file.

22
ios/App/App.xcodeproj/project.pbxproj

@ -122,8 +122,8 @@
504EC2FC1FED79650016851F /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 0920;
LastSwiftUpdateCheck = 920;
LastUpgradeCheck = 920;
TargetAttributes = {
504EC3031FED79650016851F = {
CreatedOnToolsVersion = 9.2;
@ -348,18 +348,19 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 7XVXYPEQYJ;
CURRENT_PROJECT_VERSION = 17;
DEVELOPMENT_TEAM = GM3FS5JQPH;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 1.0;
MARKETING_VERSION = 0.4.6;
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
PRODUCT_BUNDLE_IDENTIFIER = com.brownspank.timesafari;
PRODUCT_BUNDLE_IDENTIFIER = app.timesafari;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic"; /* allows agvtool to set *_VERSION settings */
};
name = Debug;
};
@ -369,17 +370,18 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 7XVXYPEQYJ;
CURRENT_PROJECT_VERSION = 17;
DEVELOPMENT_TEAM = GM3FS5JQPH;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.brownspank.timesafari;
MARKETING_VERSION = 0.4.6;
PRODUCT_BUNDLE_IDENTIFIER = app.timesafari;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic"; /* allows agvtool to set *_VERSION settings */
};
name = Release;
};

BIN
ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 116 KiB

18
ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json

@ -1,14 +1,14 @@
{
"images" : [
"images": [
{
"filename" : "AppIcon-512@2x.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
"idiom": "universal",
"size": "1024x1024",
"filename": "AppIcon-512@2x.png",
"platform": "ios"
}
],
"info" : {
"author" : "xcode",
"version" : 1
"info": {
"author": "xcode",
"version": 1
}
}
}

10
ios/App/App/Info.plist

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>TimeSafari</string>
<string>TimeSafari</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
@ -22,6 +22,10 @@
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>Time Safari allows you to take photos, and also scan QR codes from contacts.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Time Safari allows you to upload photos.</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
@ -45,9 +49,5 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>This app uses the camera to scan QR codes and capture photos.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to your photo library to save and select photos.</string>
</dict>
</plist>

4
package-lock.json

@ -1,12 +1,12 @@
{
"name": "timesafari",
"version": "0.4.4",
"version": "0.4.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "timesafari",
"version": "0.4.4",
"version": "0.4.6",
"dependencies": {
"@capacitor-mlkit/barcode-scanning": "^6.0.0",
"@capacitor/android": "^6.2.0",

2
package.json

@ -1,6 +1,6 @@
{
"name": "timesafari",
"version": "0.4.4",
"version": "0.4.6",
"description": "Time Safari Application",
"author": {
"name": "Time Safari Team"

1
pkgx.yaml

@ -1,5 +1,6 @@
dependencies:
- gradle
- java
- pod
# other dependencies are discovered via package.json & requirements.txt & Gemfile (I'm guessing).

4
test-playwright/test-playwright/test-results/.last-run.json

@ -1,4 +0,0 @@
{
"status": "failed",
"failedTests": []
}

29
test-playwright/test-results/.last-run.json

@ -1,29 +0,0 @@
{
"status": "failed",
"failedTests": [
"a29eb57667e0fb28c7e9-7a80e551e7f16a766d0d",
"a29eb57667e0fb28c7e9-1a8c76601bb6ea4f735c",
"a29eb57667e0fb28c7e9-0a3670fa77fcd5ac9827",
"a29eb57667e0fb28c7e9-90c8866cf70c7f96647d",
"a29eb57667e0fb28c7e9-4abc584edcf7a6a12389",
"a29eb57667e0fb28c7e9-3b443656a23fd8e7eb76",
"a29eb57667e0fb28c7e9-1f63cf7a41b756ffe01f",
"a29eb57667e0fb28c7e9-4eb03633761e58eac0a4",
"db48a48c514e3e2940e5-cef25040a0b285eed2ba",
"1c818805c9b0ac973736-726f18ba6163d57238c8",
"c52ae54d86eda05904f3-adf7525a07e75f4e3cc2",
"2fac21b9c9c3eb062631-9d2d2e9a199603c11b9b",
"64242279fe0133650483-20fbacc4e45c5561df6c",
"a7ff64a290be94f9d82c-e26ceb13031dafad1133",
"868977083268005e6ec0-c27d226d34e20ba4863d",
"5e149db5da4a5e319bcc-3298c84d0ebfff5e6d7c",
"5e149db5da4a5e319bcc-1981ba81641b6000f80b",
"2b5f6d3352de2040032d-bf5ed3a9483d90c396dd",
"2b5f6d3352de2040032d-6f52c3699c55c19ccad8",
"2b5f6d3352de2040032d-0f478a3208f64651daa1",
"2b5f6d3352de2040032d-a05f542cad739ee3b5b9",
"955bdfdfe05b442c0f5d-a9ec2b8bc7bd90ea0439",
"955bdfdfe05b442c0f5d-2c38171f673436923a8b",
"1a1fd29d3f0573e705e6-a3a6805908fe9a29ab11"
]
}
Loading…
Cancel
Save