Xamarin允许开发者使用C#来开发Android和iOS应用。在Xamarin的基础上,微软又进一步推出了MAUI。早期的时候,使用Visual Studio开发iOS应用必须远程连接mac,也就是说mac是必不可少的。不过现在Visual Studio已经可以在Windows上直接编译调试iOS应用,开发阶段mac不再是必需品。虽然看起来非常棒,但是实际使用的时候会碰到很多问题。这篇文章分享下如何在Windows上成功编译运行iOS应用。
你可以试试直接用最新的Visual Studio创建一个iOS工程来运行。如果没有设置苹果开发者账号,先要填入账号。默认证书配置是自动导入的。把iPhone或者iPad连接到Windows PC,在运行的地方选择local device,正常可以看到设备名。点击运行后,如果没有问题,那恭喜,接下来的内容不用看了。如果失败,可以按照以下步骤操作:
-
安装OpenSSL。要快速安装可以通过chocolatey:choco install openssl
。
-
生成RSA密钥:
openssl genrsa -out key.pem 2048
-
创建CSR文件:
openssl req -new -sha256 -key key.pem -out csr.csr
-
在苹果开发者页面(https://developer.apple.com/account/resources/certificates/add)创建并下载新的iOS开发证书。把下载的文件命名为cer.cer
。
-
把.cer
文件转换成.pem
文件。
openssl x509 -in cer.cer -inform DER -out cer.pem -outform PEM
-
生成.p12
文件
openssl pkcs12 -export -out cer.p12 -inkey key.pem -in cer.pem
这里需要设置一个密码,后面导入会用到。
-
回到苹果开发者网站页面,打开https://developer.apple.com/account/resources/profiles/add创建下载.mobileprovision
文件。然后通过powershell命令提取UUID:
Select-String -Path .\profile.mobileprovision -Pattern UUID -Context 0,1 | % {$_.Context.PostContext}
把文件重命名为<uuid>.mobileprovision
,比如237c9fb6-bb15-33e3-2232-3c5e1665f306.mobileprovision
。
-
把这个文件拷贝到%localappdata%\Xamarin\iOS\Provisioning\Profiles
目录中。
-
打开Visual Studio > Tools > Options > Xamarin > Apple Accounts
。点击你的账号,再选择View details
导入刚才生成的p12
文件。这里输入刚才的密码。
-
打开工程的iOS配置。在iOS bundle signing
里面选择manual provisioning
。
-
现在运行debug模式来启动程序,你会看到你的iOS设备上安装了一个图标为.NET的app,点击打开即可。