This commit is contained in:
Rolf Bjarne Kvinge 2023-01-25 08:58:24 +01:00 коммит произвёл GitHub
Родитель c1050b6f65 50b6eda7c1
Коммит 255b219fe5
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
184 изменённых файлов: 4729 добавлений и 635 удалений

503
.github/fabricbot.json поставляемый
Просмотреть файл

@ -32,6 +32,233 @@
]
}
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssuesOnlyResponder",
"version": "1.0",
"config": {
"conditions": {
"operator": "and",
"operands": [
{
"name": "labelAdded",
"parameters": {
"label": "need-repro"
}
}
]
},
"eventType": "issue",
"eventNames": [
"issues",
"project_card"
],
"taskName": "Add comment when 'need-repro' is applied to issue",
"actions": [
{
"name": "addReply",
"parameters": {
"comment": "Hi @${issueAuthor}. We have added the \"need-repro\" label to this issue, which indicates that we require steps and sample code to reproduce the issue before we can take further action. Please try to create a minimal sample project/solution or code samples which reproduce the issue, ideally as a GitHub repo that we can clone. See more details about creating repros here: https://github.com/xamarin/xamarin-macios/blob/main/docs/bug-repro.md\n\nThis issue will be closed automatically in 7 days if we do not hear back from you by then - please feel free to re-open it if you come back to this issue after that time."
}
}
]
}
},
{
"taskType": "scheduled",
"capabilityId": "ScheduledSearch",
"subCapability": "ScheduledSearch",
"version": "1.1",
"config": {
"frequency": [
{
"weekDay": 1,
"hours": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"timezoneOffset": -5
},
{
"weekDay": 2,
"hours": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"timezoneOffset": -5
},
{
"weekDay": 3,
"hours": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"timezoneOffset": -5
},
{
"weekDay": 4,
"hours": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"timezoneOffset": -5
},
{
"weekDay": 5,
"hours": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23
],
"timezoneOffset": -5
}
],
"searchTerms": [
{
"name": "isIssue",
"parameters": {}
},
{
"name": "isOpen",
"parameters": {}
}, {
"name": "hasLabel",
"parameters": {
"label": "need-info"
}
},
{
"name": "noActivitySince",
"parameters": {
"days": 7
}
}
],
"taskName": "[Idle Issue Management] Close stale 'need-info' issues",
"actions": [
{
"name": "addReply",
"parameters": {
"comment": "Hi @${issueAuthor}. Due to inactivity, we will be closing this issue. Please feel free to re-open this issue if the issue persists. For enhanced visibility, if over 7 days have passed, please open a new issue and link this issue there. Thank you."
}
},
{
"name": "closeIssue",
"parameters": {}
}
]
}
},
{
"taskType": "scheduled",
"capabilityId": "ScheduledSearch",
@ -199,12 +426,12 @@
"name": "isOpen",
"parameters": {}
},
{
"name": "hasLabel",
"parameters": {
"label": "need-info"
}
},
{
"name": "hasLabel",
"parameters": {
"label": "need-repro"
}
},
{
"name": "noActivitySince",
"parameters": {
@ -212,7 +439,7 @@
}
}
],
"taskName": "[Idle Issue Management] Close stale 'need-info' issues",
"taskName": "[Idle Issue Management] Close stale 'need-repro' issues",
"actions": [
{
"name": "addReply",
@ -246,12 +473,23 @@
"name": "isOpen",
"parameters": {}
},
{
"name": "hasLabel",
"parameters": {
"label": "need-info"
}
},
{
"operator": "or",
"operands": [
{
"name": "hasLabel",
"parameters": {
"label": "need-info"
}
},
{
"name": "hasLabel",
"parameters": {
"label": "need-repro"
}
}
]
},
{
"operator": "not",
"operands": [
@ -280,7 +518,7 @@
"eventNames": [
"issue_comment"
],
"taskName": "[Idle Issue Management] Replace 'need-info' with 'need-attention' label when the customer comments on an issue",
"taskName": "[Idle Issue Management] Replace 'need-info' and 'need-repro' with 'need-attention' label when the customer comments on an issue",
"actions": [
{
"name": "removeLabel",
@ -288,6 +526,12 @@
"label": "need-info"
}
},
{
"name": "removeLabel",
"parameters": {
"label": "need-repro"
}
},
{
"name": "addLabel",
"parameters": {
@ -379,6 +623,12 @@
"label": "need-info"
}
},
{
"name": "removeLabel",
"parameters": {
"label": "need-repro"
}
},
{
"name": "addLabel",
"parameters": {
@ -544,5 +794,228 @@
}
]
}
}
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssuesOnlyResponder",
"version": "1.0",
"config": {
"conditions": {
"operator": "and",
"operands": [
{
"name": "isOpen",
"parameters": {}
},
{
"name": "labelAdded",
"parameters": {
"label": "move-to-vs-feedback"
}
}
]
},
"eventType": "issue",
"eventNames": [
"issues",
"project_card"
],
"taskName": "Ask user to use VS Feedback for VS issues",
"actions": [
{
"name": "addReply",
"parameters": {
"comment": "Thanks for the issue report @${issueAuthor}! This issue appears to be a problem with Visual Studio, so we ask that you use the VS feedback tool to report the issue. That way it will get to the routed to the team that owns this experience in VS.\n\nIf you encounter a problem with Visual Studio, we want to know about it so that we can diagnose and fix it. By using the Report a Problem tool, you can collect detailed information about the problem, and send it to Microsoft with just a few button clicks.\n\n1. Go to the [Visual Studio for Windows feedback tool](https://docs.microsoft.com/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2022) or [Visual Studio for Mac feedback tool](https://learn.microsoft.com/en-us/visualstudio/mac/report-a-problem?view=vsmac-2022) to report the issue\n2. Close this bug, and consider adding a link to the VS Feedback issue so that others can follow its activity there.\n\nThis issue will be automatically closed in 3 days if there are no further comments."
}
}
]
}
},
{
"taskType": "scheduled",
"capabilityId": "ScheduledSearch",
"subCapability": "ScheduledSearch",
"version": "1.1",
"config": {
"frequency": [
{
"weekDay": 0,
"hours": [
0,
6,
12,
18
]
},
{
"weekDay": 1,
"hours": [
0,
6,
12,
18
]
},
{
"weekDay": 2,
"hours": [
0,
6,
12,
18
]
},
{
"weekDay": 3,
"hours": [
0,
6,
12,
18
]
},
{
"weekDay": 4,
"hours": [
0,
6,
12,
18
]
},
{
"weekDay": 5,
"hours": [
0,
6,
12,
18
]
},
{
"weekDay": 6,
"hours": [
0,
6,
12,
18
]
}
],
"searchTerms": [
{
"name": "isOpen",
"parameters": {}
},
{
"name": "hasLabel",
"parameters": {
"label": "move-to-vs-feedback"
}
},
{
"name": "noActivitySince",
"parameters": {
"days": 3
}
}
],
"taskName": "Close 'move-to-vs-feedback' after 3 days of no activity",
"actions": [
{
"name": "addReply",
"parameters": {
"comment": "This issue is being closed due to inactivity. If this issue is still affecting you, please follow the steps above to use the VS Feedback Tool to report the issue."
}
},
{
"name": "closeIssue",
"parameters": {}
}
]
}
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssueCommentResponder",
"version": "1.0",
"config": {
"conditions": {
"operator": "and",
"operands": [
{
"name": "isOpen",
"parameters": {}
},
{
"name": "isAction",
"parameters": {
"action": "created"
}
},
{
"name": "hasLabel",
"parameters": {
"label": "move-to-vs-feedback"
}
},
{
"operator": "not",
"operands": [
{
"name": "noActivitySince",
"parameters": {
"days": 3
}
}
]
},
{
"operator": "not",
"operands": [
{
"name": "isCloseAndComment",
"parameters": {}
}
]
},
{
"name": "isActivitySender",
"parameters": {
"user": {
"type": "author"
}
}
},
{
"name": "activitySenderHasPermissions",
"parameters": {
"permissions": "none"
}
}
]
},
"eventType": "issue",
"eventNames": [
"issue_comment"
],
"taskName": "For issues labeled with 'move-to-vs-feedback' mark as 'need-attention' if there is activity",
"actions": [
{
"name": "removeLabel",
"parameters": {
"label": "move-to-vs-feedback"
}
},
{
"name": "addLabel",
"parameters": {
"label": "need-attention"
}
}
]
}
}
]

Просмотреть файл

