美文网首页
xcode8部署应用的艰辛之路

xcode8部署应用的艰辛之路

作者: ryanzl | 来源:发表于2017-03-15 15:15 被阅读0次

    1.�操作:上传app

    1)使用Application Loader上传, 经常出现卡住的情况

    2)使用xcode上传,需要开启vpn,不然很慢,mac可以使用天行vpn

    2、操作:Product -> Archive

    1)证书问题,General pannel,Signing(Debug)选择开发者授权文件,Signing(Release)选择appstore发布授权文件。

    2)Build Settings,搜索Signing,Code Signing Identity选项中,Debug和Release分别选择开发者证书和发布证书

    3、使用Xcode8上传成功后,商店里构建版本却没有应用

    构建版本里面显示(正在处理),处理完之后构建版本里面没有显示对应的app版本,

    “我的App”—>“活动”—>“所有构建版本”。

    从iOS10开始,苹果更加注重对用于隐私的保护,app里边如果需要访问用户隐私,必须要做描述,所以要在plist文件中添加描述;

    麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?

    * 相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?

    * 相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?

    通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通讯录?

    蓝牙权限:Privacy - Bluetooth Peripheral Usage Description 是否允许此App使用蓝牙?

    语音转文字权限:Privacy - Speech Recognition Usage Description 是否允许此App使用语音识别?

    日历权限:Privacy - Calendars Usage Description 是否允许此App使用日历?

    定位权限:Privacy - Location When In Use Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据

    定位权限: Privacy - Location Always Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据

    4、Missing Push Notification Entitlement 解决

    Mssing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement. Xcode 8 does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file. 

    在Xcode8中,点击项目的targets,在Capabilities中,将Push Notifications 选项打开。

    5、iOS提交TestFlight测试显示缺少合规证明

    在info.plist中增加键值对,ITSAppUsesNonExemptEncryption 设置为NO

    然后更改内部版本号,重新打包提交测试


    6、Architectures(指令集)错误

    上架打包时报错:ERROR ITMS-90086: "Missing 64-bit support.

    完整的报错信息:ERROR ITMS-90086: "Missing 64-bit support. iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK or later. We recommend using the default "Standard Architectures" build setting for "Architectures" in Xcode, to build a single binary with both 32-bit and 64-bit support."

    目前iOS的指令集有以下几种:

    armv6:iPhone iPhone2 iPhone3G 第一代和第二代iPod Touch

    armv7:iPhone4 iPhone4S

    armv7s:iPhone5 iPhone5C

    arm64:iPhone5S

    机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在iphone5S的,只是效率没那么高而已~

    ================================================

    targets—> Build Settings —> Architectures

    Architecture : 指你想支持的指令集。

    Valid architectures : 指即将编译的指令集。

    Build Active Architecture Only : 指是否只编译当前适用的指令集。

    ================================================

    1,如果想自己的app在各个机器都能够最高效率的运行,则需要将Build Active Architecture Only改为NO,Valid architectures选择对应的指令集:armv7 armv7s arm64。这个会为各个指令集编译对应的代码,因此最后的 ipa体积基本翻了3倍,Release版本的时候Build Active Architecture Only必须NO。

    2,如果想让app体积保持最小,则现阶段应该选择Valid architectures为armv7,这样Build Active Architecture Only选YES或NO就无所谓了

    参考:http://blog.csdn.net/cewei711/article/details/51909438

    http://www.jianshu.com/p/31b71fd89ac5

    http://blog.csdn.net/oskytonight/article/details/22319853

    相关文章

      网友评论

          本文标题:xcode8部署应用的艰辛之路

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