美文网首页
iOS10适配记录

iOS10适配记录

作者: study_sea | 来源:发表于2016-09-22 15:49 被阅读96次

           一、 自动签名和手动签名

            官方指导观看WWDC 2016 session 401(What's New in Xcode App Signing

             1. 老工程使用手动管理签名的方式,不用勾选“Automatically manage signing”,在Debug和Release栏选上以前使用profile,Xcode会自动获取到Team和Signing Certificate。

    使用手动管理签名方式

            这些操作完成后,查看Build Settings,有一个废弃的provisioning profile设置模块,其他的我们只需要按照Xcode7一样设置就行了。

    Build Settings之Signing

            我们的操作都可以在“Report Navigator”中查看到,点击每条记录还可以查看到更详细的信息。

    Show Report Navigator

            2. 新工程使用自动管理签名的方式,在Bundle Identifier栏中填写App的identifier,勾选上“Automatically manage signing”,选择App所属的Team,基本上就算好了。点击“i”按钮,还可以查看profile的详细信息,如对应的App ID,Certificates, Team, Capabilities, Entitlements, Devices.

    使用自动管理自动签名的方式

           I 如果Team列表中无App所属的Team,需要打开Xcode的Preferences,进入Accounts,添加Apple ID,Xcode就能获取到所属的Team了。

    添加Apple ID

             II 如果此时电脑上有连接测试机,status就会出现下面的错误,点击“Register Device”即可解决。

    Register Device

            同样,我们的操作都可以在“Report Navigator”中查看到,点击每条记录还可以查看到更详细的信息。

    Show Report Navigator

            不过,这里显示只创建了development provisioning profile,在测试机上灌版本倒是可以运行了。那么distribution的呢?

             参照WWDC中的说法,使用自动管理签名方式的APP,在Organizer中点击“Upload to App Store...”上传iTunes Connect或者"Export..."的时候,就会得到一个distribution signed的ipa/App。(等有机会过一遍这个流程后再来修正吧)

            弄一个新App的时候,正好验证了这一说法,点击“Export...”的时候,Xcode生成了一个distribution的certificate和profile,这两样可以在developer的网页中查看到,生成的certificate也自动加载到了电脑上的钥匙串里。


    二、关于App support的Capabilities

            自动管理签名的方式,需要在Capabilities中配置App支持的features。之前以为手动管理签名的方式就不需要了,今天发现一直支持APNS的App收不到推送消息了,跟进去查看到错误消息如下:

            "Failed to get token, error:Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo={NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}"

            经过一番search和尝试,将Capabilities中的“Push Notifications”打开后,便能获取到token,也能收到推送消息。

            签名部分如果出现错误,Xcode都有给出错误的原因,按照提示操作一般都能解决问题。

           APNS的证书还是需要手动去网页上创建。


    三、请求使用摄像头、相册、麦克风等时,App崩溃

            以请求使用摄像头为例进行说明,需要在info.plist中添加property:Privacy - Camera Usage Description,写上App请求使用摄像头的理由(即String中需要填写的文字),对应的key为NSCameraUsageDescription。有了这个字段后,崩溃问题解决。

    官方解释请点击这里

    info.plist中添加对应的property

           App如果支持多语言,Description就需要翻译,在对应语言的InfoPlist.strings中添上如下格式的语句就行:

            NSCameraUsageDescription ="description in  language(Chinese/English/...)";

            题外话,如果App不需要访问摄像头、相册、麦克风等,那么info.plist中就不用加这些property,工程中也不要去调相关的API,否则提交ipa会通不过iTunes Connect的审核,iTunes Store会发邮件说明没有通过的原因。


    四、App内跳转到手机的系统设置某些选项时失败

            之前App可以通过openURL+prefs:root=xxx的方式跳转到系统设置中对应的xxx选项,iOS10中此方法失效。不过,UIApplicationOpenSettingsURLString依然有效。

    相关文章

      网友评论

          本文标题:iOS10适配记录

          本文链接:https://www.haomeiwen.com/subject/rvkzettx.html