Unity_IOS 问题汇总

Unity适配iPhoneX iOS 11+ Home键易误操作的问题

具体可以参考:https://blog.csdn.net/cordova/article/details/80547746

2、在出Android包的时候,apk包需要小于2g,否则会有异常发生

原因:google api在内存检索时,采用的是int指针索引,当大于2g的时候就会导致指针越界

3、使用xcode给手机安装app:window---->>Deivces and Simulator

4、UserInterfaceState.xcuserstate

Xcode中保存的用户操作的GUI状态,如窗口位置,打开的标签页,在项目检查等展开的节点、 简单地调整大小的Xcode窗口将这个文件来改变和修改您的源代码控制系统进行标记。

用git管理版本库时:
      1、停止追踪: 2、添加.gitignore文件 3、重新提交

      git rm -r --cached .
      git add -A
      git commit -m "update .gitignore"

5、IOS symlink Unity libraries

勾选后,Xcode工程在Unity编辑器的安装路径下直接引用Unity  ios runtime  library,减少Build时间,迭代版本更快,方便测试 ;

不勾选,这些ios动态库会引入到Xcode工程中,方便工程共享使用。

6、ITMS-90809

ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of new apps that use UIWebView APIs starting from April 2020. See https://developer.apple.com/documentation/uikit/uiwebview for more information.

首先进入到工程目录

grep UIWebView * -R

不出所料,果然Unity自己编译出来的libiPhone-lib.a中就有匹配。

升级到2019.3.9f1之后果然没有报错了。

这个问题在2020年6月份前,苹果只是警告,之后就必须要改掉

解决方式就是:升级unity到最新,unity在2018.4.19之后就解决了,只要大于这个版本就可以了

7、.ITMS-90683: Missing Purpose String in Info.plist   NSPhotoLibraryUsageDescription

需要添加

  • NSPhotoLibraryUsageDescription -> 相册

  • NSCameraUsageDescription -> 相机

  • 一定需要在后面添加内容,否则也有可能会打回

  • 常用的权限

  • NSContactsUsageDescription -> 通讯录

    NSMicrophoneUsageDescription -> 麦克风

    NSPhotoLibraryUsageDescription -> 相册

    NSCameraUsageDescription -> 相机

    NSLocationAlwaysUsageDescription -> 地理位置

    NSLocationWhenInUseUsageDescription -> 地理位置

    Privacy - Bluetooth Peripheral Usage Description -> 蓝牙权限

    Privacy - Speech Recognition Usage Description -> 语音转文字权限

    Privacy - Calendars Usage Description -> 日历权限

    Privacy - Contacts Usage Description -> 通讯录权限

8、Unity 导出xcode工程

      1、在unity的File--》buildsetting打开的界面设置导出项目

然后点Build,就会导出ios工程项目

   2、入口

3、c#的代码会按照i2cpp,将unity中的c#代码转换为Native下面的.cpp文件

4、资源 StreamingAssets -> Data/Raw

原工程中的各种资源都被压缩、打包、加密后存放在Data文件夹中

StreamingAssets文件夹中的ALL_EmptyTxt.txt文件被完整地拷贝到Data/Raw文件夹中,实际上不光是文件,文件夹也会原封不动地拷入该文件夹。

配置文件放在这里,上手机调试的话可以在Xcode工程中直接修改配置,而不需要到Unity里重新导出Xcode工程

5、Plugins/iOS -> Library/Plugins/iOS

Plugins/iOS文件夹中通常会放一些 *a.、*h、*.m文件,这些文件将拷贝至在Xcode工程的Library/Plugins/iOS文件夹中,在Xcode编译时也将被编译。

实际操作过程中,我会把自己为iOS写的OC、C、C++代码、SDK提供的.a文件放到里面,以避免每次编译后都要在Xcode工程里重新导入。

6、Icon、闪屏

在unity的playersetting中可以设置也可以在xcode工程中image.xcassets文件中设置

9、

ArgumentException: source
Parameter name: The source path cannot be empty.
UnityEditor.FileUtil.CheckForValidSourceAndDestinationArgumentsAndRaiseAnExceptionWhenNullOrEmpty 

如果有这样的报错,是因为到unity导出ios工程时,勾选了Use Storyboards for Launch Screen,但是没有给设置对应的storyboard 文件

所以解决方式有两种,一:在xcode工程中创建对应的storyboards文件并设置。二:在导出时指定对应的storyboards文件,或者取消这个勾选

10、LaunchImage切换launchscreen.storyboard适配启动图

背景:WWDC在2019有session提出。到2020年4月,上架APP的启动页必须使用launchscreen.storyboard,不能再使用assert方式了。

操作:

1、设置 launchscreen.storyboard,创建一个image,然后将属性里的image设置为launchscreen,即原来的launchscreen图片

2、app icons and launch images 下launch Screen File设置为对应的launchscreen.storyboard

3、Build Settings 里搜索assets ,设置Asset Catalog Launch Image Set Name 中原来的launchscreen 去掉

11、Unity3D使用storyboard作为launch screen之后遇到的问题

由于苹果要求2020 4.30以后,所有的启动页都得使用storyboard

如何设置storyboard为启动页:

https://forum.unity.com/threads/xcode-storyboard-option-for-splash-screens-launch-screens-in-ios-build.811131/
遇到的问题:虽然设置为横屏显示,但是启动屏会先显示为竖屏,然后再显示未横屏

解决方法:

修改Unity3D导出的UnityAppController.mm文件下的supportedInterfaceOrientationsForWindow方法:

- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
    // No rootViewController is set because we are switching from one view controller to another, all orientations should be enabled
    if ([window rootViewController] == nil)
        return UIInterfaceOrientationMaskAll;
    
     NSInteger defaultOrientation = ( UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight);
        return defaultOrientation | _forceInterfaceOrientationMask;
}

 

12、iOS 隐藏和显示隐藏文件的【终端】命令

显示隐藏文件:

打开『终端』这个程序,输入以下:

defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder

回车执行。

隐藏隐藏文件:

打开『终端』这个程序,输入以下:

defaults write com.apple.finder AppleShowAllFiles FALSE ; killall Finder

回车执行

13、ProjectSetting目录下的文件如果改变并上传svn的话,别人更新下来可能会将平台设置为windows平台

14、ios出ipa包的几种方式

1、通过Xcode编译软件,会在工程的Products目录下生成 xxx.app文件

2、在桌面上新建一个文件夹名字叫Payload,注意一个字母也不能少。并将上面的xxx.app直接拷贝到这个文件夹下面,压缩这个文件夹,并将文件夹的后缀名改为.ipa

15、AppStore App 兼容性设置

Info.plist文件中添加一项 Required device capabilities,默认是一个数组,里面添加两个字段gps和telephony。 

telephony在iPad中不可用,gps在iPod touch不可用,

这样的设置必须在首次提交应用时就设置好,以后的更改只支持增量,即之前只支持iPhone,以后想支持iPad和iPod

也可以添加其他设置

16、IOS重新签名:将已经生成的ipa包解压,用自己的证书重新打包。可以修改原ipa的包名,或者dis包改为dev包

17、现在app上传到appStore的时候,状态栏是:缺少合规证明。

解决的方法是在Info。plist文件中添加:ITSAppUsesNonExemptEncryption 设置为NO

18、Mapkit框架会使用到位置权限
 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值