@ -2,7 +2,8 @@
| Date | Version | Package | Release Notes |
|------|---------|---------|---------------|
|2022/09/27|16.0.0.72|[xamarin.ios-16.0.0.72.pkg](https://download.visualstudio.microsoft.com/download/pr/60e4de68-2380-4aa3-b12e-2c65838a0bdb/656877ed7c3b5e5b94f7d2fbeb886655/xamarin.ios-16.0.0.72.pkg)||
|2022/12/15|16.1.1.27|[xamarin.ios-16.1.1.27.pkg](https://download.visualstudio.microsoft.com/download/pr/c8bc547f-869e-4d64-a271-f8b3a29ee545/3d8cfa414fa3e4005dd5b9b9d3817aa4/xamarin.ios-16.1.1.27.pkg)||
|2022/10/11|16.0.0.72|[xamarin.ios-16.0.0.72.pkg](https://download.visualstudio.microsoft.com/download/pr/81c41aaa-a3d7-4875-8416-d04b472379b7/21d9f6c5ad3a6bc2479b2ec4b0685b6c/xamarin.ios-16.0.0.72.pkg)||
|2022/08/09|15.12.0.2|[xamarin.ios-15.12.0.2.pkg](https://download.visualstudio.microsoft.com/download/pr/e81e04d3-768a-4310-9c9b-f32e8ba00eaa/0e27caf0877adb5c6fe6d634d26da40a/xamarin.ios-15.12.0.2.pkg)||
|2022/06/14|15.10.0.5|[xamarin.ios-15.10.0.5.pkg](https://download.visualstudio.microsoft.com/download/pr/09e9572f-1c2a-4d79-a1e8-5469de9410e8/3c7be8df7e8249f2c3142e4c10ae5523/xamarin.ios-15.10.0.5.pkg)||
|2022/05/23|15.10.0.1|[xamarin.ios-15.10.0.1.pkg](https://download.visualstudio.microsoft.com/download/pr/afed6f32-67b3-4684-b0a4-e2b74d751bce/efaa7d62658b8285baafc2d6fc8f930a/xamarin.ios-15.10.0.1.pkg)||
@ -169,6 +170,7 @@
| Date | Version | Package | Release Notes |
|------|---------|---------|---------------|
|2022/12/15|9.0.0.27|[xamarin.mac-9.0.0.27.pkg](https://download.visualstudio.microsoft.com/download/pr/c8bc547f-869e-4d64-a271-f8b3a29ee545/4fbfc55453fe36fe5bf4128d6d495911/xamarin.mac-9.0.0.27.pkg)||
|2022/08/09|8.12.0.2|[xamarin.mac-8.12.0.2.pkg](https://download.visualstudio.microsoft.com/download/pr/e81e04d3-768a-4310-9c9b-f32e8ba00eaa/bcff5cca8701bc5871b8892fd32fb3e6/xamarin.mac-8.12.0.2.pkg)||
|2022/06/14|8.10.0.5|[xamarin.mac-8.10.0.5.pkg](https://download.visualstudio.microsoft.com/download/pr/09e9572f-1c2a-4d79-a1e8-5469de9410e8/f4ee484851ac275ccd51fcee70451fb0/xamarin.mac-8.10.0.5.pkg)||
|2022/05/23|8.10.0.1|[xamarin.mac-8.10.0.1.pkg](https://download.visualstudio.microsoft.com/download/pr/afed6f32-67b3-4684-b0a4-e2b74d751bce/7a6059ca429d778d1e1a3525a337eb66/xamarin.mac-8.10.0.1.pkg)||

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="cs-CZ" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Projekt pro vytvoření aplikace .NET pro iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplikace pro iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Přepíše CFBundleIdentifier v souboru Info.plist.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Podpora pouze zařízení iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Podpora pouze zařízení iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Podpora zařízení iPhone i iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Přepíše SupportedOSPlatformVersion v souboru projektu.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="cs-CZ" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Projekt pro vytvoření aplikace .NET pro iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplikace pro iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Přepíše CFBundleIdentifier v souboru Info.plist.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Podpora pouze zařízení iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Podpora pouze zařízení iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Podpora zařízení iPhone i iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Přepíše SupportedOSPlatformVersion v souboru projektu.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="de-DE" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ein Projekt zum Erstellen einer .NET iOS-Anwendung]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS-Anwendung]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Überschreibt „CFBundleIdentifier“ in „Info.plist“]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nur iPad-Geräte unterstützen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nur iPhone-Geräte unterstützen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone- und iPad-Geräte unterstützen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Überschreibt „SupportedOSPlatformVersion“ in der Projektdatei.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="de-DE" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ein Projekt zum Erstellen einer .NET iOS-Anwendung]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS-Anwendung]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Überschreibt „CFBundleIdentifier“ in „Info.plist“]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nur iPad-Geräte unterstützen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nur iPhone-Geräte unterstützen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone- und iPad-Geräte unterstützen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Überschreibt „SupportedOSPlatformVersion“ in der Projektdatei.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="es-ES" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Proyecto para crear una aplicación de iOS de .NET]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplicación de iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Invalida CFBundleIdentifier en Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Admitir solo dispositivos iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Admitir solo dispositivos iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Compatibilidad con dispositivos iPhone y iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Invalida SupportedOSPlatformVersion en el archivo de proyecto]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="es-ES" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Proyecto para crear una aplicación de iOS de .NET]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplicación de iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Invalida CFBundleIdentifier en Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Admitir solo dispositivos iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Admitir solo dispositivos iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Compatibilidad con dispositivos iPhone y iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Invalida SupportedOSPlatformVersion en el archivo de proyecto]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="fr-FR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Projet de création dune application .NET iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Application iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Remplace CFBundleIdentifier dans Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Prendre en charge uniquement les appareils iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Prendre en charge uniquement les appareils iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Prendre en charge les appareils iPhone et iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Remplace SupportedOSPlatformVersion dans le fichier projet]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="fr-FR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Projet de création dune application .NET iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Application iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Remplace CFBundleIdentifier dans Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Prendre en charge uniquement les appareils iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Prendre en charge uniquement les appareils iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Prendre en charge les appareils iPhone et iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Remplace SupportedOSPlatformVersion dans le fichier projet]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="it-IT" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Progetto per la creazione di un'applicazione iOS .NET]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Applicazione iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Esegue l'override di CFBundleIdentifier in Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supporta solo dispositivi iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supporta solo dispositivi iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supporta dispositivi iPhone e iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Esegue l'override di SupportedOSPlatformVersion nel file di progetto]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="it-IT" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Progetto per la creazione di un'applicazione iOS .NET]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Applicazione iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Esegue l'override di CFBundleIdentifier in Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supporta solo dispositivi iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supporta solo dispositivi iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supporta dispositivi iPhone e iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Esegue l'override di SupportedOSPlatformVersion nel file di progetto]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="ja-JP" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET iOS アプリケーションを作成するためのプロジェクト]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS アプリケーション]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Info.plist の CFBundleIdentifier をオーバーライドします]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPad デバイスのみをサポート]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone デバイスのみをサポート]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone デバイスと iPad デバイスの両方をサポートする]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[プロジェクト ファイルの SupportedOSPlatformVersion をオーバーライドします]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="ja-JP" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET iOS アプリケーションを作成するためのプロジェクト]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS アプリケーション]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Info.plist の CFBundleIdentifier をオーバーライドします]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPad デバイスのみをサポート]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone デバイスのみをサポート]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone デバイスと iPad デバイスの両方をサポートする]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[プロジェクト ファイルの SupportedOSPlatformVersion をオーバーライドします]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="ko-KR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET iOS 애플리케이션을 만들기 위한 프로젝트]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS 애플리케이션]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Info.plist에서 CFBundleIdentifier 재정의]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPad 디바이스만 지원]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone 디바이스만 지원]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone 및 iPad 디바이스 모두 지원]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[프로젝트 파일에서 SupportedOSPlatformVersion 재정의]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="ko-KR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET iOS 애플리케이션을 만들기 위한 프로젝트]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS 애플리케이션]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Info.plist에서 CFBundleIdentifier 재정의]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPad 디바이스만 지원]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone 디바이스만 지원]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iPhone 및 iPad 디바이스 모두 지원]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[프로젝트 파일에서 SupportedOSPlatformVersion 재정의]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="pl-PL" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Projekt służący do tworzenia aplikacji platformy .NET 6 dla systemu iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplikacja systemu iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nadpisuje element CFBundleIdentifier w pliku Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Obsługa tylko urządzeń iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Obsługa tylko urządzeń iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Obsługa urządzeń iPhone i iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nadpisuje element SupportedOSPlatformVersion w pliku projektu]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="pl-PL" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Projekt służący do tworzenia aplikacji platformy .NET 6 dla systemu iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplikacja systemu iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nadpisuje element CFBundleIdentifier w pliku Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Obsługa tylko urządzeń iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Obsługa tylko urządzeń iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Obsługa urządzeń iPhone i iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nadpisuje element SupportedOSPlatformVersion w pliku projektu]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="pt-BR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Um projeto para criar um aplicativo iOS .NET]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplicativo iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Substitui o CFBundleIdentifier no Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Oferecer suporte somente aos dispositivos iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Oferecer suporte somente aos dispositivos iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Dar suporte aos dispositivos iPhone e iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Substitui o SupportedOSPlatformVersion no arquivo de projetos]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="pt-BR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Um projeto para criar um aplicativo iOS .NET]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aplicativo iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Substitui o CFBundleIdentifier no Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Oferecer suporte somente aos dispositivos iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Oferecer suporte somente aos dispositivos iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Dar suporte aos dispositivos iPhone e iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Substitui o SupportedOSPlatformVersion no arquivo de projetos]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="ru-RU" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Майкрософт]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Проект для создания приложения .NET для iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Приложение iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Переопределяет CFBundleIdentifier в Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поддерживаются только устройства iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поддерживаются только устройства iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поддержка устройств iPhone и iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Переопределяет SupportedOSPlatformVersion в файле проекта]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="ru-RU" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Майкрософт]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Проект для создания приложения .NET для iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Приложение iOS]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Переопределяет CFBundleIdentifier в Info.plist]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поддерживаются только устройства iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поддерживаются только устройства iPhone]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поддержка устройств iPhone и iPad]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Переопределяет SupportedOSPlatformVersion в файле проекта]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="tr-TR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Bir .NET iOS uygulaması oluşturmaya yönelik proje]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS Uygulaması]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Info.plist dosyasındaki CFBundleIdentifier öğesini geçersiz kılar]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Yalnızca iPad cihazları için destek]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Yalnızca iPhone cihazları için destek]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Hem iPhone hem de iPad cihazları için destek]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Proje dosyasındaki SupportedOSPlatformVersion öğesini geçersiz kılar]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="tr-TR" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Bir .NET iOS uygulaması oluşturmaya yönelik proje]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS Uygulaması]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Info.plist dosyasındaki CFBundleIdentifier öğesini geçersiz kılar]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Yalnızca iPad cihazları için destek]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Yalnızca iPhone cihazları için destek]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Hem iPhone hem de iPad cihazları için destek]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Proje dosyasındaki SupportedOSPlatformVersion öğesini geçersiz kılar]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="zh-CN" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[用于创建 .NET iOS 应用程序的项目]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS 应用程序]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[在 Info.plist 中替代 CFBundleIdentifier]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[仅支持 iPad 设备]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[仅支持 iPhone 设备]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[同时支持 iPhone 和 iPad 设备]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[替代项目文件中的 SupportedOSPlatformVersion]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="zh-CN" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[用于创建 .NET iOS 应用程序的项目]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS 应用程序]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[在 Info.plist 中替代 CFBundleIdentifier]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[仅支持 iPad 设备]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[仅支持 iPhone 设备]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[同时支持 iPhone 和 iPad 设备]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[替代项目文件中的 SupportedOSPlatformVersion]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\csharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="zh-TW" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[用於建立 .NET 6 iOS 應用程式的專案]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS 應用程式]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[覆寫 Info.plist 中的 CFBundleIdentifier]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[僅支援 iPad 裝置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[僅支援 iPhone 裝置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[同時支援 iPhone 與 iPad 裝置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[覆寫專案檔中的 SupportedOSPlatformVersion]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LCX SchemaVersion="6.0" Name="D:\a\1\s\xamarin-macios\dotnet\Templates\Microsoft.iOS.Templates\ios\fsharp\.template.config\localize\templatestrings.json" PsrId="306" FileType="1" SrcCul="en-US" TgtCul="zh-TW" xmlns="http://schemas.microsoft.com/locstudio/2006/6/lcx">
<OwnedComments>
<Cmt Name="Dev" />
<Cmt Name="LcxAdmin" />
<Cmt Name="Rccx" />
</OwnedComments>
<Settings Name="@vsLocTools@\default.lss" Type="Lss" />
<Item ItemId=";String Table" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="306" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";author" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A project for creating a .NET iOS application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[用於建立 .NET 6 iOS 應用程式的專案]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";name" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[iOS Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[iOS 應用程式]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/bundleId/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides CFBundleIdentifier in the Info.plist]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[覆寫 Info.plist 中的 CFBundleIdentifier]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/ipad/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[僅支援 iPad 裝置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/iphone/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support only iPhone devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[僅支援 iPhone 裝置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/deviceFamily/choices/universal/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Support both iPhone and iPad devices]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[同時支援 iPhone 與 iPad 裝置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";symbols/minOSVersion/description" ItemType="0" PsrId="306" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Overrides SupportedOSPlatformVersion in the project file]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[覆寫專案檔中的 SupportedOSPlatformVersion]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item>
</Item>
</LCX>

159
docs/bug-repro.md Normal file
Просмотреть файл

@ -0,0 +1,159 @@
# Bug Report Reproduction Guide
First of all, thank you for reporting this potential bug. Nobody likes bugs
and to help us diagnose and resolve your potential issue as effective and
quickly as possible, we would like to give you a bit more information about
why we ask you for a reproducible example of the problem, and how to provide
one.
## What is a reproduction?
A reproduction, reproducible example or just repro for short is the most basic
code to demonstrate the issue that you're seeing. It's the simplest way to
reproduce the issue. Ideally, you should be able to reproduce the issue by
just running the code in the project you have provided and see the problem. If
any reproduction steps are needed, either note them in the issue or include
them in the project somehow.
## Why do we ask for a reproducible example?
Depending on your project a codebase can be pretty big. The bigger your
project, the more factors that can be of influence on a bug or issue that you
might be seeing.
In order to be sure that this is something that is happening in the Apple SDKs
for .NET and not something in your code (or a combination of these things), it
is super helpful to have a small sample that reproduces the issue. This way we
can:
* better pinpoint the source of the issue
* therefore, we can fix the issue faster
* and we can make sure that the issue is not a false positive
It also acts as a double-edged sword. When you take your code apart
piece-by-piece in a new project, adding things back one by one, it will become
very clear what different factors are at play here and you might discover that
the issue might be something in your code. At the very least you will be able
to provide a very detailed description of what you're seeing. That helps us
get to the cause faster and resolve the issue quicker.
### I just want to report a bug, why do you want a reproduction?
We hear this a lot. We understand you're busy, we're all busy! A reproduction
is not just about pleasing us or you doing our work. As already mentioned
above, it will help you get a better understanding of where the issue is
exactly. We've seen lots of cases where people realized, through a
reproduction, that the solution was right within their reach. Regardless of it
being a bug in this .NET SDK or not.
We like to see this as a team effort.
#### But I don't have time for this!
Please help us, help you! This is an open-source project under the MIT
license. We care about our project and therefore by extension also about your
project. But realize that when you come onto our repo, maybe frustrated
because things are not working and you just drop a one-liner, no reproduction,
mentioning that you don't have the time, that's also not very motivating for
us. On the other end of these GitHub issues are still people. People that are
doing their best to move this project forward, people that do not enjoying
seeing you being blocked.
Also consider how that comes across. If you don't have the time to report in
detail what is going on, then really how important is the issue? If this is
really important and blocking you, it would seem to make sense to prioritize
getting us all the details to help resolve this faster. We are all here to
help you. But remember that we don't know your project and we don't know any
details, please help us understand and be nice.
## How to provide a reproduction project?
With a reproduction we want to rule out a couple of things:
* The issue is not in your code, but in the iOS/tvOS/macOS/Mac Catalyst SDKs for .NET.
* The issue has not been already resolved in the latest version of the SDK.
Therefore we would like to propose the following steps to create a reproduction sample:
* Check if you are using the latest version of the .NET workloads and you can
still reproduce the issue.
* If yes, please check any available preview versions and see if you can
reproduce the issue.
* If you still can, please check to see if there are is an issue already
opened on the repository for it:
* If there is, see if you can add any more detail about your specific case,
that might help to resolve it quicker. If you don't have any additional
information, add an emoji to the first post of the issue so we know how
many people are impacted by this.
* When in doubt, always file a new issue. It's much easier to mark an issue
as a duplicate of another, than it is to split an issue into two (or more)
isssues after an extensive conversation in the issue that effectively
derailed the original issue because it turned out to be something
unrelated.
* If there is no issue for it yet, please open one and provide detailed
answers to everything in the New Issue form.
At this point we would love for you to include the reproduction.
* Start with a File > New .NET iOS / tvOS / macOS / Mac Catalyst project, in
other words, a clean, new project. Make sure that you are using the last
version of the .NET workloads.
* Start extracting the code from your project, piece-by-piece, until you have
reached the issue.
* Try to remove some code or make small changes to see how that influences the
issue you're seeing. Remove any code that is not needed to reproduce the
issue. This is noise and will interfere with getting to a cause and
solution.
* Put the code on a GitHub repository and include that link in the issue that
you're opening.
* Get a [binary build log][1] and attach that to the issue as well.
> **Warning**
>
> **We can't accept any zip files attached to the issue.** If we need the code
> in a zip, we can get that from the GitHub repository. This will also make it
> easier to collaborate. If we think we spot something that doesn't look
> right, we can open a PR on your repro repo (😬) and you can easily see the
> differences.
## Why can't you just download my zip file reproduction?!
While we've never had problems with this, it is still a potential attack
vector for hackers and other malicious people. Even unzipping a zip file could
execute code, let alone load code into Visual Studio that we could not
(easily) look at before opening it. Because we value your safety and privacy
as well as our own, we want to make sure that none of this can happen.
Also, by putting it in a GitHub repo it's easier to potentially collaborate.
We (and our amazing community!) can comment on a piece of code right then and
there and help you further. It can even serve as a nice example for other
people!
If you don't like to have a lot of repos, you could opt for a repo where on
the `main` branch you put a File > New Project, and from there create branches
for different issues.
## Big don'ts!
- Never put any sensitive information in your code. No API keys, credentials,
personal information, etc.
- Never put any propriatary code in your reproduction. We are contractually
not allowed to look at code that you do not own without big legal hassles
and NDA's, that's not fun for anyone.
- Never submit binaries (mostly covered by putting it on a GitHub repo)
- Do not reference external data-sources, this should rarely be needed.
- Always refer to concrete version numbers. Avoid saying "this happens in the
latest version". We don't know if you're using a preview version or maybe
you _think_ you're using the latest version but actually aren't. To avoid
any confusion, always refer to exact version numbers.
# That's it!
The first time might take you a bit longer to go through all this, but once
you've done it you'll see it isn't that much more work and it will benefit the
process a lot.
Thank you so much for taking some of your valuable time to make .NET MAUI the
best version it can be! We really appreciate it.
[1]: https://github.com/xamarin/xamarin-macios/wiki/Diagnosis#binary-build-logs

Просмотреть файл

@ -198,7 +198,6 @@
<BuildDependsOn Condition="'$(RuntimeIdentifiers)' != ''">
_CollectBundleResources;
_RunRidSpecificBuild;
_CompileEntitlements;
_DetectAppManifest;
_ReadAppManifest;
_WriteAppManifest;
@ -221,7 +220,6 @@
_CreatePkgInfo;
_SmeltMetal;
_TemperMetal;
_CompileEntitlements;
_DetectAppManifest;
_ReadAppManifest;
_WriteAppManifest;
@ -248,13 +246,13 @@
<CreateAppBundleDependsOn Condition="'$(_IsMultiRidBuild)' != 'true'">
_CreateDebugSettings;
_CreateDebugConfiguration;
_CompileEntitlements;
$(CreateAppBundleDependsOn);
</CreateAppBundleDependsOn>
<!-- outer build for multi-rid build -->
<CreateAppBundleDependsOn Condition="'$(RuntimeIdentifiers)' != ''">
$(CreateAppBundleDependsOn);
_CompileEntitlements;
_CreateMergedAppBundle;
_PostProcessAppBundle;
</CreateAppBundleDependsOn>
@ -330,6 +328,7 @@
_ProcessedColladaAssetsPath=$(_ProcessedColladaAssetsPath);
_ProcessedTextureAtlasesPath=$(_ProcessedTextureAtlasesPath);
_ProcessedCoreMLModelsPath=$(_ProcessedCoreMLModelsPath);
_CompiledEntitlementsPath=$(_CompiledEntitlementsPath);
</_RidSpecificProperties>
</PropertyGroup>
@ -1579,7 +1578,7 @@
<_CreateDumpExecutableToSign Include="@(_CreateDumpExecutable -> '$(_DylibPublishDir)%(RelativePath)')" KeepMetadata="false">
<CodesignAllocate>$(_CodesignAllocate)</CodesignAllocate>
<CodesignDisableTimestamp Condition="'$(_BundlerDebug)' == 'true'">true</CodesignDisableTimestamp>
<CodesignEntitlements>$(IntermediateOutputPath)Entitlements.xcent</CodesignEntitlements>
<CodesignEntitlements>$(_CompiledEntitlementsPath)</CodesignEntitlements>
<CodesignExtraArgs>$(CodesignExtraArgs)</CodesignExtraArgs>
<CodesignKeychain>$(CodesignKeychain)</CodesignKeychain>
<CodesignResourceRules>$(_PreparedResourceRules)</CodesignResourceRules>

Просмотреть файл

@ -27,7 +27,6 @@ Copyright (C) 2014 Xamarin. All rights reserved.
<PropertyGroup>
<_PreparedResourceRules></_PreparedResourceRules>
<_AppBundleName>$(AssemblyName)</_AppBundleName>
</PropertyGroup>
<PropertyGroup Condition="'$(UsingAppleNETSdk)' != 'true'">

Просмотреть файл

@ -307,6 +307,8 @@ Copyright (C) 2020 Microsoft. All rights reserved.
<!-- Accept 'UseInterpreter' as an alternative for 'MtouchInterpreter', so that we have the same variable name as Android -->
<MtouchInterpreter Condition="'$(MtouchInterpreter)' == '' And '$(UseInterpreter)' == 'True'">all</MtouchInterpreter>
<_AppBundleName>$(AssemblyName)</_AppBundleName>
</PropertyGroup>
<PropertyGroup Condition="'$(IsBindingProject)' == 'true'">

Просмотреть файл

@ -164,8 +164,8 @@ Copyright (C) 2018 Microsoft. All rights reserved.
Outputs="$(BindingResourcePath).stamp">
<!-- CompressBindingResourcePackage specifies whether the package should be compressed (zipped) or not
true: compressed (we produce an Assembly.resources directory)
false: not compressed (we produce an Assembly.resources.zip file)
true: compressed (we produce an Assembly.resources.zip file)
false: not compressed (we produce an Assembly.resources directory)
auto: compressed if there are any symlinks
The default is 'false' for legacy Xamarin projects (for compatibility) and 'auto' for .NET projects (NuGet doesn't handle symlinks properly, so this way it's not necessary to set this property to create NuGets that work)
-->
@ -644,7 +644,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
<Target Name="_CompileEntitlements"
Condition="'$(_RequireCodeSigning)' == 'true' Or '$(CodesignEntitlements)' != ''"
DependsOnTargets="$(_CompileEntitlementsDependsOn)"
Outputs="$(DeviceSpecificIntermediateOutputPath)Entitlements.xcent">
Outputs="$(_CompiledEntitlementsPath)">
<!-- Automatically add the 'allow-jit' entitlement for desktop release builds in .NET -->
<ItemGroup Condition="'$(Configuration)' == 'Release' And ('$(_PlatformName)' == 'macOS' Or '$(_PlatformName)' == 'MacCatalyst') And '$(UsingAppleNETSdk)' == 'true'">
<!-- We need to compare the result of AnyHaveMetadataValue to 'true', because if it's empty, the return value is not a boolean, it's an empty string -->
@ -658,7 +658,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
BundleIdentifier="$(_BundleIdentifier)"
CustomEntitlements="@(CustomEntitlements)"
Entitlements="$(CodesignEntitlements)"
CompiledEntitlements="$(DeviceSpecificIntermediateOutputPath)Entitlements.xcent"
CompiledEntitlements="$(_CompiledEntitlementsPath)"
IsAppExtension="$(IsAppExtension)"
ProvisioningProfile="$(_ProvisioningProfile)"
SdkIsSimulator="$(_SdkIsSimulator)"
@ -685,6 +685,10 @@ Copyright (C) 2018 Microsoft. All rights reserved.
<GetFullPath SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true' And '$(_CompiledCodesignEntitlements)' != ''" RelativePath="$(_CompiledCodesignEntitlements)">
<Output TaskParameter="FullPath" PropertyName="_CompiledCodesignEntitlements" />
</GetFullPath>
<ItemGroup>
<FileWrites Include="$(_CompiledEntitlementsPath)" />
</ItemGroup>
</Target>
<!-- Compilation of InterfaceDefinition assets (*.xib, *.storyboard) -->
@ -1132,6 +1136,7 @@ Copyright (C) 2018 Microsoft. All rights reserved.
<_ProcessedColladaAssetsPath Condition="'$(_ProcessedColladaAssetsPath)' == ''">$(DeviceSpecificIntermediateOutputPath)collada\_ProcessedColladaAssetsPath.items</_ProcessedColladaAssetsPath>
<_ProcessedTextureAtlasesPath Condition="'$(_ProcessedTextureAtlasesPath)' == ''">$(DeviceSpecificIntermediateOutputPath)atlas\_ProcessedTextureAtlasesPath.items</_ProcessedTextureAtlasesPath>
<_ProcessedCoreMLModelsPath Condition="'$(_ProcessedCoreMLModelsPath)' == ''">$(DeviceSpecificIntermediateOutputPath)coremlc\_ProcessedCoreMLModelsPath.items</_ProcessedCoreMLModelsPath>
<_CompiledEntitlementsPath Condition="'$(_CompiledEntitlementsPath)' == ''">$(DeviceSpecificIntermediateOutputPath)Entitlements.xcent</_CompiledEntitlementsPath>
<_SaveProcessedItems Condition="'$(RuntimeIdentifiers)' != '' And '$(UsingAppleNETSdk)' == 'true'">true</_SaveProcessedItems>
</PropertyGroup>
</Target>

Просмотреть файл

@ -27,7 +27,6 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
<_CanDeployToDeviceOrSimulator Condition="('$(OutputType)' == 'Exe' Or '$(IsAppExtension)' == 'true') And '$(IsWatchApp)' == 'false'">True</_CanDeployToDeviceOrSimulator>
<_PreparedResourceRules></_PreparedResourceRules>
<_AppBundleName>$(AssemblyName)</_AppBundleName>
</PropertyGroup>
<!-- Insert our app bundle generation step -->

Просмотреть файл

@ -2830,6 +2830,16 @@ xamarin_locate_assembly_resource_for_root (const char *root, const char *culture
} else if (xamarin_file_exists (path)) {
return true;
}
if (culture != NULL && *culture != 0) {
// culture-specific directory
if (snprintf (path, pathlen, "%s/%s/.xamarin/%s/%s", root, culture, RUNTIMEIDENTIFIER, resource) < 0) {
LOG (PRODUCT ": Failed to construct path for assembly resource (root directory: '%s', culture: '%s', resource: '%s', runtimeidentifier: %s): %s", root, culture, resource, RUNTIMEIDENTIFIER, strerror (errno));
return false;
} else if (xamarin_file_exists (path)) {
return true;
}
}
#endif
// just the file, no extensions, etc.

Просмотреть файл

@ -23,8 +23,8 @@
//
using Foundation;
using ObjCRuntime;
using AudioToolbox;
using System;
using System.Runtime.InteropServices;
#nullable enable
@ -32,58 +32,48 @@ namespace AVFoundation {
#if !WATCH
public partial class AVAudioPlayer {
[DllImport (Constants.ObjectiveCLibrary, EntryPoint = "objc_msgSend")]
unsafe static extern IntPtr objc_msgSend (IntPtr receiver, IntPtr selector, IntPtr arg1, IntPtr* arg2);
public static AVAudioPlayer? FromUrl (NSUrl url, out NSError? error)
{
error = null;
IntPtr url__handle__ = url!.GetNonNullHandle (nameof (url));
IntPtr handle = Messaging.IntPtr_objc_msgSend (class_ptr, Selector.GetHandle ("alloc"));
IntPtr errorptr = IntPtr.Zero;
if (handle == IntPtr.Zero)
return null;
unsafe {
IntPtr errhandle;
IntPtr ptrtohandle = (IntPtr) (&errhandle);
var ap = new AVAudioPlayer (url, ptrtohandle);
if (ap.Handle == IntPtr.Zero) {
error = Runtime.GetNSObject<NSError> (errhandle);
return null;
} else
error = null;
return ap;
handle = objc_msgSend (handle, Selector.GetHandle ("initWithContentsOfURL:error:"), url__handle__, &errorptr);
}
error = Runtime.GetNSObject<NSError> (errorptr);
return Runtime.GetNSObject<AVAudioPlayer> (handle, owns: true);
}
public static AVAudioPlayer? FromUrl (NSUrl url)
{
unsafe {
var ap = new AVAudioPlayer (url, IntPtr.Zero);
if (ap.Handle == IntPtr.Zero)
return null;
return ap;
}
return FromUrl (url, out _);
}
public static AVAudioPlayer? FromData (NSData data, out NSError? error)
{
unsafe {
IntPtr errhandle;
IntPtr ptrtohandle = (IntPtr) (&errhandle);
error = null;
IntPtr data__handle__ = data!.GetNonNullHandle (nameof (data));
IntPtr errorptr = IntPtr.Zero;
IntPtr handle = Messaging.IntPtr_objc_msgSend (class_ptr, Selector.GetHandle ("alloc"));
var ap = new AVAudioPlayer (data, ptrtohandle);
if (ap.Handle == IntPtr.Zero) {
error = Runtime.GetNSObject<NSError> (errhandle);
return null;
} else
error = null;
return ap;
if (handle == IntPtr.Zero)
return null;
unsafe {
handle = objc_msgSend (handle, Selector.GetHandle ("initWithData:error:"), data__handle__, &errorptr);
}
error = Runtime.GetNSObject<NSError> (errorptr);
return Runtime.GetNSObject<AVAudioPlayer> (handle, owns: true);
}
public static AVAudioPlayer? FromData (NSData data)
{
unsafe {
var ap = new AVAudioPlayer (data, IntPtr.Zero);
if (ap.Handle == IntPtr.Zero)
return null;
return ap;
}
return FromData (data, out _);
}
}
#endif // !WATCH

Просмотреть файл

@ -361,11 +361,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveInterruption' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveInterruption' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveInterruption' instead.")]
#endif
@ -380,11 +381,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveInterruption' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveInterruption' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveInterruption' instead.")]
#endif
@ -399,11 +401,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#endif
@ -418,11 +421,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#endif
@ -437,11 +441,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#endif
@ -457,11 +462,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#endif
@ -477,11 +483,12 @@ namespace AVFoundation {
}
#if NET
[SupportedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("ios6.0", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
[ObsoletedOSPlatform ("maccatalyst13.1", "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#else
[Deprecated (PlatformName.iOS, 6, 0, message: "Use 'AVAudioSession.Notification.ObserveAudioRouteChange' instead.")]
#endif

1
src/AddressBookUI/.gitignore поставляемый
Просмотреть файл

@ -1 +0,0 @@
/*.g.cs

1
src/AppKit/.gitignore поставляемый
Просмотреть файл

@ -1 +0,0 @@
*.g.cs

Просмотреть файл

@ -59,6 +59,7 @@ namespace AppKit {
}
}
#if !NET
static IntPtr selInitWithWindowRef = Selector.GetHandle ("initWithWindowRef:");
// Do not actually export because NSObjectFlag is not exportable.
@ -74,10 +75,15 @@ namespace AppKit {
}
InitializeReleasedWhenClosed ();
}
#endif
static public NSWindow FromWindowRef (IntPtr windowRef)
{
#if NET
return new NSWindow (windowRef);
#else
return new NSWindow (windowRef, NSObjectFlag.Empty);
#endif
}
void InitializeReleasedWhenClosed ()

Просмотреть файл

@ -172,7 +172,11 @@ namespace AudioUnit {
System = 0,
}
#if !XAMCORE_3_0 || MONOMAC || __MACCATALYST__
[MacCatalyst (13, 1)]
[NoTV, NoWatch]
#if NET
[NoiOS]
#endif
public enum AudioObjectPropertySelector : uint {
PropertyDevices = 1684370979, // 'dev#'
Devices = 1684370979, // 'dev#'
@ -189,20 +193,16 @@ namespace AudioUnit {
TranslateUIDToBox = 1969841250, // 'uidb'
ClockDeviceList = 1668049699, //'clk#'
TranslateUidToClockDevice = 1969841251, // 'uidc',
#if XAMCORE_3_0
[NoiOS][NoTV]
#endif
#if !XAMCORE_5_0
[MacCatalyst (13, 1)] // This is required for .NET, because otherwise the generator thinks it's not available because it's not available on iOS.
[Deprecated (PlatformName.iOS, 15, 0, message: "Use the 'ProcessIsMain' element instead.")]
[Deprecated (PlatformName.TvOS, 15, 0, message: "Use the 'ProcessIsMain' element instead.")]
[Deprecated (PlatformName.MacCatalyst, 15, 0, message: "Use the 'ProcessIsMain' element instead.")]
[Deprecated (PlatformName.MacOSX, 12, 0, message: "Use the 'ProcessIsMain' element instead.")]
[Obsolete ("Use the 'ProcessIsMain' element instead.")]
ProcessIsMaster = 1835103092, // 'mast'
#if !XAMCORE_3_0
[iOS (15, 0)]
#else
#endif // !XAMCORE_5_0
[NoiOS]
#endif
[MacCatalyst (15, 0), Mac (12, 0), NoTV, NoWatch]
ProcessIsMain = 1835100526, // 'main'
IsInitingOrExiting = 1768845172, // 'inot'
@ -217,15 +217,16 @@ namespace AudioUnit {
ActualSampleRate = 1634955892,// 'asrt',
ClockDevice = 1634755428, // 'apcd',
IOThreadOSWorkgroup = 1869838183, // 'oswg'
#if !XAMCORE_3_0
[iOS (15, 0)]
#else
[NoiOS]
#endif
[MacCatalyst (15, 0), Mac (12, 0), NoTV, NoWatch]
ProcessMute = 1634758765, // 'appm'
}
[MacCatalyst (13, 1)]
[NoTV, NoWatch]
#if NET
[NoiOS]
#endif
public enum AudioObjectPropertyScope : uint {
Global = 1735159650, // 'glob'
Input = 1768845428, // 'inpt'
@ -233,6 +234,11 @@ namespace AudioUnit {
PlayThrough = 1886679669, // 'ptru'
}
[MacCatalyst (13, 1)]
[NoTV, NoWatch]
#if NET
[NoiOS]
#endif
public enum AudioObjectPropertyElement : uint {
#if !NET
[Obsolete ("Use the 'Main' element instead.")]
@ -240,7 +246,6 @@ namespace AudioUnit {
#endif
Main = 0, // 0
}
#endif // !XAMCORE_3_0 || MONOMAC
#if XAMCORE_3_0
[Internal]
@ -565,8 +570,11 @@ namespace AudioUnit {
AULowShelfCutoffFrequency = 0,
AULowShelfGain = 1,
#if !XAMCORE_5_0 // I can't find this value in the headers anymore
[Obsoleted (PlatformName.iOS, 7, 0)]
[Obsoleted (PlatformName.MacCatalyst, 13, 1)]
AUDCFilterDecayTime = 0,
#endif
// AUParametricEQ
ParametricEQCenterFreq = 0,

Просмотреть файл

@ -460,9 +460,9 @@ namespace AudioUnit {
// extern NSImage * __nullable AudioComponentGetIcon (AudioComponent __nonnull comp) __attribute__((availability(macosx, introduced=10.11)));
#if NET
[SupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("ios")]
[UnsupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("macos11.0")]
#else
[Mac (10,11)]
@ -473,10 +473,10 @@ namespace AudioUnit {
#if NET
[SupportedOSPlatform ("macos")]
[SupportedOSPlatform ("ios")]
[SupportedOSPlatform ("maccatalyst")]
[SupportedOSPlatform ("tvos")]
[ObsoletedOSPlatform ("macos11.0")]
[UnsupportedOSPlatform ("ios")]
[UnsupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("macos")]
#else
[Mac (10,11)]
[Deprecated (PlatformName.MacOSX, 11, 0)]

Просмотреть файл

@ -10,6 +10,8 @@ using System;
using Foundation;
using ObjCRuntime;
#nullable enable
namespace BackgroundTasks {
[TV (13, 0), NoWatch, NoMac, iOS (13, 0)]

Просмотреть файл

@ -1,6 +1,8 @@
using ObjCRuntime;
using Foundation;
#nullable enable
namespace BusinessChat {
[Mac (10, 13, 4), iOS (11, 3)]

Просмотреть файл

@ -257,7 +257,7 @@ namespace CoreServices {
/* CFHTTPAuthenticationRef */ IntPtr auth, /* CFString */ IntPtr username, /* CFString */ IntPtr password,
/* CFStreamError* */ out CFStreamError error);
public void ApplyCredentials (CFHTTPAuthentication auth, NetworkCredential credential)
public void ApplyCredentials (CFHTTPAuthentication? auth, NetworkCredential credential)
{
if (auth is null)
ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (auth));

Просмотреть файл

@ -37,6 +37,8 @@ using System.Net.Http.Headers;
using System.Threading.Tasks;
using Foundation;
#nullable enable
namespace CFNetwork {
class Content : StreamContent {
@ -61,9 +63,7 @@ namespace CFNetwork {
protected override void Dispose (bool disposing)
{
if (disposing) {
if (responseStream != null)
responseStream.Dispose ();
responseStream = null;
responseStream.Dispose ();
}
}

Просмотреть файл

@ -41,6 +41,8 @@ using CoreFoundation;
using CoreServices;
using Foundation;
#nullable enable
namespace CFNetwork {
[Obsolete ("Use 'System.Net.Http.CFNetworkHandler' or the more recent 'Foundation.NSUrlSessionHandler' instead.")]
@ -54,7 +56,7 @@ namespace CFNetwork {
WorkerThread = worker;
}
public WorkerThread WorkerThread {
public WorkerThread? WorkerThread {
get;
private set;
}
@ -77,7 +79,7 @@ namespace CFNetwork {
* request.
*
*/
CFHTTPAuthentication auth;
CFHTTPAuthentication? auth;
#region implemented abstract members of HttpMessageHandler
#if MONOMAC && !NET
@ -121,15 +123,15 @@ namespace CFNetwork {
void SetupRequest (HttpRequestMessage request, CFHTTPMessage message, bool isFirstRequest)
{
string accept_encoding = null;
string? accept_encoding = null;
if ((AutomaticDecompression & DecompressionMethods.GZip) != 0)
accept_encoding = "gzip";
if ((AutomaticDecompression & DecompressionMethods.Deflate) != 0)
accept_encoding = accept_encoding != null ? "gzip, deflate" : "deflate";
if (accept_encoding != null)
accept_encoding = accept_encoding is not null ? "gzip, deflate" : "deflate";
if (accept_encoding is not null)
message.SetHeaderFieldValue ("Accept-Encoding", accept_encoding);
if (request.Content != null) {
if (request.Content is not null) {
foreach (var header in request.Content.Headers) {
if (!isFirstRequest && header.Key == "Authorization")
continue;
@ -139,23 +141,23 @@ namespace CFNetwork {
}
foreach (var header in request.Headers) {
if ((accept_encoding != null) && header.Key.Equals ("Accept-Encoding"))
if ((accept_encoding is not null) && header.Key.Equals ("Accept-Encoding"))
continue;
var value = string.Join (",", header.Value);
message.SetHeaderFieldValue (header.Key, value);
}
if (UseCookies && (CookieContainer != null)) {
if (UseCookies && (CookieContainer is not null)) {
string cookieHeader = CookieContainer.GetCookieHeader (request.RequestUri);
if (cookieHeader != "")
message.SetHeaderFieldValue ("Cookie", cookieHeader);
}
}
async Task<WebRequestStream> CreateBody (HttpRequestMessage request, CFHTTPMessage message,
async Task<WebRequestStream?> CreateBody (HttpRequestMessage request, CFHTTPMessage message,
CancellationToken cancellationToken)
{
if (request.Content == null)
if (request.Content is null)
return null;
/*
@ -174,7 +176,7 @@ namespace CFNetwork {
*
*/
var length = request.Content.Headers.ContentLength;
if ((request.Content is StreamContent) || (length == null)) {
if ((request.Content is StreamContent) || (length is null)) {
var stream = await request.Content.ReadAsStreamAsync ().ConfigureAwait (false);
return new WebRequestStream (stream, cancellationToken);
}
@ -210,31 +212,33 @@ namespace CFNetwork {
async Task<HttpResponseMessage> ProcessRequest (HttpRequestMessage request,
CFHTTPMessage message,
WebRequestStream body,
WebRequestStream? body,
bool retryWithCredentials,
CancellationToken cancellationToken, bool isFirstRequest)
{
cancellationToken.ThrowIfCancellationRequested ();
WebResponseStream stream;
if (body != null)
WebResponseStream? stream;
if (body is not null)
stream = WebResponseStream.Create (message, body);
else
stream = WebResponseStream.Create (message);
if (stream == null)
if (stream is null)
throw new HttpRequestException (string.Format (
"Failed to create web request for '{0}'.",
request.RequestUri)
);
if (!isFirstRequest)
stream.Stream.ShouldAutoredirect = AllowAutoRedirect;
stream.Stream.AttemptPersistentConnection = GetKeepAlive (request);
if (stream.Stream is not null) {
if (!isFirstRequest)
stream.Stream.ShouldAutoredirect = AllowAutoRedirect;
stream.Stream.AttemptPersistentConnection = GetKeepAlive (request);
}
var response = await stream.Open (
WorkerThread, cancellationToken).ConfigureAwait (true); // with false, we will have a deadlock.
WorkerThread!, cancellationToken).ConfigureAwait (true); // with false, we will have a deadlock.
var status = (HttpStatusCode) response.ResponseStatusCode;
var status = (HttpStatusCode) response!.ResponseStatusCode;
if (IsRedirect (status)) {
request.Headers.Authorization = null;
@ -247,7 +251,7 @@ namespace CFNetwork {
}
}
if (retryWithCredentials && (body == null) &&
if (retryWithCredentials && (body is null) &&
(status == HttpStatusCode.Unauthorized) ||
(status == HttpStatusCode.ProxyAuthenticationRequired)) {
if (HandleAuthentication (request.RequestUri, message, response)) {
@ -274,7 +278,7 @@ namespace CFNetwork {
return retval;
}
string GetReasonPhrase (CFHTTPMessage response)
string? GetReasonPhrase (CFHTTPMessage response)
{
var line = response.ResponseStatusLine;
var match = Regex.Match (line, "HTTP/1.(0|1) (\\d+) (.*)");
@ -286,7 +290,7 @@ namespace CFNetwork {
bool HandleAuthentication (Uri uri, CFHTTPMessage request, CFHTTPMessage response)
{
if (Credentials == null)
if (Credentials is null)
return false;
if (PreAuthenticate) {
@ -298,10 +302,10 @@ namespace CFNetwork {
var digest = Credentials.GetCredential (uri, "Digest");
bool ok = false;
if ((basic != null) && (digest == null))
if ((basic is not null) && (digest is null))
ok = HandleAuthentication (
request, response, CFHTTPMessage.AuthenticationScheme.Basic, basic);
if ((digest != null) && (basic == null))
if ((digest is not null) && (basic is null))
ok = HandleAuthentication (
request, response, CFHTTPMessage.AuthenticationScheme.Digest, digest);
if (ok)
@ -313,9 +317,9 @@ namespace CFNetwork {
bool HandlePreAuthentication (Uri uri, CFHTTPMessage message)
{
var method = auth.GetMethod ();
var method = auth?.GetMethod ();
var credential = Credentials.GetCredential (uri, method);
if (credential == null)
if (credential is null)
return false;
message.ApplyCredentials (auth, credential);
@ -335,16 +339,16 @@ namespace CFNetwork {
void FindAuthenticationObject (CFHTTPMessage response)
{
if (auth != null) {
if (auth is not null) {
if (auth.IsValid)
return;
auth.Dispose ();
auth = null;
}
if (auth == null) {
if (auth is null) {
auth = CFHTTPAuthentication.CreateFromResponse (response);
if (auth == null)
if (auth is null)
throw new HttpRequestException ("Failed to create CFHTTPAuthentication");
}
@ -354,10 +358,11 @@ namespace CFNetwork {
void DecodeHeaders (CFHTTPMessage message, HttpResponseMessage response, Content content)
{
using (var dict = message.GetAllHeaderFields ()) {
foreach (var entry in dict) {
DecodeHeader (response, content, entry);
}
using var dict = message.GetAllHeaderFields ();
if (dict is null)
return;
foreach (var entry in dict) {
DecodeHeader (response, content, entry);
}
}
@ -388,7 +393,7 @@ namespace CFNetwork {
protected override void Dispose (bool disposing)
{
if (disposing) {
if (auth != null) {
if (auth is not null) {
auth.Dispose ();
auth = null;
}

Просмотреть файл

@ -37,13 +37,15 @@ using CoreFoundation;
using CoreServices;
using Foundation;
#nullable enable
namespace CFNetwork {
class WebRequestStream {
Stream stream;
CFReadStream readStream;
CFWriteStream writeStream;
TaskCompletionSource<object> openTcs;
TaskCompletionSource<object?> openTcs;
CancellationTokenSource cts;
byte [] buffer;
@ -61,7 +63,7 @@ namespace CFNetwork {
buffer = new byte [BufferSize];
cts = CancellationTokenSource.CreateLinkedTokenSource (cancellationToken);
openTcs = new TaskCompletionSource<object> ();
openTcs = new TaskCompletionSource<object?> ();
cts.Token.Register (() => Close ());

Просмотреть файл

@ -39,6 +39,8 @@ using CoreServices;
using Foundation;
using CFNetwork;
#nullable enable
namespace CFNetwork {
/*
* For optimal performance and reliability, either only access the
@ -51,55 +53,55 @@ namespace CFNetwork {
*/
class WebResponseStream : Stream, IDisposable {
CFHTTPStream stream;
WorkerThread worker;
WebRequestStream body;
CancellationTokenSource openCts;
TaskCompletionSource<CFHTTPMessage> openTcs;
IOperation currentOperation;
CFHTTPStream? stream;
WorkerThread? worker;
WebRequestStream? body;
CancellationTokenSource? openCts;
TaskCompletionSource<CFHTTPMessage?>? openTcs;
IOperation? currentOperation;
bool bytesAvailable;
bool busy;
Thread mainThread;
Thread workerThread;
Thread? mainThread;
Thread? workerThread;
volatile bool crossThreadAccess;
object syncRoot;
bool open;
bool canceled;
bool completed;
Exception lastError;
Exception? lastError;
WebResponseStream (CFHTTPStream stream, WebRequestStream body)
WebResponseStream (CFHTTPStream stream, WebRequestStream? body)
{
this.stream = stream;
this.body = body;
syncRoot = new object ();
}
public static WebResponseStream Create (CFHTTPMessage request)
public static WebResponseStream? Create (CFHTTPMessage request)
{
var stream = CFStream.CreateForHTTPRequest (request);
if (stream == null)
if (stream is null)
return null;
return new WebResponseStream (stream, null);
}
public static WebResponseStream Create (CFHTTPMessage request, WebRequestStream body)
public static WebResponseStream? Create (CFHTTPMessage request, WebRequestStream body)
{
var stream = CFStream.CreateForStreamedHTTPRequest (request, body.ReadStream);
if (stream == null)
if (stream is null)
return null;
return new WebResponseStream (stream, body);
}
public static WebResponseStream Create (Uri uri, HttpMethod method, Version version)
public static WebResponseStream? Create (Uri uri, HttpMethod method, Version version)
{
using (var req = CFHTTPMessage.CreateRequest (uri, method.Method, version))
return Create (req);
}
public CFHTTPStream Stream {
public CFHTTPStream? Stream {
get { return stream; }
}
@ -112,11 +114,11 @@ namespace CFNetwork {
{
if (disposing) {
OnCanceled ();
if (stream != null) {
if (stream is not null) {
stream.Dispose ();
stream = null;
}
if (openCts != null) {
if (openCts is not null) {
openCts.Dispose ();
openCts = null;
}
@ -124,9 +126,9 @@ namespace CFNetwork {
base.Dispose (disposing);
}
void OnError (Exception error)
void OnError (Exception? error)
{
if (error == null)
if (error is null)
error = new InvalidOperationException ("Unknown error.");
if (completed)
@ -134,13 +136,13 @@ namespace CFNetwork {
lastError = error;
completed = true;
stream.Close ();
stream?.Close ();
if (!open)
openTcs.SetException (error);
openTcs?.SetException (error);
var operation = Interlocked.Exchange (ref currentOperation, null);
if (operation != null)
if (operation is not null)
operation.SetException (error);
}
@ -150,13 +152,13 @@ namespace CFNetwork {
return;
completed = canceled = true;
stream.Close ();
stream?.Close ();
if (!open)
openTcs.SetCanceled ();
openTcs?.SetCanceled ();
var operation = Interlocked.Exchange (ref currentOperation, null);
if (operation != null)
if (operation is not null)
operation.SetCanceled ();
}
@ -166,15 +168,15 @@ namespace CFNetwork {
return;
completed = true;
stream.Close ();
stream?.Close ();
if (!open) {
openTcs.SetException (new InvalidOperationException ());
openTcs?.SetException (new InvalidOperationException ());
return;
}
var operation = Interlocked.Exchange (ref currentOperation, null);
if (operation != null)
if (operation is not null)
operation.SetCompleted ();
}
@ -194,14 +196,14 @@ namespace CFNetwork {
{
bool isCrossThread;
lock (syncRoot) {
if (!open || (currentOperation != null))
if (!open || (currentOperation is not null))
throw new InvalidOperationException ();
if (canceled) {
operation.SetCanceled ();
return;
}
if (lastError != null) {
if (lastError is not null) {
operation.SetException (lastError);
return;
}
@ -225,7 +227,7 @@ namespace CFNetwork {
* don't have to worry about any locking or anything.
*
*/
if ((worker != null) && !Thread.CurrentThread.Equals (workerThread)) {
if ((worker is not null) && !Thread.CurrentThread.Equals (workerThread)) {
worker.Post (() => {
if (bytesAvailable)
OnBytesAvailable (false);
@ -278,7 +280,7 @@ namespace CFNetwork {
*
*/
if (!crossThreadAccess) {
if ((currentOperation == null) || busy) {
if ((currentOperation is null) || busy) {
bytesAvailable = true;
return;
}
@ -296,7 +298,7 @@ namespace CFNetwork {
Monitor.Enter (syncRoot);
if ((currentOperation == null) || busy) {
if ((currentOperation is null) || busy) {
bytesAvailable = true;
Monitor.Exit (syncRoot);
return;
@ -331,11 +333,11 @@ namespace CFNetwork {
async Task<bool> ReadFromServer (bool exitContext)
{
int index, count;
var buffer = currentOperation.GetBuffer (out index, out count);
var buffer = currentOperation!.GetBuffer (out index, out count);
nint ret;
try {
ret = stream.Read (buffer, index, count);
ret = stream!.Read (buffer, index, count);
} catch (Exception ex) {
OnError (ex);
return false;
@ -348,7 +350,7 @@ namespace CFNetwork {
*/
if (ret < 0) {
OnError (stream.GetError ());
OnError (stream?.GetError ());
return false;
} else if (ret == 0) {
OnCompleted ();
@ -385,8 +387,8 @@ namespace CFNetwork {
if (keepGoing)
return true;
var operation = Interlocked.Exchange (ref currentOperation, null);
operation.SetCompleted ();
var operation = Interlocked.Exchange<IOperation?> (ref currentOperation, null);
operation?.SetCompleted ();
return false;
}
@ -407,8 +409,8 @@ namespace CFNetwork {
}
abstract class Operation<T> : IOperation, IDisposable {
CancellationTokenSource cts;
TaskCompletionSource<T> tcs;
CancellationTokenSource? cts;
TaskCompletionSource<T?> tcs;
bool completed;
protected Operation (WebResponseStream parent,
@ -417,10 +419,10 @@ namespace CFNetwork {
cts = CancellationTokenSource.CreateLinkedTokenSource (
cancellationToken);
cts.Token.Register (() => parent.OnCanceled ());
tcs = new TaskCompletionSource<T> ();
tcs = new TaskCompletionSource<T?> ();
}
public Task<T> Task {
public Task<T?> Task {
get { return tcs.Task; }
}
@ -428,12 +430,12 @@ namespace CFNetwork {
get { return completed; }
}
protected TaskCompletionSource<T> TaskCompletionSource {
protected TaskCompletionSource<T?> TaskCompletionSource {
get { return tcs; }
}
protected CancellationToken CancellationToken {
get { return cts.Token; }
protected CancellationToken? CancellationToken {
get { return cts?.Token; }
}
public void SetCanceled ()
@ -481,7 +483,7 @@ namespace CFNetwork {
{
if (disposing) {
SetCanceled ();
if (cts != null) {
if (cts is not null) {
cts.Dispose ();
cts = null;
}
@ -511,7 +513,7 @@ namespace CFNetwork {
public override async Task<bool> Write (int count)
{
await destination.WriteAsync (buffer, 0, count, CancellationToken);
await destination.WriteAsync (buffer, 0, count, CancellationToken ?? System.Threading.CancellationToken.None);
return true;
}
@ -558,11 +560,11 @@ namespace CFNetwork {
}
}
public async Task<CFHTTPMessage> Open (WorkerThread worker,
public async Task<CFHTTPMessage?> Open (WorkerThread worker,
CancellationToken cancellationToken)
{
this.worker = worker;
openTcs = new TaskCompletionSource<CFHTTPMessage> ();
openTcs = new TaskCompletionSource<CFHTTPMessage?> ();
openCts = CancellationTokenSource.CreateLinkedTokenSource (cancellationToken);
openCts.Token.Register (() => OnCanceled ());
@ -570,7 +572,7 @@ namespace CFNetwork {
mainThread = Thread.CurrentThread;
try {
if (worker != null)
if (worker is not null)
await worker.Post (c => DoOpen (), openCts.Token);
else
DoOpen ();
@ -584,8 +586,8 @@ namespace CFNetwork {
void DoOpen ()
{
if (lastError != null) {
openTcs.SetException (lastError);
if (lastError is not null) {
openTcs!.SetException (lastError);
return;
}
@ -595,26 +597,26 @@ namespace CFNetwork {
*
*/
stream.ErrorEvent += (sender, e) => {
OnError (stream.GetError ());
stream!.ErrorEvent += (sender, e) => {
OnError (stream!.GetError ());
};
stream.ClosedEvent += (sender, e) => {
if (!open) {
open = true;
openTcs.SetResult (stream.GetResponseHeader ());
openTcs!.SetResult (stream.GetResponseHeader ());
}
OnCompleted ();
};
stream.HasBytesAvailableEvent += (sender, e) => {
if (!open) {
open = true;
openTcs.SetResult (stream.GetResponseHeader ());
openTcs!.SetResult (stream.GetResponseHeader ());
}
HasBytesAvailable ();
};
stream.OpenCompletedEvent += (sender, e) => {
if (body == null)
if (body is null)
return;
body.Open ();
};

Просмотреть файл

@ -38,14 +38,16 @@ using System.Diagnostics;
using Foundation;
using CoreFoundation;
#nullable enable
using CFRunLoopModeString = global::Foundation.NSString;
namespace CFNetwork {
public class WorkerThread {
CFRunLoop loop;
Source source;
Context context;
CFRunLoop? loop;
Source? source;
Context? context;
CancellationTokenSource cts;
ManualResetEventSlim readyEvent;
ConcurrentQueue<Event> eventQueue = new ConcurrentQueue<Event> ();
@ -88,8 +90,9 @@ namespace CFNetwork {
public void Stop ()
{
cts.Cancel ();
loop.RemoveSource (source, CFRunLoop.ModeDefault);
loop.Stop ();
if (source is not null)
loop?.RemoveSource (source, CFRunLoop.ModeDefault);
loop?.Stop ();
}
protected void PostNoResult (Action callback)
@ -100,8 +103,8 @@ namespace CFNetwork {
return null;
};
eventQueue.Enqueue (ev);
source.Signal ();
loop.WakeUp ();
source?.Signal ();
loop?.WakeUp ();
}
public Task Post (Action callback)
@ -116,11 +119,11 @@ namespace CFNetwork {
callback (c);
return null;
};
ev.Tcs = new TaskCompletionSource<object> ();
ev.Tcs = new TaskCompletionSource<object?> ();
ev.Cts = CancellationTokenSource.CreateLinkedTokenSource (cts.Token, cancellationToken);
eventQueue.Enqueue (ev);
source.Signal ();
loop.WakeUp ();
source?.Signal ();
loop?.WakeUp ();
try {
await ev.Tcs.Task;
@ -129,25 +132,25 @@ namespace CFNetwork {
}
}
public Task<T> Post<T> (Func<T> callback)
public Task<T?> Post<T> (Func<T> callback)
{
return Post (c => callback (), CancellationToken.None);
}
public async Task<T> Post<T> (Func<CancellationToken, T> callback,
public async Task<T?> Post<T> (Func<CancellationToken, T> callback,
CancellationToken cancellationToken)
{
var ev = new Event ();
ev.Callback = c => callback (c);
ev.Tcs = new TaskCompletionSource<object> ();
ev.Tcs = new TaskCompletionSource<object?> ();
ev.Cts = CancellationTokenSource.CreateLinkedTokenSource (cts.Token, cancellationToken);
eventQueue.Enqueue (ev);
source.Signal ();
loop.WakeUp ();
source?.Signal ();
loop?.WakeUp ();
try {
var result = await ev.Tcs.Task;
if (result != null)
if (result is not null)
return (T) result;
else
return default (T);
@ -162,7 +165,7 @@ namespace CFNetwork {
if (!eventQueue.TryDequeue (out ev))
return;
if ((ev.Cts != null) && ev.Cts.IsCancellationRequested) {
if ((ev.Cts is not null) && ev.Cts.IsCancellationRequested) {
ev.Tcs.SetCanceled ();
return;
}
@ -171,20 +174,20 @@ namespace CFNetwork {
try {
var result = ev.Callback (effectiveCts.Token);
if (ev.Tcs != null)
if (ev.Tcs is not null)
ev.Tcs.SetResult (result);
} catch (TaskCanceledException) {
if (ev.Tcs != null)
if (ev.Tcs is not null)
ev.Tcs.SetCanceled ();
} catch (Exception ex) {
if (ev.Tcs != null)
if (ev.Tcs is not null)
ev.Tcs.SetException (ex);
}
}
struct Event {
public Func<CancellationToken, object> Callback;
public TaskCompletionSource<object> Tcs;
public Func<CancellationToken, object?> Callback;
public TaskCompletionSource<object?> Tcs;
public CancellationTokenSource Cts;
}

Просмотреть файл

@ -3,6 +3,8 @@ using ObjCRuntime;
using Foundation;
using System;
#nullable enable
namespace CloudKit {
// NSInteger -> CKContainer.h
[Watch (3, 0)]

Просмотреть файл

@ -11,6 +11,8 @@ using System;
using ObjCRuntime;
using Foundation;
#nullable enable
namespace Contacts {
// NSInteger -> CNContact.h

Просмотреть файл

@ -10,6 +10,8 @@ using System;
using Foundation;
using ObjCRuntime;
#nullable enable
namespace CoreHaptics {
[Mac (10, 15), iOS (13, 0), TV (14, 0)]

Просмотреть файл

@ -32,6 +32,8 @@
using System;
using ObjCRuntime;
#nullable enable
namespace CoreLocation {
// NSInteger -> CLError.h

Просмотреть файл

@ -1,65 +0,0 @@
//
// CLLocationDistance.cs: Type wrapper for CLLocationDistance
//
// Authors:
// Marek Safar (marek.safar@gmail.com)
//
// Copyright 2012-2013, Xamarin, Inc
//
// The class can be either constructed from a string (from user code)
// or from a handle (from iphone-sharp.dll internal calls). This
// delays the creation of the actual managed string until actually
// required
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// moved to corelocation.cs
#if false
using System;
using ObjCRuntime;
namespace CoreLocation {
public static class CLLocationDistance
{
static double? max_distance;
static double? filter_none;
public static double MaxDistance {
get {
if (max_distance == null)
max_distance = Dlfcn.GetDouble (Libraries.CoreLocation.Handle, "CLLocationDistanceMax");
return max_distance.Value;
}
}
public static double FilterNone {
get {
if (filter_none == null)
filter_none = Dlfcn.GetDouble (Libraries.CoreLocation.Handle, "kCLDistanceFilterNone");
return filter_none.Value;
}
}
}
}
#endif

Просмотреть файл

@ -12,6 +12,8 @@ using System.Runtime.InteropServices;
using Foundation;
using ObjCRuntime;
#nullable enable
namespace CoreMedia {
// FourCharCode -> CMFormatDescription.h

Просмотреть файл

@ -3,6 +3,8 @@ using System.Runtime.InteropServices;
using Foundation;
using ObjCRuntime;
#nullable enable
namespace CoreMedia {
// keys names got changed at some point, but they all refer to a CMSampleBuffer (there is not CMSample obj)
[Watch (6, 0)]

Просмотреть файл

@ -5,6 +5,8 @@ using System;
using Foundation;
using ObjCRuntime;
#nullable enable
namespace CoreMidi {
#if !COREBUILD
public delegate void MidiCIPropertyChangedHandler (MidiCISession session, byte channel, NSData data);
@ -27,7 +29,7 @@ namespace CoreMidi {
=> throw new NotSupportedException ();
[Obsolete ("Empty stub (not a public API).")]
public virtual MidiCIPropertyChangedHandler PropertyChangedCallback { get; set; }
public virtual MidiCIPropertyChangedHandler? PropertyChangedCallback { get; set; }
[Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
public virtual void SetProperty (NSData inquiry, byte channel, MidiCIPropertyResponseHandler handler)

Просмотреть файл

@ -4,6 +4,8 @@ using System;
using System.ComponentModel;
using ObjCRuntime;
#nullable enable
namespace CoreSpotlight {
#if !NET && IOS
@ -27,7 +29,7 @@ namespace CoreSpotlight {
[UnsupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("macos")]
#endif
public virtual string [] ProtectionClasses {
public virtual string []? ProtectionClasses {
get => null;
set => throw new InvalidOperationException (Constants.ApiRemovedGeneral);
}

Просмотреть файл

@ -11,6 +11,8 @@ using System;
using ObjCRuntime;
using Foundation;
#nullable enable
namespace CoreSpotlight {
// NSInteger -> CNContact.h
[NoTV] // CS_TVOS_UNAVAILABLE

Просмотреть файл

@ -1,6 +1,8 @@
using ObjCRuntime;
using System;
#nullable enable
namespace CoreTelephony {
// untyped enum -> CoreTelephonyDefines.h

Просмотреть файл

@ -3,6 +3,8 @@
using System;
using ObjCRuntime;
#nullable enable
namespace FileProvider {
#if MONOMAC

2
src/Foundation/.gitignore поставляемый
Просмотреть файл

@ -1,2 +0,0 @@
*~
/*.g.cs

Просмотреть файл

@ -4,9 +4,7 @@ using CloudKit;
using ObjCRuntime;
namespace Foundation {
#if MONOMAC || IOS
public partial class NSItemProvider
{
public partial class NSItemProvider {
#if !NET && MONOMAC
[Obsolete ("Use RegisterCloudKitShare (CloudKitRegistrationPreparationAction) instead.")]
public virtual void RegisterCloudKitShare (Action<CloudKitRegistrationPreparationHandler> preparationHandler)
@ -15,7 +13,7 @@ namespace Foundation {
RegisterCloudKitShare (action);
}
#endif
#if MONOMAC
public virtual Task<CloudKitRegistrationPreparationHandler> RegisterCloudKitShareAsync ()
{
@ -34,15 +32,14 @@ namespace Foundation {
[SupportedOSPlatform ("ios11.0")]
[SupportedOSPlatform ("maccatalyst")]
#else
[Watch (4,0)]
[TV (11,0)]
[Mac (10,13)]
[iOS (11,0)]
[Watch (4, 0)]
[TV (11, 0)]
[Mac (10, 13)]
[iOS (11, 0)]
#endif
public NSProgress LoadObject<T> (Action<T, NSError> completionHandler) where T: NSObject, INSItemProviderReading
public NSProgress LoadObject<T> (Action<T, NSError> completionHandler) where T : NSObject, INSItemProviderReading
{
return LoadObject (new Class (typeof (T)), (rv, err) =>
{
return LoadObject (new Class (typeof (T)), (rv, err) => {
var obj = rv as T;
if (obj == null && rv != null)
obj = Runtime.ConstructNSObject<T> (rv.Handle);
@ -56,16 +53,15 @@ namespace Foundation {
[SupportedOSPlatform ("ios11.0")]
[SupportedOSPlatform ("maccatalyst")]
#else
[Watch (4,0)]
[TV (11,0)]
[Mac (10,13)]
[iOS (11,0)]
[Watch (4, 0)]
[TV (11, 0)]
[Mac (10, 13)]
[iOS (11, 0)]
#endif
public Task<T> LoadObjectAsync<T> () where T: NSObject, INSItemProviderReading
public Task<T> LoadObjectAsync<T> () where T : NSObject, INSItemProviderReading
{
var rv = LoadObjectAsync (new Class (typeof (T)));
return rv.ContinueWith ((v) =>
{
return rv.ContinueWith ((v) => {
var obj = v.Result as T;
if (obj == null && v.Result != null)
obj = Runtime.ConstructNSObject<T> (v.Result.Handle);
@ -79,16 +75,15 @@ namespace Foundation {
[SupportedOSPlatform ("ios11.0")]
[SupportedOSPlatform ("maccatalyst")]
#else
[Watch (4,0)]
[TV (11,0)]
[Mac (10,13)]
[iOS (11,0)]
[Watch (4, 0)]
[TV (11, 0)]
[Mac (10, 13)]
[iOS (11, 0)]
#endif
public Task<T> LoadObjectAsync<T> (out NSProgress result) where T: NSObject, INSItemProviderReading
public Task<T> LoadObjectAsync<T> (out NSProgress result) where T : NSObject, INSItemProviderReading
{
var rv = LoadObjectAsync (new Class (typeof (T)), out result);
return rv.ContinueWith ((v) =>
{
return rv.ContinueWith ((v) => {
var obj = v.Result as T;
if (obj == null && v.Result != null)
obj = Runtime.ConstructNSObject<T> (v.Result.Handle);
@ -96,5 +91,4 @@ namespace Foundation {
});
}
}
#endif // MONOMAC || IOS
}

Просмотреть файл

@ -72,6 +72,7 @@ DOTNET_REFERENCES = \
/r:$(DOTNET_BCL_DIR)/System.Runtime.CompilerServices.Unsafe.dll \
/r:$(DOTNET_BCL_DIR)/System.Runtime.Extensions.dll \
/r:$(DOTNET_BCL_DIR)/System.Runtime.InteropServices.dll \
/r:$(DOTNET_BCL_DIR)/System.Runtime.Loader.dll \
/r:$(DOTNET_BCL_DIR)/System.Security.Cryptography.dll \
/r:$(DOTNET_BCL_DIR)/System.Security.Cryptography.X509Certificates.dll \
/r:$(DOTNET_BCL_DIR)/System.Text.RegularExpressions.dll \

Просмотреть файл

@ -15,79 +15,83 @@ namespace Metal {
[SupportedOSPlatform ("tvos")]
#endif
public static class IMTLRenderCommandEncoder_Extensions {
#if MONOMAC
#if !WATCH
#if NET
[SupportedOSPlatform ("macos")]
[SupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("ios")]
[UnsupportedOSPlatform ("tvos")]
[SupportedOSPlatform ("ios12.0")]
[SupportedOSPlatform ("tvos14.5")]
#else
[Mac (10,13)]
[NoiOS]
[NoTV]
[Mac (10, 13)]
[iOS (12, 0)]
[TV (14, 5)]
[NoWatch]
#endif
public unsafe static void SetViewports (this IMTLRenderCommandEncoder This, MTLViewport [] viewports)
{
fixed (void* handle = viewports)
This.SetViewports ((IntPtr)handle, (nuint)(viewports?.Length ?? 0));
This.SetViewports ((IntPtr) handle, (nuint) (viewports?.Length ?? 0));
}
#endif // !WATCH
#if !WATCH
#if NET
[SupportedOSPlatform ("macos")]
[SupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("ios")]
[UnsupportedOSPlatform ("tvos")]
[SupportedOSPlatform ("ios12.0")]
[SupportedOSPlatform ("tvos14.5")]
#else
[Mac (10,13)]
[NoiOS]
[NoTV]
[Mac (10, 13)]
[iOS (12, 0)]
[TV (14, 5)]
[NoWatch]
#endif
public unsafe static void SetScissorRects (this IMTLRenderCommandEncoder This, MTLScissorRect [] scissorRects)
{
fixed (void* handle = scissorRects)
This.SetScissorRects ((IntPtr)handle, (nuint)(scissorRects?.Length ?? 0));
This.SetScissorRects ((IntPtr) handle, (nuint) (scissorRects?.Length ?? 0));
}
#endif
#endif // !WATCH
#if IOS
#if !WATCH
#if NET
[SupportedOSPlatform ("ios11.0")]
[SupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("tvos14.5")]
[SupportedOSPlatform ("macos11.0")]
#else
[iOS (11,0)]
[NoTV]
[NoMac]
[iOS (11, 0)]
[TV (14, 5)]
[Mac (11, 0)]
[NoWatch]
#endif
public unsafe static void SetTileBuffers (this IMTLRenderCommandEncoder This, IMTLBuffer[] buffers, nuint[] offsets, NSRange range)
public unsafe static void SetTileBuffers (this IMTLRenderCommandEncoder This, IMTLBuffer [] buffers, nuint [] offsets, NSRange range)
{
fixed (void* handle = offsets)
This.SetTileBuffers (buffers, (IntPtr)handle, range);
This.SetTileBuffers (buffers, (IntPtr) handle, range);
}
#endif // !WATCH
#if !WATCH
#if NET
[SupportedOSPlatform ("ios11.0")]
[SupportedOSPlatform ("maccatalyst")]
[UnsupportedOSPlatform ("tvos")]
[UnsupportedOSPlatform ("macos")]
[SupportedOSPlatform ("tvos14.5")]
[SupportedOSPlatform ("macos11.0")]
#else
[iOS (11,0)]
[NoTV]
[NoMac]
[iOS (11, 0)]
[TV (14, 5)]
[Mac (11, 0)]
[NoWatch]
#endif
public unsafe static void SetTileSamplerStates (this IMTLRenderCommandEncoder This, IMTLSamplerState[] samplers, float[] lodMinClamps, float[] lodMaxClamps, NSRange range)
public unsafe static void SetTileSamplerStates (this IMTLRenderCommandEncoder This, IMTLSamplerState [] samplers, float [] lodMinClamps, float [] lodMaxClamps, NSRange range)
{
fixed (void* minHandle = lodMinClamps) {
fixed (void* maxHandle = lodMaxClamps) {
This.SetTileSamplerStates (samplers, (IntPtr)minHandle, (IntPtr)maxHandle, range);
This.SetTileSamplerStates (samplers, (IntPtr) minHandle, (IntPtr) maxHandle, range);
}
}
}
#endif
#endif // !WATCH
}
}

Просмотреть файл

@ -1,4 +1,4 @@
#if IOS
#if IOS || __MACCATALYST__
#nullable enable
@ -12,6 +12,15 @@ namespace MetricKit {
public partial class MXMetaData {
#if NET
[SupportedOSPlatform ("ios14.0")]
[SupportedOSPlatform ("maccatalyst14.0")]
[SupportedOSPlatform ("macos12.0")]
[UnsupportedOSPlatform ("tvos")]
#else
[Introduced (PlatformName.iOS, 14, 0)]
[Introduced (PlatformName.MacOSX, 12, 0)]
#endif
public virtual NSDictionary DictionaryRepresentation {
get {
if (SystemVersion.CheckiOS (14,0))

Просмотреть файл

@ -4,6 +4,8 @@
// Copyright (C) Microsoft Corporation. All rights reserved.
//
#if !XAMCORE_5_0
using System;
using System.ComponentModel;
using System.Threading.Tasks;
@ -29,19 +31,26 @@ using MatrixFloat4x4 = global::OpenTK.NMatrix4;
#nullable enable
namespace NearbyInteraction {
#if WATCH
#if !__MACOS__ && !__TVOS__
public partial class NISession {
#if !NET
#if WATCH
[Obsolete ("This method was removed and will always throw a InvalidOperationException.")]
#endif
[EditorBrowsable (EditorBrowsableState.Never)]
public virtual void SetARSession (ARSession session) => throw new InvalidOperationException (Constants.ApiRemovedGeneral);
#if !NET
[Obsolete ("This method was removed and will always throw a InvalidOperationException.")]
#endif
[EditorBrowsable (EditorBrowsableState.Never)]
public virtual MatrixFloat4x4 GetWorldTransform (NINearbyObject @object) => throw new InvalidOperationException (Constants.ApiRemovedGeneral);
#endif // WATCH
}
#if __MACCATALYST__
[Obsolete ("This method was removed and will always throw a InvalidOperationException.")]
[EditorBrowsable (EditorBrowsableState.Never)]
public virtual void SetARSession (NSObject session) => throw new InvalidOperationException (Constants.ApiRemovedGeneral);
#endif
}
#endif // !__MACOS__ && !__TVOS__
}
#endif // !XAMCORE_5_0

1
src/ObjCRuntime/.gitignore поставляемый
Просмотреть файл

@ -1 +0,0 @@
/*.g.cs

Просмотреть файл

@ -646,25 +646,56 @@ namespace ObjCRuntime {
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal static extern IntPtr objc_allocateClassPair (IntPtr superclass, string name, IntPtr extraBytes);
static extern IntPtr objc_allocateClassPair (IntPtr superclass, IntPtr name, IntPtr extraBytes);
internal static IntPtr objc_allocateClassPair (IntPtr superclass, string name, IntPtr extraBytes)
{
using var namePtr = new TransientString (name);
return objc_allocateClassPair (superclass, namePtr, extraBytes);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal static extern IntPtr objc_getClass (string name);
static extern IntPtr objc_getClass (IntPtr name);
internal static IntPtr objc_getClass (string name)
{
using var namePtr = new TransientString (name);
return objc_getClass (namePtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal static extern void objc_registerClassPair (IntPtr cls);
[DllImport (Messaging.LIBOBJC_DYLIB)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool class_addIvar (IntPtr cls, string name, IntPtr size, byte alignment, string types);
static extern bool class_addIvar (IntPtr cls, IntPtr name, IntPtr size, byte alignment, IntPtr types);
internal static bool class_addIvar (IntPtr cls, string name, IntPtr size, byte alignment, string types)
{
using var namePtr = new TransientString (name);
using var typesPtr = new TransientString (types);
return class_addIvar (cls, namePtr, size, alignment, typesPtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
[return: MarshalAs (UnmanagedType.U1)]
internal static extern bool class_addMethod (IntPtr cls, IntPtr name, IntPtr imp, string types);
static extern bool class_addMethod (IntPtr cls, IntPtr name, IntPtr imp, IntPtr types);
internal static bool class_addMethod (IntPtr cls, IntPtr name, IntPtr imp, string types)
{
using var typesPtr = new TransientString (types);
return class_addMethod (cls, name, imp, typesPtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
[return: MarshalAs (UnmanagedType.U1)]
internal extern static bool class_addMethod (IntPtr cls, IntPtr name, Delegate imp, string types);
internal extern static bool class_addMethod (IntPtr cls, IntPtr name, Delegate imp, IntPtr types);
internal static bool class_addMethod (IntPtr cls, IntPtr name, Delegate imp, string types)
{
using var typesPtr = new TransientString (types);
return class_addMethod (cls, name, imp, typesPtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
[return: MarshalAs (UnmanagedType.U1)]
@ -683,14 +714,52 @@ namespace ObjCRuntime {
internal extern static IntPtr class_getMethodImplementation (IntPtr cls, IntPtr sel);
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static IntPtr class_getInstanceVariable (IntPtr cls, string name);
internal extern static IntPtr class_getInstanceVariable (IntPtr cls, IntPtr name);
internal static IntPtr class_getInstanceVariable (IntPtr cls, string name)
{
using var namePtr = new TransientString (name);
return class_getInstanceVariable (cls, namePtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static IntPtr class_getInstanceMethod (IntPtr cls, IntPtr sel);
[DllImport (Messaging.LIBOBJC_DYLIB, CharSet = CharSet.Ansi)]
[return: MarshalAs (UnmanagedType.U1)]
internal extern static bool class_addProperty (IntPtr cls, string name, objc_attribute_prop [] attributes, int count);
extern unsafe static bool class_addProperty (IntPtr cls, IntPtr name, IntPtr* attributes, int count);
internal static bool class_addProperty (IntPtr cls, string name, objc_attribute_prop [] attributes, int count)
{
using var namePtr = new TransientString (name, TransientString.Encoding.Ansi);
var ptrs = PropertyStringsToPtrs (attributes);
bool retval = false;
unsafe {
fixed (IntPtr* ptrsPtr = ptrs) {
retval = class_addProperty (cls, namePtr, ptrsPtr, count);
}
}
FreeStringPtrs (ptrs);
return retval;
}
internal static IntPtr [] PropertyStringsToPtrs (objc_attribute_prop [] props)
{
var ptrs = new IntPtr [props.Length * 2];
var index = 0;
foreach (var prop in props) {
ptrs [index++] = Marshal.StringToHGlobalAnsi (prop.name);
ptrs [index++] = Marshal.StringToHGlobalAnsi (prop.value);
}
return ptrs;
}
internal static void FreeStringPtrs (IntPtr [] ptrs)
{
foreach (var ptr in ptrs) {
Marshal.FreeHGlobal (ptr);
}
}
[StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi)]
internal struct objc_attribute_prop {

Просмотреть файл

@ -109,7 +109,13 @@ namespace ObjCRuntime {
public static extern int dlclose (IntPtr handle);
[DllImport (Constants.libSystemLibrary, EntryPoint = "dlopen")]
internal static extern IntPtr _dlopen (string? path, Mode mode /* this is int32, not nint */);
static extern IntPtr _dlopen (IntPtr path, Mode mode /* this is int32, not nint */);
internal static IntPtr _dlopen (string? path, Mode mode /* this is int32, not nint */)
{
using var pathPtr = new TransientString (path);
return _dlopen (pathPtr, mode);
}
public static IntPtr dlopen (string? path, int mode)
{
@ -148,7 +154,13 @@ namespace ObjCRuntime {
}
[DllImport (Constants.libSystemLibrary)]
public static extern IntPtr dlsym (IntPtr handle, string symbol);
static extern IntPtr dlsym (IntPtr handle, IntPtr symbol);
public static IntPtr dlsym (IntPtr handle, string symbol)
{
using var symbolPtr = new TransientString (symbol);
return dlsym (handle, symbolPtr);
}
public static IntPtr dlsym (RTLD lookupType, string symbol)
{

Просмотреть файл

@ -62,19 +62,49 @@ namespace ObjCRuntime {
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static IntPtr objc_getProtocol (string? name);
extern static IntPtr objc_getProtocol (IntPtr name);
internal static IntPtr objc_getProtocol (string? name)
{
var namePtr = new TransientString (name);
return objc_getProtocol (namePtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static IntPtr objc_allocateProtocol (string name);
extern static IntPtr objc_allocateProtocol (IntPtr name);
internal static IntPtr objc_allocateProtocol (string name)
{
using var namePtr = new TransientString (name);
return objc_allocateProtocol (namePtr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static void objc_registerProtocol (IntPtr protocol);
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static void protocol_addProperty (IntPtr protocol, string name, Class.objc_attribute_prop [] attributes, int count, [MarshalAs (UnmanagedType.I1)] bool isRequired, [MarshalAs (UnmanagedType.I1)] bool isInstance);
extern static unsafe void protocol_addProperty (IntPtr protocol, IntPtr name, IntPtr* attributes, int count, [MarshalAs (UnmanagedType.I1)] bool isRequired, [MarshalAs (UnmanagedType.I1)] bool isInstance);
internal static void protocol_addProperty (IntPtr protocol, string name, Class.objc_attribute_prop [] attributes, int count, [MarshalAs (UnmanagedType.I1)] bool isRequired, [MarshalAs (UnmanagedType.I1)] bool isInstance)
{
using var namePtr = new TransientString (name);
var propArr = Class.PropertyStringsToPtrs (attributes);
unsafe {
fixed (IntPtr* propArrPtr = propArr) {
protocol_addProperty (protocol, namePtr, propArrPtr, count, isRequired, isInstance);
}
}
Class.FreeStringPtrs (propArr);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static void protocol_addMethodDescription (IntPtr protocol, IntPtr nameSelector, string signature, [MarshalAs (UnmanagedType.I1)] bool isRequired, [MarshalAs (UnmanagedType.I1)] bool isInstance);
extern static void protocol_addMethodDescription (IntPtr protocol, IntPtr nameSelector, IntPtr signature, [MarshalAs (UnmanagedType.I1)] bool isRequired, [MarshalAs (UnmanagedType.I1)] bool isInstance);
internal static void protocol_addMethodDescription (IntPtr protocol, IntPtr nameSelector, string signature, [MarshalAs (UnmanagedType.I1)] bool isRequired, [MarshalAs (UnmanagedType.I1)] bool isInstance)
{
using var signaturePtr = new TransientString (signature);
protocol_addMethodDescription (protocol, nameSelector, signaturePtr, isRequired, isInstance);
}
[DllImport (Messaging.LIBOBJC_DYLIB)]
internal extern static void protocol_addProtocol (IntPtr protocol, IntPtr addition);

Просмотреть файл

@ -30,6 +30,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ObjectiveC;
using System.Runtime.Loader;
using System.Text;
using Foundation;
@ -142,6 +143,33 @@ namespace ObjCRuntime {
delegate* unmanaged<IntPtr, int> isReferencedCallback = (delegate* unmanaged<IntPtr, int>) options->reference_tracking_is_referenced_callback;
delegate* unmanaged<IntPtr, void> trackedObjectEnteredFinalization = (delegate* unmanaged<IntPtr, void>) options->reference_tracking_tracked_object_entered_finalization;
ObjectiveCMarshal.Initialize (beginEndCallback, isReferencedCallback, trackedObjectEnteredFinalization, UnhandledExceptionPropagationHandler);
AssemblyLoadContext.Default.Resolving += ResolvingEventHandler;
}
[DllImport ("__Internal")]
static extern byte xamarin_locate_assembly_resource (IntPtr assembly_name, IntPtr culture, IntPtr resource, IntPtr path, nint pathlen);
static bool xamarin_locate_assembly_resource (string assembly_name, string? culture, string resource, [NotNullWhen (true)] out string? path)
{
path = null;
const int path_size = 1024;
using var assembly_name_ptr = new TransientString (assembly_name);
using var culture_ptr = new TransientString (culture);
using var resource_ptr = new TransientString (resource);
using var path_ptr = new TransientString (path_size);
var rv = xamarin_locate_assembly_resource (assembly_name_ptr, culture_ptr, resource_ptr, path_ptr, path_size) != 0;
if (rv)
path = (string?) path_ptr;
return path is not null;
}
static Assembly? ResolvingEventHandler (AssemblyLoadContext sender, AssemblyName assemblyName)
{
if (xamarin_locate_assembly_resource (assemblyName.Name!, assemblyName.CultureName, assemblyName.Name + ".dll", out var path))
return sender.LoadFromAssemblyPath (path);
return null;
}
static unsafe delegate* unmanaged<IntPtr, void> UnhandledExceptionPropagationHandler (Exception exception, RuntimeMethodHandle lastMethod, out IntPtr context)

Просмотреть файл

@ -1855,8 +1855,8 @@ namespace ObjCRuntime {
ConnectMethod (method.DeclaringType!, method, selector);
}
[DllImport ("__Internal", CharSet = CharSet.Unicode)]
extern static void xamarin_log (string s);
[DllImport ("__Internal")]
extern static void xamarin_log (IntPtr s);
[DllImport (Constants.libcLibrary)]
extern static nint write (int filedes, byte [] buf, nint nbyte);
@ -1864,7 +1864,8 @@ namespace ObjCRuntime {
internal static void NSLog (string value)
{
try {
xamarin_log (value);
using var valuePtr = new TransientString (value, TransientString.Encoding.Unicode);
xamarin_log (valuePtr);
} catch {
// Append a newline like NSLog does
if (!value.EndsWith ('\n'))

Просмотреть файл

@ -144,7 +144,7 @@ namespace ObjCRuntime {
}
[DllImport ("__Internal")]
static extern void xamarin_start_wwan (string uri);
static extern void xamarin_start_wwan (IntPtr uri);
public static void StartWWAN (Uri uri)
{
@ -157,7 +157,8 @@ namespace ObjCRuntime {
if (Runtime.Arch == Arch.SIMULATOR)
return;
xamarin_start_wwan (uri.ToString ());
using var uriPtr = new TransientString (uri.ToString ());
xamarin_start_wwan (uriPtr);
}
#endif // !TVOS && !WATCH
#endif // !COREBUILD

Просмотреть файл

@ -11,6 +11,13 @@ namespace ObjCRuntime {
//
// If SomePInvoke doesn't make a copy, this is not the right tool
// for you.
//
// It can also allocate a chunk of memory to be used as a parameter
// for a method that will write a string to a pointer:
// using var outstr = new NativeString (255); // 255 bytes of memory
// SomePInvoke (outstr);
// var str = (string) outstr; // convert the returned native string
// to a managed string.
internal struct TransientString : IDisposable {
IntPtr ptr;
public enum Encoding {
@ -20,6 +27,10 @@ namespace ObjCRuntime {
Unicode,
};
public TransientString (nint size)
{
ptr = Marshal.AllocHGlobal ((IntPtr) size);
}
public TransientString (string? str, Encoding encoding = Encoding.Auto)
{
@ -50,7 +61,7 @@ namespace ObjCRuntime {
}
public static implicit operator IntPtr (TransientString str) => str.ptr;
public static explicit operator string? (TransientString str) => Marshal.PtrToStringAuto (str.ptr);
public static string? ToStringAndFree (IntPtr ptr, Encoding encoding = Encoding.Auto)
{

23
src/PushToTalk/Compat.cs Normal file
Просмотреть файл

@ -0,0 +1,23 @@
#nullable enable
#if !XAMCORE_5_0
using System;
using Foundation;
using ObjCRuntime;
#if !NET
using NativeHandle = System.IntPtr;
#endif
namespace PushToTalk {
public partial class PTChannelManagerDelegate {
public override NativeHandle ClassHandle { get => base.ClassHandle; }
}
public partial class PTChannelRestorationDelegate {
public override NativeHandle ClassHandle { get => base.ClassHandle; }
}
}
#endif // !XAMCORE_5_0

1
src/QTKit/.gitignore поставляемый
Просмотреть файл

@ -1 +0,0 @@
*.g.cs

1
src/StoreKit/.gitignore поставляемый
Просмотреть файл

@ -1 +0,0 @@
/*.g.cs

1
src/UIKit/.gitignore поставляемый
Просмотреть файл

@ -1 +0,0 @@
/*.g.cs

Просмотреть файл

@ -20649,6 +20649,12 @@ namespace AppKit {
[PostSnippet ("InitializeReleasedWhenClosed ();", Optimizable = true)]
NativeHandle Constructor (CGRect contentRect, NSWindowStyle aStyle, NSBackingStore bufferingType, bool deferCreation, NSScreen screen);
#if NET
[Export ("initWithWindowRef:")]
[PostSnippet ("InitializeReleasedWhenClosed ();", Optimizable = true)]
NativeHandle Constructor (IntPtr windowRef);
#endif
[Export ("title")]
string Title { get; set; }

Просмотреть файл

@ -1589,13 +1589,6 @@ namespace AVFoundation {
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface AVAudioPlayer {
[Export ("initWithContentsOfURL:error:")]
[Internal]
NativeHandle Constructor (NSUrl url, IntPtr outError);
[Export ("initWithData:error:")]
[Internal]
NativeHandle Constructor (NSData data, IntPtr outError);
[Export ("prepareToPlay")]
bool PrepareToPlay ();
@ -7441,17 +7434,17 @@ namespace AVFoundation {
AVMovieTrack [] GetTracks (AVMediaCharacteristics mediaCharacteristic);
[Async]
[Watch (8, 0), TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Watch (8, 0), NoTV, Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Export ("loadTrackWithTrackID:completionHandler:")]
void LoadTrack (int trackId, Action<AVMutableCompositionTrack, NSError> completionHandler);
[Async]
[Watch (8, 0), TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Watch (8, 0), NoTV, Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Export ("loadTracksWithMediaType:completionHandler:")]
void LoadTracksWithMediaType (string mediaType, Action<NSArray<AVMutableCompositionTrack>, NSError> completionHandler);
[Async]
[Watch (8, 0), TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Watch (8, 0), NoTV, Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Export ("loadTracksWithMediaCharacteristic:completionHandler:")]
void LoadTracksWithMediaCharacteristic (string mediaCharacteristic, Action<NSArray<AVMutableCompositionTrack>, NSError> completionHandler);
}
@ -7516,17 +7509,17 @@ namespace AVFoundation {
CMTime InterleavingPeriod { get; set; }
[Async]
[Watch (8, 0), TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Watch (8, 0), NoTV, Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Export ("loadTrackWithTrackID:completionHandler:")]
void LoadTrack (int trackId, Action<AVMovieTrack, NSError> completionHandler);
[Async]
[Watch (8, 0), TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Watch (8, 0), NoTV, Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Export ("loadTracksWithMediaType:completionHandler:")]
void LoadTracksWithMediaType (string mediaType, Action<NSArray<AVMovieTrack>, NSError> completionHandler);
[Async]
[Watch (8, 0), TV (15, 0), Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Watch (8, 0), NoTV, Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
[Export ("loadTracksWithMediaCharacteristic:completionHandler:")]
void LoadTracksWithMediaCharacteristic (string mediaCharacteristic, Action<NSArray<AVMovieTrack>, NSError> completionHandler);
}

Просмотреть файл

@ -121,12 +121,19 @@ namespace ContactsUI {
ICNKeyDescriptor DescriptorForRequiredKeys { get; }
#if MONOMAC
[NullAllowed, Export ("contact", ArgumentSemantic.Copy)]
CNContact Contact { get; [NoiOS]set; }
[NullAllowed]
[Export ("contact", ArgumentSemantic.Copy)]
#else
[Export ("contact", ArgumentSemantic.Strong)]
CNContact Contact { get; }
#endif
CNContact Contact {
get;
[NoiOS]
[NoTV]
[NoWatch]
[NoMacCatalyst]
set;
}
[NoMac]
[Static]

Просмотреть файл

@ -10980,10 +10980,8 @@ namespace Foundation {
[Export ("preferredPresentationSize")]
CGSize PreferredPresentationSize {
get;
#if !MONOMAC
[NoMac]
set;
#endif
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
@ -15461,6 +15459,14 @@ namespace Foundation {
[Static]
[Deprecated (PlatformName.MacOSX, 10, 15)]
#if XAMCORE_5_0
[NoMacCatalyst]
#else
#if MACCATALYST
[Obsolete ("Do not use; this method is not available on Mac Catalyst.")]
[EditorBrowsable (EditorBrowsableState.Never)]
#endif // MACCATALYST
#endif // XAMCORE_5_0
[Export ("launchedTaskWithLaunchPath:arguments:")]
NSTask LaunchFromPath (string path, string [] arguments);

Просмотреть файл

@ -568,7 +568,6 @@ CORELOCATION_API_SOURCES = \
CoreLocation/CLEnums.cs
CORELOCATION_CORE_SOURCES = \
CoreLocation/CLLocationDistance.cs \
CoreLocation/CoreLocation.cs \
CORELOCATION_SOURCES = \
@ -1472,6 +1471,10 @@ PHOTOSUI_API_SOURCES = \
PRINTCORE_SOURCES = \
PrintCore/Defs.cs \
PrintCore/PrintCore.cs
# PushToTalk
PUSHTOTALK_SOURCES = \
PushToTalk/Compat.cs \
# QTKit

Просмотреть файл

@ -818,12 +818,12 @@ namespace GameKit {
[NullAllowed] // by default this property is null
[Export ("authenticateHandler", ArgumentSemantic.Copy)]
[Mac (10, 9)]
#if WATCH
Action<NSError> AuthenticateHandler { get; set; }
#elif !MONOMAC
Action<UIViewController, NSError> AuthenticateHandler { get; set; }
#else
[Mac (10,9)]
Action<NSViewController, NSError> AuthenticateHandler { get; set; }
#endif

Просмотреть файл

@ -3699,8 +3699,12 @@ public partial class Generator : IMemberGatherer {
List<AvailabilityBaseAttribute> availabilityToConsider = new List<AvailabilityBaseAttribute> ();
if (inlinedTypeAvailability != null) {
availabilityToConsider.AddRange (inlinedTypeAvailability);
// Don't copy parent attributes if the conflict with the type we're inlining members into
// Example: don't copy Introduced on top of Unavailable.
CopyValidAttributes (availabilityToConsider, parentContextAvailability);
} else {
availabilityToConsider.AddRange (parentContextAvailability);
}
availabilityToConsider.AddRange (parentContextAvailability);
// We do not support Watch, so strip from both our input sources before any processing
memberAvailability = memberAvailability.Where (x => x.Platform != PlatformName.WatchOS).ToList ();
@ -3712,6 +3716,23 @@ public partial class Generator : IMemberGatherer {
// Copy down any unavailable from the parent before expanding, since a [NoMacCatalyst] on the type trumps [iOS] on a member
CopyValidAttributes (memberAvailability, availabilityToConsider.Where (attr => attr.AvailabilityKind != AvailabilityKind.Introduced));
if (inlinedType is not null && inlinedType != mi.DeclaringType && memberAvailability.Count > 1) {
// We might have gotten conflicting availability attributes for inlined members, where the inlined member
// might be available on a platform the target type isn't. The target type's unavailability will come
// later in the list, which means that if we have an unavailable attribute after an introduced attribute,
// then we need to remove the introduced attribute.
for (var i = memberAvailability.Count - 1; i >= 0; i--) {
if (memberAvailability [i].AvailabilityKind != AvailabilityKind.Unavailable)
continue;
for (var k = i - 1; k >= 0; k--) {
if (memberAvailability [k].AvailabilityKind == AvailabilityKind.Introduced && memberAvailability [k].Platform == memberAvailability [i].Platform) {
memberAvailability.RemoveAt (k);
i--;
}
}
}
}
// Add implied catalyst\TVOS from [iOS] _before_ copying down from parent if no catalyst\TVOS attributes
// As those take precedent. We will do this a second time later in a moment..
AddImpliedPlatforms (memberAvailability);
@ -5283,6 +5304,7 @@ public partial class Generator : IMemberGatherer {
bool use_underscore = minfo.is_unified_internal;
var mod = minfo.GetVisibility ();
minfo.protocolize = Protocolize (pi);
GetAccessorInfo (pi, out var getter, out var setter, out var generate_getter, out var generate_setter);
var nullable = !pi.PropertyType.IsValueType && AttributeManager.HasAttribute<NullAllowedAttribute> (pi);
@ -5322,7 +5344,7 @@ public partial class Generator : IMemberGatherer {
pi.Name.GetSafeParamName (),
use_underscore ? "_" : "");
indent++;
if (pi.CanRead) {
if (generate_getter) {
#if !NET
PrintAttributes (pi, platform: true);
#endif
@ -5344,7 +5366,7 @@ public partial class Generator : IMemberGatherer {
indent--;
print ("}");
}
if (pi.CanWrite) {
if (generate_setter) {
#if !NET
PrintAttributes (pi, platform: true);
#endif
@ -5422,7 +5444,7 @@ public partial class Generator : IMemberGatherer {
if (minfo.has_inner_wrap_attribute) {
// If property getter or setter has its own WrapAttribute we let the user do whatever their heart desires
if (pi.CanRead) {
if (generate_getter) {
PrintAttributes (pi, platform: true);
PrintAttributes (pi.GetGetMethod (), platform: true, preserve: true, advice: true);
print ("get {");
@ -5433,8 +5455,7 @@ public partial class Generator : IMemberGatherer {
indent--;
print ("}");
}
if (pi.CanWrite) {
var setter = pi.GetSetMethod ();
if (generate_setter) {
var not_implemented_attr = AttributeManager.GetCustomAttribute<NotImplementedAttribute> (setter);
PrintAttributes (pi, platform: true);
@ -5455,8 +5476,7 @@ public partial class Generator : IMemberGatherer {
return;
}
if (pi.CanRead) {
var getter = pi.GetGetMethod ();
if (generate_getter) {
var ba = GetBindAttribute (getter);
string sel = ba != null ? ba.Selector : export.Selector;
@ -5517,8 +5537,7 @@ public partial class Generator : IMemberGatherer {
print ("}\n");
}
}
if (pi.CanWrite) {
var setter = pi.GetSetMethod ();
if (generate_setter) {
var ba = GetBindAttribute (setter);
bool null_allowed = AttributeManager.HasAttribute<NullAllowedAttribute> (setter);
if (null_allowed)
@ -6393,11 +6412,11 @@ public partial class Generator : IMemberGatherer {
mod = "unsafe ";
// IsValueType check needed for `IntPtr` signatures (which can't become `IntPtr?`)
var nullable = !pi.PropertyType.IsValueType && AttributeManager.HasAttribute<NullAllowedAttribute> (pi) ? "?" : String.Empty;
print ("{0}{1}{2} {3} {{", mod, FormatType (type, pi.PropertyType), nullable, pi.Name, pi.CanRead ? "get;" : string.Empty, pi.CanWrite ? "set;" : string.Empty);
GetAccessorInfo (pi, out var getMethod, out var setMethod, out var generate_getter, out var generate_setter);
print ("{0}{1}{2} {3} {{", mod, FormatType (type, pi.PropertyType), nullable, pi.Name, generate_getter ? "get;" : string.Empty, generate_setter ? "set;" : string.Empty);
indent++;
if (pi.CanRead) {
if (generate_getter) {
var ea = GetGetterExportAttribute (pi);
var getMethod = pi.GetGetMethod ();
// there can be a [Bind] there that override the selector name to be used
// e.g. IMTLTexture.FramebufferOnly
var ba = GetBindAttribute (getMethod);
@ -6411,8 +6430,7 @@ public partial class Generator : IMemberGatherer {
PrintAttributes (getMethod, notImplemented: true);
print ("get;");
}
if (pi.CanWrite) {
var setMethod = pi.GetSetMethod ();
if (generate_setter) {
PrintBlockProxy (pi.PropertyType);
PrintAttributes (setMethod, notImplemented: true);
if (!AttributeManager.HasAttribute<NotImplementedAttribute> (setMethod))
@ -6450,15 +6468,14 @@ public partial class Generator : IMemberGatherer {
// C# does not support extension properties, so create Get* and Set* accessors instead.
foreach (var pi in optionalInstanceProperties) {
GetAccessorInfo (pi, out var getter, out var setter, out var generate_getter, out var generate_setter);
var attrib = GetExportAttribute (pi);
var getter = pi.GetGetMethod ();
if (getter != null) {
if (generate_getter) {
PrintAttributes (pi, preserve: true, advice: true);
var ba = GetBindAttribute (getter);
GenerateMethod (type, getter, false, null, false, false, true, ba?.Selector ?? attrib.ToGetter (pi).Selector);
}
var setter = pi.GetSetMethod ();
if (setter != null) {
if (generate_setter) {
PrintAttributes (pi, preserve: true, advice: true);
var ba = GetBindAttribute (setter);
GenerateMethod (type, setter, false, null, false, false, true, ba?.Selector ?? attrib.ToSetter (pi).Selector);
@ -6597,6 +6614,22 @@ public partial class Generator : IMemberGatherer {
}
}
void GetAccessorInfo (PropertyInfo pi, out MethodInfo getter, out MethodInfo setter, out bool generate_getter, out bool generate_setter)
{
getter = null;
setter = null;
generate_getter = false;
generate_setter = false;
if (pi.CanRead) {
getter = pi.GetGetMethod ();
generate_getter = !getter.IsUnavailable (this);
}
if (pi.CanWrite) {
setter = pi.GetSetMethod ();
generate_setter = !setter.IsUnavailable (this);
}
}
class MethodData {
public MethodInfo Method;
public ExportAttribute ExportAttribute;
@ -7124,7 +7157,8 @@ public partial class Generator : IMemberGatherer {
if (default_ctor_visibility != null) {
switch (default_ctor_visibility.Visibility) {
case Visibility.Public:
break; // default
ctor_visibility = "public";
break;
case Visibility.Internal:
ctor_visibility = "internal";
break;
@ -7146,7 +7180,7 @@ public partial class Generator : IMemberGatherer {
if (TypeName != "NSObject") {
var initSelector = (InlineSelectors || BindThirdPartyLibrary) ? "Selector.GetHandle (\"init\")" : "Selector.Init";
var initWithCoderSelector = (InlineSelectors || BindThirdPartyLibrary) ? "Selector.GetHandle (\"initWithCoder:\")" : "Selector.InitWithCoder";
string v = class_mod == "abstract " ? "protected" : ctor_visibility;
string v = (class_mod == "abstract " && default_ctor_visibility is null) ? "protected" : ctor_visibility;
var is32BitNotSupported = Is64BitiOSOnly (type);
if (external) {
if (!disable_default_ctor) {

Просмотреть файл

@ -3501,7 +3501,7 @@ namespace HealthKit {
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface HKSeriesBuilder
#if !MONOMAC
#if !MONOMAC && !XAMCORE_5_0
: NSSecureCoding
#endif
{

Просмотреть файл

@ -7324,7 +7324,10 @@ namespace Intents {
#endif
(INStartAudioCallIntent intent, Action<INStartAudioCallIntentResponse> completion);
[Watch (4, 0), Mac (10, 13), iOS (11, 0)]
#if !NET
[Mac (10, 13)]
#endif
[Watch (4, 0), iOS (11, 0)]
[Export ("resolveDestinationTypeForStartAudioCall:withCompletion:")]
void ResolveDestinationType (INStartAudioCallIntent intent, Action<INCallDestinationTypeResolutionResult> completion);

Просмотреть файл

@ -42,7 +42,6 @@ using NativeHandle = System.IntPtr;
#endif
namespace MediaPlayer {
[Mac (10, 12, 2)] // type exists only to expose fields
[BaseType (typeof (NSObject))]
#if !MONOMAC
#if NET
@ -54,8 +53,9 @@ namespace MediaPlayer {
[TV (14, 0)]
interface MPMediaEntity : NSSecureCoding {
#else
[Mac (10, 12, 2)] // type exists only to expose fields
interface MPMediaItem : NSSecureCoding {
#endif
#endif // !MONOMAC
[Static]
[Export ("canFilterByProperty:")]
bool CanFilterByProperty (NSString property);

Просмотреть файл

@ -125,7 +125,8 @@ namespace NearbyInteraction {
[Export ("invalidate")]
void Invalidate ();
[NoWatch, NoTV, NoMac, iOS (16, 0), MacCatalyst (16, 0)]
[NoMacCatalyst] // We don't have ARKit bindings for Mac Catalyst (because ARKit doesn't work on Mac Catalyst), so we can't bind this method.
[NoWatch, NoTV, NoMac, iOS (16, 0)]
[Export ("setARSession:")]
void SetARSession (ARSession session);

Просмотреть файл

@ -137,6 +137,14 @@ namespace PushToTalk {
[NoWatch, NoTV, NoMac, iOS (16, 0), MacCatalyst (16, 0)]
[Protocol]
#if NET
[Model]
#if !XAMCORE_5_0
[DefaultCtorVisibility (Visibility.Public)]
#endif
#else
[Model (AutoGeneratedName = true)]
#endif
[BaseType (typeof (NSObject))]
interface PTChannelManagerDelegate {
[Abstract]
@ -190,6 +198,14 @@ namespace PushToTalk {
[NoWatch, NoTV, NoMac, iOS (16, 0), MacCatalyst (16, 0)]
[Protocol]
#if NET
[Model]
#if !XAMCORE_5_0
[DefaultCtorVisibility (Visibility.Public)]
#endif
#else
[Model (AutoGeneratedName = true)]
#endif
[BaseType (typeof (NSObject))]
interface PTChannelRestorationDelegate {
[Abstract]

Просмотреть файл

@ -277,7 +277,7 @@ namespace QuickLook {
[Export ("preparePreviewOfFileAtURL:completionHandler:")]
void PreparePreviewOfFile (NSUrl url, Action<NSError> handler);
[iOS (15, 0), Mac (12, 0), MacCatalyst (15, 0)]
[iOS (15, 0), MacCatalyst (15, 0)]
[Export ("providePreviewForFileRequest:completionHandler:")]
void ProvidePreview (QLFilePreviewRequest request, Action<QLPreviewReply, NSError> handler);
}

Просмотреть файл

@ -1285,6 +1285,7 @@ namespace SceneKit {
#endif
[NoTV]
[Deprecated (PlatformName.MacOSX, 10, 10)]
[NoMacCatalyst]
[Export ("attributeForKey:")]
[return: NullAllowed]
NSObject GetAttribute (NSString lightAttribute);
@ -1296,6 +1297,7 @@ namespace SceneKit {
#endif
[NoTV]
[Deprecated (PlatformName.MacOSX, 10, 10)]
[NoMacCatalyst]
[Export ("setAttribute:forKey:")]
void SetAttribute ([NullAllowed] NSObject value, NSString attribuetKey);

Просмотреть файл

@ -652,11 +652,11 @@ namespace StoreKit {
[iOS (11, 0)]
[TV (11, 0)]
[Export ("ProductIdentifier")]
string ProductIdentifier { get; }
string ProductIdentifier { get; set; }
[iOS (8, 3)]
[Export ("ProviderToken")]
string ProviderToken { get; }
string ProviderToken { get; set; }
[iOS (11, 3), TV (11, 3), NoMac]
[Export ("AdNetworkAttributionSignature")]
@ -680,11 +680,11 @@ namespace StoreKit {
[NoWatch, NoMac, TV (14, 0), iOS (14, 0)]
[Export ("AdNetworkSourceAppStoreIdentifier")]
string AdNetworkSourceAppStoreIdentifier { get; }
string AdNetworkSourceAppStoreIdentifier { get; set; }
[NoWatch, NoMac, TV (14, 0), iOS (14, 0)]
[Export ("AdNetworkVersion")]
string AdNetworkVersion { get; }
string AdNetworkVersion { get; set; }
}
[NoWatch]

Просмотреть файл

@ -1705,6 +1705,12 @@ namespace WebKit {
[Export ("click")]
void Click ();
[Export ("form", ArgumentSemantic.Retain)]
DomHtmlFormElement Form { get; }
[Export ("files", ArgumentSemantic.Retain), Mac (10, 9)]
DomFileList Files { get; set; }
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
@ -1754,6 +1760,9 @@ namespace WebKit {
[Export ("select")]
void Select ();
[Export ("form", ArgumentSemantic.Retain)]
DomHtmlFormElement Form { get; }
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
@ -2290,6 +2299,21 @@ namespace WebKit {
[Export ("webView:unableToImplementPolicyWithError:frame:"), EventArgs ("WebFailureToImplementPolicy")]
void UnableToImplementPolicy (WebView webView, NSError error, WebFrame frame);
[Field ("WebActionNavigationTypeKey")]
NSString WebActionNavigationTypeKey { get; }
[Field ("WebActionElementKey")]
NSString WebActionElementKey { get; }
[Field ("WebActionButtonKey")]
NSString WebActionButtonKey { get; }
[Field ("WebActionModifierFlagsKey")]
NSString WebActionModifierFlagsKey { get; }
[Field ("WebActionOriginalURLKey")]
NSString WebActionOriginalUrlKey { get; }
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
@ -3029,25 +3053,6 @@ namespace WebKit {
void SelectSentence (NSObject sender);
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
partial interface WebPolicyDelegate {
[Field ("WebActionNavigationTypeKey")]
NSString WebActionNavigationTypeKey { get; }
[Field ("WebActionElementKey")]
NSString WebActionElementKey { get; }
[Field ("WebActionButtonKey")]
NSString WebActionButtonKey { get; }
[Field ("WebActionModifierFlagsKey")]
NSString WebActionModifierFlagsKey { get; }
[Field ("WebActionOriginalURLKey")]
NSString WebActionOriginalUrlKey { get; }
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
[Deprecated (PlatformName.MacOSX, 10, 14, message: "No longer supported.")]
[BaseType (typeof (DomObject), Name = "DOMBlob")]
@ -3117,19 +3122,6 @@ namespace WebKit {
void Reset ();
}
partial interface DomHtmlTextAreaElement {
[Export ("form", ArgumentSemantic.Retain)]
DomHtmlFormElement Form { get; }
}
partial interface DomHtmlInputElement {
[Export ("form", ArgumentSemantic.Retain)]
DomHtmlFormElement Form { get; }
[Export ("files", ArgumentSemantic.Retain), Mac (10, 9)]
DomFileList Files { get; set; }
}
[NoiOS, NoTV, NoWatch, NoMacCatalyst]
[Deprecated (PlatformName.MacOSX, 10, 14, message: "No longer supported.")]
[BaseType (typeof (DomHtmlElement), Name = "DOMHTMLAnchorElement")]

Просмотреть файл

@ -35,7 +35,7 @@ namespace EmbeddedResources {
#endif
#if MONOMAC
#if MONOMAC && !NET
var manager = new ResourceManager ("xammac_tests.EmbeddedResources.Welcome", typeof (ResourcesTest).Assembly);
#else
var manager = new ResourceManager ("EmbeddedResources.Welcome", typeof (ResourcesTest).Assembly);

5
tests/bgen/Makefile Normal file
Просмотреть файл

@ -0,0 +1,5 @@
TOP=../..
include $(TOP)/Make.config
run-tests:
$(DOTNET) test

Просмотреть файл

@ -14,8 +14,14 @@ namespace Xamarin.BindingTests {
public class ProtocolTest {
bool HasProtocolAttributes {
get {
if (TestRuntime.IsLinkAll && !Runtime.DynamicRegistrationSupported)
if (TestRuntime.IsLinkAll) {
#if OPTIMIZEALL && __MACOS__
return false;
#endif
if (!Runtime.DynamicRegistrationSupported)
return false;
}
return true;
}

Просмотреть файл

@ -332,8 +332,14 @@ namespace Xamarin.BindingTests {
Messaging.void_objc_msgSend_IntPtr_bool_bool (Class.GetHandle (typeof (ObjCBlockTester)), Selector.GetHandle ("setProtocolWithBlockProperties:required:instance:"), pb.Handle, required, instance);
Assert.Fail ("Expected an MT8028 error");
} catch (RuntimeException re) {
#if __MACOS__
Assert.AreEqual (8009, re.Code, "Code");
Console.WriteLine (re.Message);
Assert.That (re.Message, Does.StartWith ("Unable to locate the block to delegate conversion method for the method Xamarin.BindingTests.RegistrarBindingTest+FakePropertyBlock.set_"), re.Message, "Message");
#else
Assert.AreEqual (8028, re.Code, "Code");
Assert.AreEqual ("The runtime function get_block_wrapper_creator has been linked away.", re.Message, "Message");
#endif
}
}
}

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше