Commit graph

80 commits

Author SHA1 Message Date
Marc Durdin
fb2fbd2684 chore(mac): eval and non-eval codesign 2023-12-13 13:14:55 +07:00
Marc Durdin
2b61bb8f47 fix(mac): improve code signing robustness 2023-12-13 12:08:29 +07:00
Shawn Schantz
a863bf1670
Merge branch 'feature-macos-core' into feature/core/add-core-wrapper 2023-07-31 14:22:17 +07:00
Marc Durdin
37a8f1316e chore(mac): refactor notarization into sourced script 2023-06-19 07:32:14 +07:00
Marc Durdin
38845da761 chore(mac): notarytool json result parse 2023-06-14 09:04:24 +07:00
Marc Durdin
78c28945fb chore(mac): notarytool json output 2023-06-14 06:54:36 +07:00
Marc Durdin
fc96f013aa chore(mac): move from altool to notarytool 2023-06-14 06:27:16 +07:00
Marc Durdin
d36854e0fa fix(mac): CONFIG not CONFIGURATION in build path
Fixes an error in mac/build.sh, arising from work in #8698. Kinda proves
that the `-u` flag was worth setting globally!
2023-05-09 10:39:31 +07:00
Marc Durdin
127b0e0c43 chore(mac): fix missing build vars 2023-05-02 13:49:24 +07:00
Marc Durdin
2934a15dd7 chore(mac): fixup missing parameter test 2023-05-02 12:30:29 +07:00
Marc Durdin
a1e1f905cc chore(mac): remove unused variable in build.sh 2023-04-28 14:23:21 +07:00
Darcy Wong
3ef331a87e refactor(common): Update to build_help_html params 2023-03-10 12:49:37 +07:00
sgschantz
eba89e54cd preliminary integration of keyman core with keyman engine for mac 2023-03-09 14:07:44 +07:00
Darcy Wong
6c2126431f refactor(common): Make build-help into helper functions 2023-03-08 11:42:13 +07:00
Marc Durdin
ce864ea923 chore: update standard script prolog to use builtin instead of dirname 2023-02-22 11:04:15 +07:00
Marc Durdin
463c7ff907 chore: remove greadlink from standard script prolog 2023-02-22 10:43:06 +07:00
Marc Durdin
a004978863 chore: use builder_heading, remove echo_heading 2023-02-20 09:17:51 +07:00
Marc Durdin
4d53a277f3 chore: use builder_die, remove fail 2023-02-20 09:15:38 +07:00
Marc Durdin
318b4d4478 chore: use builder_warn, remove warn 2023-02-20 08:56:31 +07:00
Marc Durdin
067028cec2 chore: revise tag variable name to VERSION_GIT_TAG
Introduce new $VERSION_GIT_TAG environment variable, and update all
references to release@version in all projects to use the new variable.
2023-01-21 17:02:50 +07:00
Marc Durdin
767927bf16 chore(common): use /usr/bin/env bash
Fixes up scripts (except under /linux) to use `#!/usr/bin/env bash`
instead of `#!/bin/bash` or `#!/bin/sh` so that we don't end up with
the ancient version of bash supplied with macOS.

This became urgent with this PR, because of bash-4.xisms in
build-utils.sh, for example on line 572:

```
if [[ -v _builder_params[$e] ]]; then
```
2022-07-25 14:59:37 +10:00
Marc Durdin
0730098236 chore(ios): update ios/macos build scripts to log scripts
Adds run-xcodebuild function to wrap xcodebuild calls to keep logging
and error handling consistent. Currently used only by the iOS build; the
macOS build has a corresponding execBuildCommand function which does
pretty much the same thing (changing that would belong in a separate PR
I think and low priority.)
2022-06-24 11:37:46 +10:00
Marc Durdin
f070bfbea6 fix(mac): use xcframework to support m1 2021-11-18 12:03:52 +11:00
Marc Durdin
5fac633fb6 fix(common): build script help param
When working on a new build script, I tripped over the `-?` question
mark help parameter here, as it needs to be escaped. Opted to fix all
the instances in our scripts, although AFAICT there would not have been
current bugs arising from this, as there were no conflicting one
character options lower in the case list.
2021-05-28 09:50:40 +10:00
Marc Durdin
637cc064da fix(mac): show local help in app
Fixes #3979.

Instead of loading help.keyman.com in the support frame, we now load a
local copy of the help. External links within the help will open in the
user's browser. This avoids issues of navigation to keyboard download
and other sites which won't work well.

