GitBook: [master] 5 pages and 8 assets modified
До Ширина: | Высота: | Размер: 2.8 KiB После Ширина: | Высота: | Размер: 2.8 KiB |
До Ширина: | Высота: | Размер: 12 KiB После Ширина: | Высота: | Размер: 12 KiB |
До Ширина: | Высота: | Размер: 2.3 KiB После Ширина: | Высота: | Размер: 2.3 KiB |
До Ширина: | Высота: | Размер: 14 KiB После Ширина: | Высота: | Размер: 14 KiB |
Двоичные данные
docs/controls/dockpanel.md
|
@ -25,7 +25,7 @@ arrivalTimePicker.Header = "Arrival time";
|
|||
|
||||
Use a `TimePicker` to let a user enter a single time value. You can customize the `DatePicker` to use a 12-hour or 24-hour clock.
|
||||
|
||||
![](../../.gitbook/assets/image.png)
|
||||
![](../../.gitbook/assets/image%20%2822%29.png)
|
||||
|
||||
### 12-hour and 24-hour clocks
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ MyProgram.app
|
|||
|
||||
For more information on `Info.plist`, see [Apple's documentation here](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html).
|
||||
|
||||
### Making the application bundle <a id="making-the-application-bundle"></a>
|
||||
## Making the application bundle <a id="making-the-application-bundle"></a>
|
||||
|
||||
There are a few options available for creating the `.app` file/folder structure. You can do this on any operating system, since a `.app` file is just a set of folders laid out in a specific format and the tooling isn't specific to one operating system. However, if you build on Windows outside of WSL, the executable may not have the right attributes for execution on macOS -- you may have to run `chmod +x` on the published binary output \(the output generated by `dotnet publish`\) from a Unix machine. This is the binary output that ends up in the folder `MyApp.app/Contents/MacOS/`, and the name should match `CFBundleExecutable`.
|
||||
|
||||
|
@ -54,7 +54,7 @@ If at any point the tooling gives you an error that your assets file doesn't hav
|
|||
|
||||
Add other runtime identifiers as necessary. Each one should be separated by a semicolon \(;\).
|
||||
|
||||
#### Notes on the `.app` executable file <a id="notes-on-the-app-executable-file"></a>
|
||||
### Notes on the `.app` executable file <a id="notes-on-the-app-executable-file"></a>
|
||||
|
||||
The file that is actually executed by macOS when starting your `.app` bundle will **not** have the standard `.dll` extension. If your publish folder contents, which go inside the `.app` bundle, do not have both a `MyApp` \(exectuable\) and a `MyApp.dll`, things are probably not generating properly, and macOS will probably not be able to start your `.app` properly.
|
||||
|
||||
|
@ -70,7 +70,7 @@ The file that is actually executed by macOS when starting your `.app` bundle wil
|
|||
|
||||
* Add `-p:UseAppHost=true` to your `dotnet publish` command.
|
||||
|
||||
#### dotnet-bundle <a id="dotnet-bundle"></a>
|
||||
### dotnet-bundle <a id="dotnet-bundle"></a>
|
||||
|
||||
[dotnet-bundle](https://github.com/egramtel/dotnet-bundle) is a [NuGet package](https://www.nuget.org/packages/Dotnet.Bundle/) that publishes your project and then creates the `.app` file for you.
|
||||
|
||||
|
@ -122,7 +122,7 @@ For more information on the parameters you can send, see the [dotnet-bundle docu
|
|||
|
||||
If you created the `.app` on Windows, make sure to run `chmod +x MyApp.app/Contents/MacOS/AppName` from a Unix machine. Otherwise, the app will not start on macOS.
|
||||
|
||||
#### Manual <a id="manual"></a>
|
||||
### Manual <a id="manual"></a>
|
||||
|
||||
First, publish your application \([dotnet publish documentation](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish)\):
|
||||
|
||||
|
@ -191,13 +191,13 @@ cp -a "$PUBLISH_OUTPUT_DIRECTORY" "$APP_NAME/Contents/MacOS"
|
|||
|
||||
If you created the `.app` on Windows, make sure to run `chmod +x MyApp.app/Contents/MacOS/AppName` from a Unix machine. Otherwise, the app will not start on macOS.
|
||||
|
||||
### Signing Your App <a id="signing-your-app"></a>
|
||||
## Signing Your App <a id="signing-your-app"></a>
|
||||
|
||||
Once you have your `.app` file created, you'll probably want to sign your app so that it can be notarized and distributed to your users without Gatekeeper giving you a hassle. Notarization is required for apps distributed outside the app store starting in macOS 10.15 \(Catalina\), and you'll have to enable [hardened runtime](https://developer.apple.com/documentation/security/hardened_runtime?language=objc) and run `codesign` on your `.app` in order to notarize it successfully.
|
||||
|
||||
You'll need a Mac computer for this step, unfortunately, as we have to run the `codesign` command line tool that comes with Xcode.
|
||||
|
||||
#### Running codesign and enabling hardened runtime <a id="running-codesign-and-enabling-hardened-runtime"></a>
|
||||
### Running codesign and enabling hardened runtime <a id="running-codesign-and-enabling-hardened-runtime"></a>
|
||||
|
||||
Enabling hardened runtime is done in the same step as code signing. You have to codesign everything in the `.app` bundle under the `Contents/MacOS` folder, which is easiest to do with a script since there are a lot of files. In order to sign your files, you need an Apple developer account. In order to notarize your app, you'll need to do the following steps with a [Developer ID certificate](https://developer.apple.com/developer-id/), which requires a paid Apple developer subscription.
|
||||
|
||||
|
@ -248,7 +248,7 @@ Once your app is code signed, you can verify that it signed properly by making s
|
|||
codesign --verify --verbose /path/to/MyApp.app
|
||||
```
|
||||
|
||||
#### Notarizing your software <a id="notarizing-your-software"></a>
|
||||
### Notarizing your software <a id="notarizing-your-software"></a>
|
||||
|
||||
Notarization allows your app to be distributed outside the macOS App Store. You can read more about it [here](https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution). If you run into any issues during the process, Apple has a helpful document of potential fixes [here](https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/resolving_common_notarization_issues?language=objc).
|
||||
|
||||
|
@ -263,7 +263,7 @@ The following steps were modified from [this StackOverflow post](https://stackov
|
|||
5. You can check notarization status using that token like this: `xcrun altool --notarization-info 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f -u username -p password`. This could take some time -- eventually it will succeed or fail.
|
||||
6. If it succeeds, you have to staple the notarization to the app: `xcrun stapler staple MyApp.app`. You can validate this by running `xcrun stapler validate MyApp.app`.
|
||||
|
||||
Once notarization is complete, you should be able to distribute your application!
|
||||
Once notarization is complete, you should be able to distribute your application!
|
||||
|
||||
{% hint style="info" %}
|
||||
If you distribute your app in a `.dmg`, you will want to modify the steps slightly:
|
||||
|
@ -274,5 +274,3 @@ If you distribute your app in a `.dmg`, you will want to modify the steps slight
|
|||
3. Notarize your `.dmg` file \(same basic `xcrun altool` command, just with the `.dmg` file for the `-f` flag instead of the `.zip`\)
|
||||
4. Staple the notarization to the `.dmg` file: `xcrun stapler staple MyApp.dmg`
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ Don't assume the Nuget packages will work just because master was working. In th
|
|||
|
||||
![](../../.gitbook/assets/image%20%2811%29.png)
|
||||
|
||||
![](../../.gitbook/assets/image%20%2817%29.png)
|
||||
![](../../.gitbook/assets/image%20%2817%29%20%281%29.png)
|
||||
|
||||
* Then click on `Deploy`.
|
||||
|
||||
|
|
|
@ -8,5 +8,3 @@ Column and row definitions can be specified in Avalonia using strings, avoiding
|
|||
|
||||
A common use of `Grid` in WPF is to stack two controls on top of each other. For this purpose in Avalonia you can just use a `Panel` which is more lightweight than `Grid`.
|
||||
|
||||
We don't yet support `SharedSizeScope` in `Grid`.
|
||||
|
||||
|
|