iphone 屏幕尺寸相关

屏幕物理尺寸

4.0寸的iPhone5/5s
4.7寸的iPhone678
5.5寸的iPhone6P7P8P
5.8寸的iPhoneX/XS iPhone11Pro
6.1寸的iPhoneXr iPhone11
6.5寸的iPhone XS Max/iPhone 11 Pro Max

屏幕像素分辨率

ref:https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/#device-screen-sizes-and-orientations

Device Portrait dimensions Landscape dimensions
12.9" iPad Pro 2048px × 2732px 2732px × 2048px
11" iPad Pro 1668px × 2388px 2388px × 1668px
10.5" iPad Pro 1668px × 2224px 2224px × 1668px
9.7" iPad 1536px × 2048px 2048px × 1536px
7.9" iPad mini 4 1536px × 2048px 2048px × 1536px
iPhone XS Max 1242px × 2688px 2688px × 1242px
iPhone XS 1125px × 2436px 2436px × 1125px
iPhone XR 828px × 1792px 1792px × 828px
iPhone X 1125px × 2436px 2436px × 1125px
iPhone 8 Plus 1242px × 2208px 2208px × 1242px
iPhone 8 750px × 1334px 1334px × 750px
iPhone 7 Plus 1242px × 2208px 2208px × 1242px
iPhone 7 750px × 1334px 1334px × 750px
iPhone 6s Plus 1242px × 2208px 2208px × 1242px
iPhone 6s 750px × 1334px 1334px × 750px
iPhone SE 640px × 1136px 1136px × 640px

图片分辨率

ref:https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/image-size-and-resolution/

Device Scale Factor
12.9" iPad Pro @2x
11" iPad Pro @2x
10.5" iPad Pro @2x
9.7" iPad @2x
7.9" iPad mini 4 @2x
iPhone XS Max @3x
iPhone XS @3x
iPhone XR @2x
iPhone X @3x
iPhone 8 Plus @3x
iPhone 8 @2x
iPhone 7 Plus @3x
iPhone 7 @2x
iPhone 6s Plus @3x
iPhone 6s @2x
iPhone SE @2x

三者关系图

ref:https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

iad10.2

ref:https://medium.com/@hacknicity/how-ipad-apps-adapt-to-the-new-10-2-ipad-5d050b565fca
On 10th September 2019, Apple announced a 7th generation iPad with a 10.2" screen. There are now five different iPad resolutions (in landscape):
9.7": 1024×768 points (2048×1536 pixels)
10.2": 1080×810 points (2160×1620 pixels)
10.5": 1112×834 points (2224×1668 pixels)
11.0": 1194×834 points (2388×1668 pixels)
12.9": 1366×1024 points (2732×2048 pixels)

高德地图的bundle缺失错误

错误

无效的资源bundle,请检查AMap.bundle是否正确导入

这种错误一般是由于pod错误引起的。

解决

  1. 手动:在高德开发包MAMapKit.framework 中,通过项目文件管理器找到AMap.bundle,加入到项目中,一般放置于resource目录下,注意去掉file inspector 中的membership,否则可能报重复的错误问题
  2. pod 自动:重新执行pod update 或者 pod install

xcode appicon使用纪要

正常步骤

  1. AppIcon需要的文件,要加入本地的工程目录下,这样才能正确打包和调用。
    注意:每一个资源icon文件,加入后,其 file inspector 的target membership 都要勾选当前目标程序,否则可能出问题

  2. 需要在asset catalog下面创建 AppIcon对象

  3. 在plist中配置正确的AppIcon 相关字段,其中CFBundleIconName字段要一模一样,注意大小写和空格,避免低级错误。

其他问题

问题1:
上传商店时,一直莫名提示:

ERROR ITMS-90713: "Missing Info.plist value. A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'com.xxx.xxx'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7."

解决:
原来是CFBundleIconName节点的内容错误导致,正确的内容为在plist xml文件中添加如下:

<key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>icon-20-ipad</string>
                <string>icon-20</string>
                <string>icon-29-ipad</string>
                <string>icon-29</string>
                <string>icon-40</string>
                <string>icon-60</string>
                <string>icon-76</string>
                <string>icon-83.5</string>
                <string>ItunesArtwork</string>
            </array>
            <key>CFBundleIconName</key>
            <string>AppIcon</string>
        </dict>
    </dict>

成功后,在UI中表现就是出现:
Icon files (iOS 5) 相关的节点内容

ps:刚开始不知道怎么配置,看到此字段带了个括号iOS 5,以为是陈旧的格式,随手就把这个删除了,后面一直在网上找的不对的配置格式,各种折腾都无果,最后还是在github 代码片段的帮助下搞定了这个问题。

