AppIcon
App icon (required for all apps) |
180 x 180 |
120 x 120 |
120 x 120 |
152 x 152 |
76 x 76 |
App icon for the App Store (required for all apps) |
1024 x 1024 |
1024 x 1024 |
1024 x 1024 |
1024 x 1024 |
1024 x 1024 |
Launch file or image (required for all apps) |
Use a launch file (seeLaunch Images) |
For iPhone 6, use a launch file (see Launch Images) For iPhone 5, 640 x 1136 |
640 x 960 |
1536 x 2048 (portrait) 2048 x 1536 (landscape) |
768 x 1024 (portrait) 1024 x 768 (landscape) |
Spotlight search results icon (recommended) |
120 x 120 |
80 x 80 |
80 x 80 |
80 x 80 |
40 x 40 |
Settings icon (recommended) |
87 x 87 |
58 x 58 |
58 x 58 |
58 x 58 |
29 x 29 |
Toolbar and navigation bar icon (optional) |
About 66 x 66 |
About 44 x 44 |
About 44 x 44 |
About 44 x 44 |
About 22 x 22 |
Tab bar icon (optional) |
About 75 x 75 (maximum: 144 x 96) |
About 50 x 50 (maximum: 96 x 64) |
About 50 x 50 (maximum: 96 x 64) |
About 50 x 50 (maximum: 96 x 64) |
About 25 x 25 (maximum: 48 x 32) |
Default Newsstand cover icon for the App Store (required for Newsstand apps) |
At least 1024 pixels on the longest edge |
At least 1024 pixels on the longest edge |
At least 1024 pixels on the longest edge |
At least 1024 pixels on the longest edge |
At least 512 pixels on the longest edge |
Web clip icon (recommended for web apps and websites) |
180 x 180 |
120 x 120 |
120 x 120 |
152 x 152 |
76 x 76
|
iphone6/6+ 更新:
Icon-Small@3x.png 87*87
Icon-40@3x.png 120*120
Icon-60@3x.png 180*180
Icon.png 57*57
Icon@2x.png 114*114
Icon-Small.png 29*29
Icon-Small@2x.png 58*58
Icon-Small-50.png 50*50
Icon-Small-50@2x.png 100*100
Icon-72.png 72*72
Icon-72@2x.png 144*144
Icon-40.png 40*40
Icon-40@2x.png 80*80
Icon-60.png 60*60
Icon-60@2x.png 120*120
Icon-76.png 76*76
Icon-76@2x.png 152*152
LaunchImage
For iPhone 6
750 x 1334 (@2x) for portrait
1334 x 750 (@2x) for landscape
For iPhone 6 Plus:
1242 x 2208 (@3x) for portrait
2208 x 1242 (@3x) for landscape
---------------------------------------------------------------------
4.0 inch screen:
Default-568h@2x.png (old 640x1136 ~ for iPhone 5)
4.0 inch screen:
LaunchImage-700-568h@2x.png (new 640x1136 ~ for iPhone 5)
4.7 inch screen:
LaunchImage-800-667h@2x.png (750x1334 ~ for iPhone 6)
5.5 inch screen:
LaunchImage-800-Portrait-736h@3x.png (1242x2208 ~ for iPhone 6 Plus Portrait)
5.5 inch screen:
LaunchImage-800-Landscape-736h@3x.png (2208x1242 ~ for iPhone 6 Plus Landscape)
Retina iPad:
Default-Portrait@2x~ipad.png (1536x2048 ~ for Retina iPad Portrait)
Retina iPad:
Default-Landscape@2x~ipad.png (2048x1536 ~ for Retina iPad Landscape)
iPad Mini/iPad:
Default-Portrait~ipad.png (768x1024 ~ for iPad Portrait)
iPad Mini/iPad:
Default-Landscape~ipad.png (1024x768 ~ for iPad Landscape)
适配iphone6/6+启动界面
如果旧的工程直接跑到这两个模拟器中时,默认是"兼容模式",即系统会简单的把内容等比例放大,显示效果有些模糊但尚可接受。此时App内部获取到的设备分辨率和iPhone5是一样的:320*568 point。
启用高分辨率模式有2个方法:
1.添加大屏的LaunchImage:
在Images.xcassets里,删除旧的LaunchImage组,然后新建LaunchImage组,添加对应高分辨率的图片。(参考:http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/)
2.添加Launch Screen File
Launch Screen是Xcode6和iOS8新加的功能,它用一个xib文件来作为启动画面。App在旧版iOS(低于ios8)启动时,该属性会被自动忽略,不会造成异常。
首先,点击New File ->iOS User Interface ->Launch Screen,然后在工程设置项里启用它:
LaunchFile
不过这个xib不能关联任何的代码(不能自定义View的Class,不能IBOutlet,不能加Object),可以理解成这个xib就是一张截图,这个方案的好处在于可以使用到Size Classes来针对不同屏幕布局这个xib。
上面两处设置,只要启用任意一个即可让App进入高分辨率模式;但如果两处都没有设置,则App会回退到兼容模式。
两处都设定的话在ios8会走Launch Screen File,在低于ios8 走LaunchImage
PS:iPhone4、iPhone5、iPhone6这几个设备的ppi都是相同的,默认图片优先是@2x。iPhone6 Plus的像素密度更高,默认图片优先是@3x。 另外,iPhone6 Plus有一点和其他设备不同:在App内部获得的屏幕分辨率是1242*2208,但设备实际分辨率是1920*1080,这时系统会把整体的显示内容做一个缩放,downscale到1/1.15。
UIPageControl的autoresizingMask
在设置UIPageControl实例的宽度时,显示的好像总是设置的四倍左右,但是把其他组建(UILable等)设置在同一父容器中显示的是正常的。头文件看到UIPageControl的autoresizingMask默认值是UIViewAutoresizingNone,但是感觉没起作用,于是这是下
_mainPageControl.autoresizingMask = UIViewAutoresizingNone;
UIPageControl显示正确了。(apple的bug?)
UIActivityViewController crashing on iPads by sdk8
其老早在 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIActivityViewController_Class/ 中就说了:On iPad, you must present the view controller in a popover. On iPhone and iPod touch, you must present it modally。
在sdk8之前你ipad还是用了presentViewController,那在dismissViewControllerAnimated的时候屏幕会旋转下,可能你还能接受,但是在sdk8便会直接crash,报错:
2014-10-15 14:03:25.927 BT2014[5133:488272] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x145578890>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.' *** First throw call stack: (0x187d9e084 0x1986900e4 0x18cc56bf0 0x18c81e3f8 0x18c81cf30 0x18c5a2efc 0x18c5149c0 0x187d56388 0x187d53314 0x187d536f4 0x187c81664 0x190d7f5a4 0x18c5864f8 0x1000c574c 0x198cfea08) libc++abi.dylib: terminating with uncaught exception of type NSException所以用sdk8编译时ipad用pop,并且用新类:UIPopoverPresentationController
UIActivityViewController
Accessing the Completion Handler completionHandler (iOS 8.0) The completion handler to execute after the activity view controller is dismissed. Declaration OBJECTIVE-C @property(nonatomic, copy) UIActivityViewControllerCompletionHandler completionHandler Discussion When the user-selected service finishes operating on the data, or when the user dismisses the view controller, the view controller executes this completion handler to let your app know the final result of the operation. Import Statement Availability Available in iOS 6.0 and later. Deprecated in iOS 8.0.
"LaunchServices: invalidationHandler called" with UIActivityViewController iOS8
In iOS8 when I present or dismiss a UIActivityViewController, my app logs: "LaunchServices: invalidationHandler called"。
参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPopoverPresentationController_class/index.html
https://devforums.apple.com/message/1049415#1049415
http://stackoverflow.com/questions/25192313/sharing-via-uiactivityviewcontroller-to-twitter-facebook-etc-causing-crash
可能是苹果的issue
ios sdk8/ios8 remoteNotification
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在苹果UIApplication文件中说明:
@interface UIApplication (UIRemoteNotifications)
.
.
.
- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types NS_DEPRECATED_IOS(3_0, 8_0, "Please use registerForRemoteNotifications and registerUserNotificationSettings: instead");
// Returns the enabled types, also taking into account any systemwide settings; doesn't relate to connectivity.
- (UIRemoteNotificationType)enabledRemoteNotificationTypes NS_DEPRECATED_IOS(3_0, 8_0, "Please use -[UIApplication isRegisteredForRemoteNotifications], or -[UIApplication currentUserNotificationSettings] to retrieve user-enabled remote notification and user notification settings");
@end
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
所以在ios8中应该用的新的注册通知的代码:
// IOS8 新的注册api if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { //原来注册通知的代码 [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; }
原本在IOS7当中 判断push是否打开的方法是:
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; return (types & UIRemoteNotificationTypeAlert);
如果将这段代码使用在 IOS8当中,虽然不会出现crash的现象,但永远返回空。 在IOS8中,我们使用如下的新代码来取代以上的代码:
+(BOOL)enabledRemoteNotification{ UIRemoteNotificationType types; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { types = [[UIApplication sharedApplication] currentUserNotificationSettings].types; } else { types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; } return (types & UIRemoteNotificationTypeAlert); }
ios 8 - buttons in horizontal scroll view intercepting pan event - scroll does not work
含有uibutton的ScrollView在iOS8中无法滚动的解决办法:
theScrollView.panGestureRecognizer.delaysTouchesBegan = theScrollView.delaysContentTouches
IBInspectable / IBDesignable
http://justsee.iteye.com/admin/blogs/2236938
UIScreen(view.frame)
http://justsee.iteye.com/blog/2154757
iOS8 notification
http://justsee.iteye.com/blog/2144285
相关推荐
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libstdc++.6.0.9.dylib ...
在实际开发中,这样的压缩包可能包含Xcode的更新文件、附加的插件、特定版本的iOS SDK或其他与Xcode 14.0相关的资源。为了更详细地了解这些文件的内容,需要解压并查看具体文件信息。 总的来说,Xcode 14.0真机调试...
这些文件位于`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Developer/SDKs`路径下。通常,当你通过Xcode自动更新到新版本的iOS时,Xcode会自动下载并安装...
苹果的Xcode集成开发环境提供了这样的功能,它允许开发者通过USB连接iPhone或iPad,实时查看和修改代码,快速定位并解决问题。 在"iOS真机调试包13.1.zip"中,包含的可能是一系列用于真机调试的工具、证书、配置...
【标题】"12.1的iOS的Xcode包"主要指的是针对苹果操作系统iOS 12.1版本的开发工具Xcode的一个特定版本。Xcode是Apple官方为开发者设计的一款集成开发环境(IDE),用于创建iOS、macOS、watchOS以及tvOS的应用程序。...
1. **下载iOS SDK**:苹果开发者网站提供了不同版本的Xcode和iOS SDK下载。你需要找到对应iOS 15.0的Xcode版本并下载。请注意,只有注册的苹果开发者才能访问这些资源。 2. **安装Xcode**:双击下载的.dmg文件,...
本文将深入探讨如何使用最新版的Xcode来适配iOS 11.2(版本号15C107)这一重要的移动操作系统更新。iOS 11.2带来了许多性能改进、新功能以及对现有API的调整,因此开发者需要确保他们的应用能够在这一环境下正常运行...
6. **测试自动化**:利用Xcode的测试工具,如 XCTest,创建自动化测试套件,确保在不同iOS版本间的兼容性和稳定性。 7. **权限请求**:iOS 16可能会对某些权限的请求方式作出更改,开发者需确保应用的权限请求符合...
6. **配置Xcode项目**:在Xcode中,将第三方SDK的库文件(通常是.a静态库或.framework框架)添加到项目中,并确保设置好依赖项和搜索路径。同时,将桥接头文件(LsSdkConector.h)和实现文件(LsSdkConector.m)也...
6. **代码适配**:虽然解决了运行问题,但还需要注意iOS 8.2与后来版本的API差异,确保代码在旧版本系统上的兼容性。 总之,"iOS 8.2 Xcode开发包"是为了帮助开发者在旧版iOS环境下运行和测试应用而准备的资源。...
将Xcode适配可以调试、编译、运行、打包系统版本号为iOS 13.2 版本的设备,解决"Could not find Developer Disk Image"问题 使用详情 请前往https://blog.csdn.net/u010731949/article/details/52576792
在 `/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/` 这个路径下,你将找到不同版本的iOS设备支持文件,包括iOS 11.1。这些文件使得Xcode能够支持对iOS 11.1设备的模拟和...
**iOS 12.2 SDK包详解** iOS 12.2是苹果公司为iOS操作系统发布的一个重要更新,主要针对开发者提供了丰富的SDK(Software Development Kit,软件开发工具包)资源,便于他们创建、测试和优化应用程序。这个SDK包是...
这个SDK包含了针对iOS 16系统的头文件、库、模拟器支持以及Xcode所需的其他组件,使得开发者能够在低版本的Xcode环境中也能对iOS 16设备进行应用开发和调试。 在iOS 16 SDK中,开发者可以利用一系列新特性和改进来...
3. **适配iOS版本**:确保SDK与应用支持的最低iOS版本兼容,避免因系统版本差异导致的问题。 4. **更新策略**:随着SDK版本的更新,及时跟进并升级,以获取最新的功能和修复。 总的来说,穿山甲iOS集成SDK是开发者...
- 连接设备:通过USB将iPhone或iPad等iOS设备连接到开发用的Mac。 - 配置开发者账户:确保已注册Apple Developer Account,以获取真机调试权限。 - 配置设备:在iOS设备上信任开发者证书,允许安装未在App Store...
iOS迷你云SDK会持续适配最新的iOS系统和Xcode版本,确保在不同设备和操作系统上的兼容性。此外,SDK还会定期更新,增加新功能,修复已知问题,以满足开发者和用户的需求。 **7. 社区支持和开发者工具** 开发者可以...
并将其复制到Xcode 10的相应位置,通常是`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib`和`/Applications/Xcode.app/Contents/Developer/...
9. **适配不同设备**:由于项目适用于iOS设备,包括iPhone、iPad和iPod,开发者需要确保设计和代码能适应各种屏幕尺寸和设备特性。 10. **平台兼容性**:注意项目指定需在Mac环境下解压使用,可能是因为开发工具...
至于压缩包中的“9.3 (13E230)”文件,这很可能是iOS 9.3的一个具体版本号,可能包含SDK或固件文件,供开发者在Xcode中模拟或安装到设备进行测试。这些资源可以帮助开发者在没有物理设备的情况下进行仿真测试,或者...