Also, adds Back, Forward and Home buttons to the window so the user can
navigate more easily with mouse.

Finally, this means that the local help will always be synchronised with
the app version and brings the macOS help in line with the other
platforms.
2021-03-15 17:21:19 +11:00
Marc Durdin
9757e4330b fix(mac): improve robustness of altool call
Handles temporary failures calling altool where Apple servers return
"Could not find the RequestUUID" for a few minutes post-upload.

Example log we are handling:

```
[04:50:44][Step 5/5] Zipping Keyman.app for notarization to /Users/mcdurdin/buildAgent/work/99b311828f4ee7c/keyman/mac/Keyman4MacIM/build/Release/Keyman.zip
[04:50:44][Step 5/5] Uploading Keyman.zip to Apple for notarization
[04:51:23][Step 5/5] <?xml version="1.0" encoding="UTF-8"?>
[04:51:23][Step 5/5] <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
[04:51:23][Step 5/5] <plist version="1.0">
[04:51:23][Step 5/5] <dict>
[04:51:23][Step 5/5] 	<key>notarization-upload</key>
[04:51:23][Step 5/5] 	<dict>
[04:51:23][Step 5/5] 		<key>RequestUUID</key>
[04:51:23][Step 5/5] 		<string>fd45e30c-5a96-4d02-9196-0923d4e5e90f</string>
[04:51:23][Step 5/5] 	</dict>
[04:51:23][Step 5/5] 	<key>os-version</key>
[04:51:23][Step 5/5] 	<string>10.15.3</string>
[04:51:23][Step 5/5] 	<key>success-message</key>
[04:51:23][Step 5/5] 	<string>No errors uploading '/Users/mcdurdin/buildAgent/work/99b311828f4ee7c/keyman/mac/Keyman4MacIM/build/Release/Keyman.zip'.</string>
[04:51:23][Step 5/5] 	<key>tool-path</key>
[04:51:23][Step 5/5] 	<string>/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
[04:51:23][Step 5/5] 	<key>tool-version</key>
[04:51:23][Step 5/5] 	<string>4.01.1182</string>
[04:51:23][Step 5/5] </dict>
[04:51:23][Step 5/5] </plist>
[04:51:23][Step 5/5]
[04:51:23][Step 5/5] Waiting 30 seconds for status
[04:51:55][Step 5/5] <?xml version="1.0" encoding="UTF-8"?>
[04:51:55][Step 5/5] <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
[04:51:55][Step 5/5] <plist version="1.0">
[04:51:55][Step 5/5] <dict>
[04:51:55][Step 5/5] 	<key>os-version</key>
[04:51:55][Step 5/5] 	<string>10.15.3</string>
[04:51:55][Step 5/5] 	<key>product-errors</key>
[04:51:55][Step 5/5] 	<array>
[04:51:55][Step 5/5] 		<dict>
[04:51:55][Step 5/5] 			<key>code</key>
[04:51:55][Step 5/5] 			<integer>1519</integer>
[04:51:55][Step 5/5] 			<key>message</key>
[04:51:55][Step 5/5] 			<string>Could not find the RequestUUID.</string>
[04:51:55][Step 5/5] 			<key>userInfo</key>
[04:51:55][Step 5/5] 			<dict>
[04:51:55][Step 5/5] 				<key>NSLocalizedDescription</key>
[04:51:55][Step 5/5] 				<string>Could not find the RequestUUID.</string>
[04:51:55][Step 5/5] 				<key>NSLocalizedFailureReason</key>
[04:51:55][Step 5/5] 				<string>Apple Services operation failed.</string>
[04:51:55][Step 5/5] 				<key>NSLocalizedRecoverySuggestion</key>
[04:51:55][Step 5/5] 				<string>Could not find the RequestUUID.</string>
[04:51:55][Step 5/5] 			</dict>
[04:51:55][Step 5/5] 		</dict>
[04:51:55][Step 5/5] 	</array>
[04:51:55][Step 5/5] 	<key>tool-path</key>
[04:51:55][Step 5/5] 	<string>/Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework</string>
[04:51:55][Step 5/5] 	<key>tool-version</key>
[04:51:55][Step 5/5] 	<string>4.01.1182</string>
[04:51:55][Step 5/5] </dict>
[04:51:55][Step 5/5] </plist>
[04:51:55][Step 5/5]
[04:51:55][Step 5/5] altool failed with code 1
```
2020-11-26 11:53:35 +11:00
Marc Durdin
b4f08b3604 chore: fix parameters 2020-11-24 08:10:50 +11:00
Marc Durdin
f692af2545 chore: fix test 2020-11-24 08:08:33 +11:00
Marc Durdin
e41df6f838 fix(mac): re-sign files post plist update
Cleans up a bunch of bits and pieces around the build process and makes
sure that files are re-signed after we update the Info.plist file.
2020-11-24 08:02:16 +11:00
Marc Durdin
c2401514cb fix(mac): support page and copyright
Fixes #3849.

