Xamarin.IOS/Mac开发中遇到的问题
<h2>虚拟机中安装的mac系统无法识别iphone</h2><p>今天在 <span data-ttu-id="d1ae4-103">Xamarin.iOS 应用的免费预配 时,进行到 5、插入要在其中部署应用的 iOS 设备。 在第8选择iphone设备时,发现iphone并没有连接上mac虚拟机。</span></p>
<p><span data-ttu-id="d1ae4-103">于是在其他mac上尝试连接了是可以的,然后怀疑是自己mac哪里的设置问题。</span></p>
<p><strong><span data-ttu-id="d1ae4-103">1、首先看下相关的服务有没有开启</span></strong></p>
<p>鼠标右键“计算机”->“管理”-“服务和应用程序”->“服务”,找到“VMware USB Arbitration Service”,开启服务。(可以设置为自动启动,以免以后每次开机都要手动开启)</p>
<p><span style="color: rgba(255, 0, 0, 1)">开启后,PC要重启才能生效。</span></p>
<p><span data-ttu-id="d1ae4-103"><img src="http://aliyunzixunbucket.oss-cn-beijing.aliyuncs.com/jpg/adca0791a449cb632e58f92ba97e1fd6.jpg?x-oss-process=image/resize,p_100/auto-orient,1/quality,q_90/format,jpg/watermark,image_eXVuY2VzaGk=,t_100,g_se,x_0,y_0" alt="Windows VMWare 安装Mac OS X虚拟机后,连接iPhone真机不显示的问题_IOS" class="has"><br></span></p>
<p><strong><span data-ttu-id="d1ae4-103">2、看下虚拟机的设置是否正确</span></strong></p>
<p><span data-ttu-id="d1ae4-103">要对虚拟机设置:</span>usb控制器,将usb兼容从USB3.0 调到USB2.0。点击确定。</p>
<p>(<span style="color: rgba(255, 0, 0, 1)">注意:更改设置时系统应该是关机状态,否则更改无效</span>)</p>
<p>这是因为你的设备USB接口可能是2.0的</p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201909/727485-20190916164817795-1338695512.png" alt=""></p>
<p> 然后重启,重连ok。</p>
<h2>苹果手机应用显示不受信任的开发者时,要怎么办</h2>
<p>ios部署失败:<br>error MT1007: Failed to launch the application '/Users/huymac/Library/Caches/Xamarin/mtbs/builds/FromPractice.iOS/d3c1b1491d287d04e44e10dc7e8e7f9b/bin/iPhone/Debug/FromPractice.iOS.app' on the device '????????? iPhone': <br>Failed to launch the application 'huy.com.FormPractice' on the device '????????? iPhone': Application failed to launch: ESecurity. You can still launch the application manually by tapping on it. </p>
<p>这种情况一般是 开发者不受信任导致。</p>
<p>解决:手机-》设置-》通用-》设备管理-》</p>
<p>参考</p>
<p> </p>
<h2>查看安装的Xamarin.iOS版本</h2>
<p>编译时报错:Xamarin.iOS 12.14.0 does not support a deployment target of 12.4 for iOS (the maximum is 12.2). Please select an older deployment target in your project's Info.plist or upgrade to a newer version of Xamarin.iOS. AwesomeApp.iOS</p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201909/727485-20190916182430893-743796686.png" alt=""> </p>
<p>安装的版本 相对于需要运行的iphone手机的版本太低了。</p>
<p>解决方法:在 Info.plist 中修改 部署目标,为12.2</p>
<h2>Xcode中的iOS模拟器(iOS Simulator)</h2>
<p>安装了最新版的Xcode10.3,后来发现只有ios 12.4版本的模拟器,而在win10上vs开发装的是Xamarin.ios12.14,最大支持12.2版本的,无法调试,于是想办法在mac上安装低版本的ios模拟器。</p>
<p>打开XCode->Preferences->Components</p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201909/727485-20190917100343918-401075116.png" alt=""> </p>
<p> </p>
<h2 class="exp-title-h1" title="如何修改mac虚拟机硬盘大小">如何修改mac虚拟机硬盘大小</h2>
<p>参考:如何修改mac虚拟机硬盘大小</p>
<h2>Mac上用户->xxx目录下没有“资源库”目录</h2>
<p> <img src="https://img2020.cnblogs.com/blog/727485/202004/727485-20200417103629143-498007559.png" alt=""></p>
<p>对huymac邮件,选择查看显示选项,勾选“”资源库”文件夹</p>
<p><img src="https://img2020.cnblogs.com/blog/727485/202004/727485-20200417103654842-1708048532.png" alt=""></p>
<p> </p>
<p> </p>
<p> </p>
<h2>win10系统VMware Workstation与Device/Credential Guard不兼容</h2>
<p class="title-article">解决VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法</p>
<p>或者</p>
<p>参考</p>
<p>步骤都设置好后,重新启动计算机。</p>
<h2>查看Mac上安装的mono版本</h2>
<p>启动VS for Mac,打开上面工具栏,工具-》自定义工具。</p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201910/727485-20191011181654460-521717250.png" alt=""></p>
<p><span style="background-color: rgba(255, 255, 0, 1)">【也可以在文件夹下去看:访达->前往->电脑->xxMac->资源库->Framework】</span></p>
<p>在win10上用vs开发ios时,需要和mac配对,检测到mono版本不符合时:</p>
<p>mac上安装的mono版本可能与此版本的visual studio不兼容</p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201910/727485-20191012125511723-304753357.png" alt=""></p>
<p>可以在mac上 再去下载和安装一个新版本的mono,而不要替换,https://www.mono-project.com/download/stable/#download-mac。</p>
<p><span style="background-color: rgba(255, 255, 0, 1)">建议:不要随意去更新vs的版本。</span>。</p>
<p>此外,Xamarin.ios版本和Xcode也会不兼容:</p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201910/727485-20191012125407301-101584420.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/blog/727485/201910/727485-20191012144814559-672560991.png" alt=""></p>
<p> </p>
<h2>Mac上后安装Android</h2>
<p>Mac上初始安装VS for Mac时没有安装Android,后来想安装了怎么解?</p>
<p>在VS for Mac工具中找了半天没有发现入口,后来试了下 VS for Mac安装文件,ok。</p>
<h2>开发:UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread</h2>
<p>UIKit一致性错误:您正在调用只能从UI线程调用的UIKit方法</p>
<p>应该是需要在主线程(UI线程)上操作的代码,被你放在后台线程上执行了。</p>
<p>一般是跟界面相关的。或者绑定界面的可绑定属性等,断点执行下看是那些代码。</p>
<p> </p>
<h2>未能停止应用: An error occurred on client IDB1630274 while executing a reply for topic xvs/idb/16.3.0.274/stop-app</h2>
<p>问题:app打开时,按Home键退出,然后再点app进入,本应该直接回到app的,可是出现app需要重新登录的现象。调试发现按Home时,输出里显示如标题的错误,网上根本没有解决方法。</p>
<p>排查推测可能是退出时需要执行的什么操作报错,由于时团队项目,问同事是否退出时是否有什么操作,他才想起来原来是他某个文件没有提交(涉及到退出的操作)。</p>
<p>提交文件,重新调试,ok!</p>
<h2>AMDeviceSecureInstallApplicationBundle returned: 0xe8008021.</h2>
<p>部署应用到app的时候报错</p>
<p>方法:将设备中的app删除,然后重新运行</p>
<h2>调试时文件未找到,或者冲突</h2>
<p><img src="https://img2020.cnblogs.com/blog/727485/202005/727485-20200508152557479-1307254776.png" alt=""></p>
<p> 尝试删除项目中的'Resources/LaunchScreen.storyboard' 但是没有起作用。</p>
<p>解决方法:直接找到csproj项目文件去编辑(删除对应的文件)</p>
<h2>app顶部显示框位置问题</h2>
<p>问题:IPhone X刘海屏手机 顶部自定义显示框时,不能用硬编码的高度,而应该获取系统状态栏高度</p>
<p>在刘海屏手机出来之前,iOS App的顶部状态栏高度为20pt,导航栏的可布局区域高度为44pt,整个导航栏高度为64pt,底部安全距离为0。<br>在刘海屏手机出来后,刘海屏机型iOS App的顶部状态栏高度为44pt,导航栏的可布局区域高度为44pt,整个导航栏高度为88pt,底部安全距离为34pt。</p>
<p>xamarin.ios中:App.StatusBarHeight = UIApplication.SharedApplication.StatusBarFrame.Height; //注意 这一句要放对位置,调试出来不为0才行</p>
<p>参考:iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离</p>
<h2>iOS13 后UISearchBar的TextField的背景颜色</h2>
<div class="cnblogs_code">
<pre> UISearchBar searchBar = Control <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> UISearchBar;
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (searchBar != <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">)
{
searchBar.BackgroundColor </span>= UIColor.White; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">整个的颜色</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> (UIDevice.CurrentDevice.CheckSystemVersion(<span style="color: rgba(128, 0, 128, 1)">13</span>, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">))
{
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">iOS13开始,可以通过这个属性去获取UISearchBar的TextField</span>
UISearchTextField uISearch =<span style="color: rgba(0, 0, 0, 1)"> searchBar.SearchTextField;
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (uISearch != <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">)
{
uISearch.BackgroundColor </span>=<span style="color: rgba(0, 0, 0, 1)"> UIColor.White;
}
}
}</span></pre>
</div>
<p>参考:iOS13 获取UISearchBar的TextField</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/peterYong/p/11528257.html
頁:
[1]