美文网首页
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