- iOS 9 https适配http在info.plist中配置NSAppTransportSecurity 类型为字典 包含有一个对象为: (NSAllowsArbitraryLoadsboolean YES )
- MRC和ARC混编 在targets的build phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入-fno-objc-arc MRC工程中也可以使用ARC的类。方法如下:在targets的build phases选项下Compile Sources下选择要使用arc编译的文件,双击它,输入 -fobjc-arc 即可
- 配置.pch路径所需要的$(SRCROOT)/我的支付宝/AliSDK/AliSDK-Prefix.pch ,Build Settings -> Apple LLVM 7.0 - Language -> Prefix Header
- 支付宝出现<openssl/rsa.h>not found :通过在Build Settings -> Search Paths -> Header Search Paths ,添加openssl文件所在的路径 :$(SRCROOT)/我的支付宝/AliSDK 还有在 Build Settings -> Search Paths -> Library Search Paths 添加openssl文件所在的路径 :$(PROJECT_DIR)/我的支付宝/AliSDK
- iOS 图标一键生成 http://icon.wuruihong.com
- 启动图片 所需尺寸
在Assets.xcassets里添加new LaunchImage; 在new LaunchImage里添加6张尺寸: iPhone Portrait iOS 8,9 Retina HD 5.5 1242 * 2208 Retina HD 4.7 750 * 1334 iPhone Portrait iOS 7-9 2x 640 * 960 Retina 4 640 * 1136 iPhoneX Portrait 1125px × 2436px (375pt × 812pt @3x) iPhoneX Landscape 2436px × 1125px (812pt × 375pt @3x) 选择进入General—>Launch images Sourc 选择LaunchImage就行了;
- cocoapods 使用命令:vim Podfile 创建pod文件 点击: I 进入编辑状态 ,退出ESC键加wq回车进行退出 pod install 安装
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! target '项目名称' do pod 'AFNetworking', '~> 3.0' pod 'Masonry' pod 'FLAnimatedImage', '~> 1.0' pod 'TYAttributedLabel', '~> 2.6.2' pod 'MBProgressHUD' pod 'MJRefresh' pod 'SDWebImage' pod 'JPush' pod 'MMPulseView' pod 'SnapKit','~> 4.0.0' end
ios设备对应环境
arm64: iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display) armv7s :iPhone5|iPhone5C|iPad4(iPad with Retina Display) armv7: iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4 i386 是针对intel通用微处理器32位处理器 x86_64 是针对x86架构的64位处理器 模拟器32位处理器测试需要i386架构, 模拟器64位处理器测试需要x86_64架构, 真机32位处理器需要armv7,或者armv7s架构, 真机64位处理器需要arm64架构。
9.Xcode(Build Setting中Architectures)
1.Architectures
指定工程被编译成可支持哪些指令集类型,而支持的指令集越多,就会编译出包含多个指令集代码的数据包,对应生成二进制包就越大,也就是ipa包会变大。
2.Valid Architectures
限制可能被支持的指令集的范围,也就是Xcode编译出来的二进制包类型最终从这些类型产生,而编译出哪种指令集的包,将由Architectures与Valid Architectures(因此这个不能为空)的交集来确定
3.Build Active Architecture Only
指定是否只对当前连接设备所支持的指令集编译
当其值设置为YES,这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本,而设置为no时,会编译所有的版本。 所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。
10. 报错:symbol(s) not found for architecture x86_64
Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译。原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1之后默认就带上arm64的参数了。
目前临时的解决办法是
1.把1.选中Targets—>Build Settings—>Architectures。
把build active architectures only 改为 NO。
2. 把最下面的Valid Architectures中的arm64参数删掉就可以了
或者:
双击Architectures,选择other,删除$(ARCH_STANDARD),然后增加armv7和armv7s(写上:$(ARCHS_STANDARD_32_BIT))。
3.clean 再build。
(以上都不行则说明模拟器中不能调试,只能真机调试)
11. 两个静态库冲突如果是存在相同的类那么就要删除其中一个库的类对库重新编译参考:静态库拆分
删除掉 Other Linker Flag 的 -all_load
如果是有些库使用到了扩展函数(catagory)可以分别对这个库进行加载
使用:-force_load
-force_load build/libs/libxx.a
(build是添加到当前目录下的)
或
-force_load $(BUILT_PRODUCTS_DIR)/libxx.a
(这里是直接添加静态库项目源码的做法)
12.隐私权限
1.// 相册
<key>NSPhotoLibraryUsageDescription</key>
<string>是否允许App访问您的相册</string>
2.// 相机
<key>NSCameraUsageDescription</key>
<string>是否允许App访问您的相机</string>
3.// 位置
<key>NSLocationUsageDescription</key>
<string>是否允许App访问您的位置</string>
4.// 始终访问位置
<key>NSLocationAlwaysUsageDescription</key>
<string>是否允许App通过您的地理位置信息获取您周边的相关数据</string>
5.// 在使用期间访问位置
<key>NSLocationWhenInUseUsageDescription</key>
<string>是否允许App通过您的地理位置信息获取您周边的相关数据</string>
6.// 蓝牙
<key>NSBluetoothPeripheralUsageDescription</key>
<string>是否允许App访问您的蓝牙</string>
7.// 日历
<key>NSCalendarsUsageDescription</key>
<string>是否允许App访问您的日历</string>
8.// 提醒事项
<key>NSRemindersUsageDescription</key>
<string>是否允许App访问您的提醒事项</string>
9.// 麦克风
<key>NSMicrophoneUsageDescription</key>
<string>是否允许App访问您的麦克风</string>
10.// 媒体资料库
<key>NSAppleMusicUsageDescription</key>
<string>是否允许App访问您的媒体资料库</string>
11.// 运动与健康
<key>NSMotionUsageDescription</key>
<string>是否允许App访问您的运动与健身</string>
12.// 健康更新
<key>NSHealthUpdateUsageDescription</key>
<string>是否允许App访问您的健康更新 </string>
13.// 健康分享
<key>NSHealthShareUsageDescription</key>
<string>是否允许App访问您的健康分享</string>
14.Siri
<key>Privacy - Siri Usage Description</key>
<string>App需要您的同意,才能使用Siri来使用App的视频通话功能</string>