几天来我一直在尝试归档我的ios应用程序,我设置了资源调配和一切正常,但当我运行以下命令时:
sudo dotnet publish -f:net6.0-ios -c:Release -r ios-arm64 --self-contained
我得到三个错误:
错误NETSDK 1032:运行时标识符平台“ios-arm 64”和平台目标“x64”必须兼容。[/用户/julistolksdorf/项目/基于技能的/应用程序/基于技能的产品/基于技能的/基于技能的.csproj::TargetFramework=net6.0-ios]
“/project.assets.json”没有“net6.0-ios”的目标。请确保已运行还原,并且已将“net6.0-ios”包含在项目的TargetFrameworks中。
需要绑定标识符。请在项目文件中添加“ApplicationId”属性,或在项目的Info.plist文件中添加“CFBundleIdentifier”条目。
错误1我可以通过编辑csproj.user
文件来省略
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IsFirstTimeProjectOpen>False</IsFirstTimeProjectOpen>
<ActiveDebugFramework>net6.0-ios</ActiveDebugFramework>
<ActiveDebugProfile>iPhone 14 Pro Max iOS 16.1</ActiveDebugProfile>
<SelectedPlatformGroup>Simulator</SelectedPlatformGroup>
<DefaultDevice>iPhone 14 Pro Max iOS 16.1</DefaultDevice>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetPlatformIdentifier)'=='iOS'">
<RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
</Project>
然后取出x64
。然后错误不再出现在存档上,但当我这样做时,我不能再在模拟器上构建我的应用程序。非常成功。
错误编号2我从来没有能够省略,什么是特别有线的是,它是谈论一个子项目(middleware.data),而不是主项目。我应该怎么做的信息?
而错误编号3只是愚蠢的;ofc我已在csproj文件中设置了包ID
<!-- App Identifier -->
<ApplicationId>com.skillbased.skillbasedapp</ApplicationId>
<ApplicationIdGuid>2041a417-5399-434b-95f8-83e997177fb7</ApplicationIdGuid>
为什么它这么恨我?
我在Visual Studio Mac上运行此程序
我真的需要你的帮助!
2条答案
按热度按时间kse8i1jr1#
首先,目前仅支持通过
.NET command line interface
发布应用。要发布应用,请打开终端并导航到. NET MAUI应用项目所在的文件夹。运行dotnet publish命令(如下所示)创建.ipa
:详细信息请参见发布。
其次,当您使用其预配配置文件设置iOS应用时,它应生成如下所示的属性组:
最后但并非最不重要的是,您需要将以下内容添加到
Info.plist
文件中。有关更多详细信息,您可以浏览Publish a .NET MAUI app for iOS和Suggested update to the MAUI Docs on publishing。
希望对你有用。
q5lcpyga2#
好吧,过了很多个月我终于明白了:
首先,如果你的repo中有一个子项目,把目标框架从FRAMEWORK改为FRAMEWORKS(带s),然后把目标也改为ios,当你设置项目时,这是不自动包括的,这让人困惑:
现在,bundle ID错误是一个假错误。即使你设置正确,错误也会显示,忽略它。
接下来,转到您的项目并完全删除csproj.user文件,同时从repo和子解决方案(如果有的话)中删除所有bin和obj文件夹。
现在进入有趣的部分,资源调配失败:确保在你的钥匙链中只有一个有效的证书用于你的项目。即使它们有不同的名称,也可能会混淆你的Mac,因此找不到正确的证书。
它应该是这样的:
如果它看起来有任何不同,或者说它不受信任,它也会失败。不要单击证书并将其置于“始终信任”。它必须使用应用程序默认值。
如果它不是自动信任的,请将其删除并创建一个新的。
然后确保您还安装了这些证书:
如果您还没有,请在此处下载:
https://www.apple.com/certificateauthority/
下载所有从现在起一年后到期的。(世界范围的)不应该超过4。
双击它们,它们就会显示在你的钥匙链上。
如果您的证书以前无效,现在将显示为有效。
现在尝试使用已安装的配置文件和发布配置构建应用程序。这将最终提示您输入钥匙串的密码。
如果输入正确,您最终可以使用以下内容构建应用:
请勿使用SUDO。
就这样。很简单吧?