* Uses keyman-staging.com when on alpha or beta
* Updates copyright year at build time
* Fixes link to help documentation (/mac, not /macosx)
2020-11-20 05:55:53 +11:00
Marc Durdin
590f7782cc chore: fix command order 2020-11-19 10:32:07 +11:00
Marc Durdin
da8dbc59fb fix(mac): codesign resilience
This PR tries to make codesign more resilient to failure, by retrying
a build step that falls over with code 65. This code is not limited to
codesign but most frequently happens with it.

A more complete answer would be to do the codesigning step in build.sh
instead of in the project, which would give us more control of the
outcome, and maybe simplify the build process somewhat, but I will
leave that for now, because it is usually better to leave that to XCode.
2020-11-19 10:24:36 +11:00
Marc Durdin
be8738e9b4 chore(mac): rewrite plists after build
Instead of updating the source plist files with version information,
do this on the built artifacts so that the source files do not get
continually clobbered.
2020-11-19 09:38:32 +11:00
Marc Durdin
bede3948d2 feat(mac): Sentry support
I wasn't going to do this, but realised that crash reporting was going
to be a problem on mac because it still used crashlytics/fabric. Turned
out to be a good exercise to get me back into macOS world, and fairly
straightforward to get right (helps that the other platforms broke the
ice for me).
2020-11-18 17:13:20 +11:00
Marc Durdin
066e9aa8a8 fix(mac): altool second call report ci errors 2020-06-22 11:32:15 +10:00
Marc Durdin
7c46e02907 fix(mac/resources): altool is failing but we lose the log in CI 2020-06-22 08:30:52 +10:00
Marc Durdin
15231a0bac fix(mac): invalid build script params removed
I accidentally pulled old parameters into mac/build.sh for the
make-km-dmg.sh script when merging from beta. The script no longer
requires `-version`. This fixes that.
2020-02-17 14:58:45 +11:00
Marc Durdin
255e4f4b7a chore: Merge branch 'master' into chore/beta-to-master-p9s2-1 2020-02-17 10:11:15 +11:00
Marc Durdin
4281b72b26 chore(mac): Merge branch 'beta' into fix/mac/install-fails-with-quarantine 2020-02-14 11:26:43 +11:00
Marc Durdin
f856785742 fix(mac): Modifier keys were resetting cached context
Fixes #2375.

For applications that do not provide context to Keyman, Keyman was losing
the context buffer whenever a modifier key was pressed or released. This
change modifies the cache reset to occur only when the Command modifier is
pressed.
2020-02-05 19:32:03 +11:00
Marc Durdin
d6dbe602c2 fix(mac): dmg background and script tweaks 2020-02-05 16:31:27 +11:00
Marc Durdin
7f9bf19a91 chore(mac): fix version references in dmg build 2020-01-29 12:50:51 +11:00
Marc Durdin
855a80258b chore(ios): use new version infrastructure 2020-01-29 11:53:50 +11:00
Marc Durdin
ccfef64c99 chore(mac): use new version infrastructure 2020-01-29 11:15:36 +11:00
Marc Durdin
f8ea457325 feat(mac): install script
First steps towards a clean install script
for Keyman for Mac. Some steps still out-
of-order for now, particularly opening
System Preferences to allow Keyman before
Keyman has run for first time.
2020-01-29 10:12:26 +11:00
Marc Durdin
d9e8e546dc chore(mac): update build notes 2019-12-04 10:21:55 +01:00
Marc Durdin
0900aa99bf [mac] Clarify deployment build instructions 2019-08-16 15:31:15 +10:00
Marc Durdin
cba0a879ae Updated build script 2019-08-02 10:10:31 +10:00
Marc Durdin
c3376eba18 [Mac] Add notarization for 10.14.5 and later versions 2019-07-24 20:57:46 +10:00
Marc Durdin
2da606ec4b
Merge pull request #1343 from keymanapp/mac-update-podfile
[mac] Update podfile.lock for latest XCode / macOS version support
2018-12-07 14:12:10 +11:00