ERROR ITMS-90704:1024 by 1024 pixels icon problem

现象

在app上传时遇到如下的error:

ERROR ITMS-90704: "Missing App Icon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review. For details, see https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/."

各种搜索,大部分讨论都在 stackoverflow, 比如:https://stackoverflow.com/questions/44667434/how-to-solve-missing-marketing-icon-ios-apps-must-include-a-1024x1024px/61618816#61618816

搜索分析

无非以下几种排查思路:
1. 遗漏1024分辨率icon文件的,补上文件就ok了
2. 检查文件的alpha 和透明度
3. plist配置文件错误的。

经过仔细排查以上几点,都无果:
- 所有的AppIcon集合,都正常,只是提示这个1024的一直有问题,
- 用图片工具,确认过第二点,也没问题
- 配置的问题,多方搜索比较,也排查完了已有的问题,最后只剩下这个1024的问题

解决

后面根据字面意思:must be included in the Asset Catalog 进行猜测和尝试,最终得以解决:
建立新的Asset catalog,并将之前的AppIcon目录移过去,然后就ok了。所以之前虽然icon得以正确调用,能正确显示icon但实际的asset catalog配置是没通的,导致这个app store需要的1024 icon一直找不到。

以上方法,仅供片面参考!

com.apple.amp.itmstransporter 下载

  1. github上有相关资源,如果速度可以,可以直接从github上下载,直接搜索就可以找到。
  2. 对于github速度不给力的,做了一个国内的链接:https://gitee.com/hiproz/com.apple.amp.itmstransporter ,为了做源,6k左右的速度下载了将近2个小时,中间无数次断链,这也就是在xcode中无法直接一次成功的原因,实际上底层的操作已经中断了,所以等再久也没有用。

Authenticating with the App Store 问题

环境

xcode 11.4.1

现象

昨天准备上传一个更新的app,一直无法成功,刚开始以为网络问题,只是速度慢,后面挂机睡觉,今天早上一看,还是一样卡死不动。提示:Authenticating with the App Store

搜索了下,发现了些许线索:
【1】https://juejin.im/post/5e4cab5ee51d4526d6405981
【2】https://github.com/iOSDevLog/com.apple.amp.itmstransporter

原因在上面的两个链接里都有解释,简单说就是,第一次运行时iTMSTransporter更新速度过慢或者网络异常导致无法更新成功。实际测试,6k左右的速度,还不停断链。

解决

  1. 参照上面的链接1,重新执行iTMSTransporter,等待更新成功
  2. 通过github更新文件,但是可惜因为某些语音,一样速度可怜,跟方法一效果差不多。
  3. 通过国内cdn下载iTMSTransporter,然后覆盖本地目录。一搜,发现都是某网站的结果,要注册的积分下载,无语,所以做一个国内的链接,具体参看:https://wp.goodmemory.cc/com-apple-amp-itmstransporter-download/

CocoaPods update error

错误提示:
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down

根据字面意思以为是qiang的原因,后面手动对source测试,发现没问题。

解决:

rm Podfile.lock
pod install

仅供参考

iPhone SE2适配

判断型号

#import <sys/utsname.h>
struct utsname systemInfo; 
uname(&systemInfo); 
NSString * phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding]; 
if ([phoneType isEqualToString:@"iPhone12,8"])  return @"iPhone SE2";

来源参考:https://stackoverflow.com/questions/26028918/how-to-determine-the-current-iphone-device-model

设计规范

SE2的UI设计规范可以参考 iPhone 8
设计参考规范: http://www.xueui.cn/design/142395.html

mac下格式化后的u盘windows无法操作

现象:mac下格式化成fat 或者exfat ,window下都是磁盘管理器可以看到,但无法格式化和操作,导致用户界面看不到。
解决:
1. 从开始菜单里找到附件 - 命令提示符,右键点击“命令提示符”,选择“以管理员模式运行”:
2. 进行命令行操作:

DISKPART> list disk

  磁盘 ###  状态           大小     可用     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  磁盘 0    联机              223 GB  1024 KB
  磁盘 1    联机              931 GB  3072 KB
  磁盘 2    联机               28 GB      0 B        *

DISKPART> select disk 2

磁盘 2 现在是所选磁盘。

DISKPART> clean

DiskPart 成功地清除了磁盘。
  1. 然后系统会提示发现硬盘,需要格式化,但是这个时候只能选择支持fat
  2. 按照默认fat格式化成功后,拔出再插入,然后发现可以支持ntfs格式化了
  3. 按照ntfs格式化成功

done!