分类 问题 下的文章

同一Apple ID登录的设备不能自动发现并开启iPhone热点

正常情况下,登录同一Apple ID的iphone和ipad(或mac)。在iphone没开启热点的情况下,ipad也能在“设置-无线局域网”中显示此iphone热点,点击便会自动开启iphone的热点并连接。

不知何时,ipad不能自动打开iphone热点了。尝试重启,恢复网络设置总是依旧。

解决方法记录一下:

  1. 在ipad的“设置-Apple ID-退出登录”
  2. 重新登录Apple ID
  3. 重启ipad

如果还是无法解决,再重新登录几次试试,我试了3次解决。

此设备无法用于接收apple id验证码 解决方法

ipad、iphone登录apple id后,无法接收到apple id双重认证码。

在“设置-Apple ID”中查看设备信息显示“此设备无法用于接收apple id验证码 解决方法”(this device cannot be used to receive apple id verification codes)。

关机重启后解决。

Android 6.0后Unity禁止自动弹出授权窗口

Android一直是安装App时提示需要获取的权限列表,Android 6.0后会动态获取权限,App可以在安装后再申请权限,用户可以选择确认或拒绝授权。
AndroidManifest.xml中targetSdkVersion>=23在Android 6.0以上的机器上可支持动态授权。但Unity打出的apk安装后默认启动时一口气申请所有需要的权限,一堆窗口弹出很是吓人。

Unity怎么避免启动App申请所有权限呢?
在AndroidManifest.xml中添加如下配置:

<application>
   <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
</application>

Unity中使用c# Process在Mac上异常Win32Exception: ApplicationName

在Unity中调用TexturePacker打包图集,核心代码如下:

    Process p = new Process ();
    p.StartInfo.FileName = "TexturePacker";
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.Start();
    p.WaitForExit();

在Windows上运行正常,Mac上报异常:

Win32Exception: ApplicationName='TexturePacker', CommandLine='',
CurrentDirectory='' System.Diagnostics.Process.Start_noshell
(System.Diagnostics.ProcessStartInfo startInfo,
System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common
(System.Diagnostics.ProcessStartInfo startInfo,
System.Diagnostics.Process process) System.Diagnostics.Process.Start
() (wrapper remoting-invoke-with-check)
System.Diagnostics.Process:Start ()

一番查找发现,Mac上应该用open命令调用目标应用,Mac版本的代码修改如下:

- 阅读剩余部分 -

Unity使用System.Drawing.dll在Mac上报异常DllNotFoundException: gdiplus.dll

在Unity中使用Mono库System.Drawing.dll处理图像,Windows上一切正常,在Mac上运行报异常:

DllNotFoundException: gdiplus.dll
System.Drawing.GDIPlus..cctor ()
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus
System.Drawing.Bitmap..ctor (Int32 width, Int32 height, PixelFormat format)
System.Drawing.Bitmap..ctor (Int32 width, Int32 height)
(wrapper remoting-invoke-with-check) System.Drawing.Bitmap:.ctor (int,int)

System.Drawing.dll内部依赖于gdiplus.dll,gdiplus.dll在Window上属于系统自带库所以一切正常。Mac上不存在gdiplus.dll,也未在网上找到独立的Mono版gidplus.dll。
但在Unity和MonoDevelop安装路径下有个libgdiplus.dylib,倒腾到dllmap中依旧异常,这两个路径下带的libgdiplus.dylib都不能正常使用。
最后安装了完整的Mono环境才搞定,Unity自带的Mono运行时是经过定制的这也能理解。

解决步骤如下:

- 阅读剩余部分 -