iOS 常见问题总集

2018-01-27  本文已影响11人  Jackey_song

一、iOS 静态库为什么这么大?会导致打出来的包体积大很多吗?

.a 文件的体积(46.8 M) = 真机用的 .a (28.1M) + 模拟器用的 .a (18.7 M),当然每个 .a 文件还支持了不同架构:arm64 armv7 armv7s i386 x86_64。.a 的部分都只包含了代码的部分,静态库是在编译时链接二进制代码,对产生的二进制文件的大小并不会有太大的影响,目前 iOS 的 Sample 引入 AnySDK Framework 产生的大小也只有 1 M。

二、编译时报错  /xxxx/libPluginProtocol.a(Util.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target.

或者 clang: error: -fembed-bitcode is not supported on versions of iOS prior to 6.0

Xcode7 开始加入的 bitcode 是被编译程序的一种中间形式的代码,在 Xcode 7 中,我们新建一个 iOS 程序时,bitcode 选项默认是设置为YES的。我们可以在”Build Settings”->”Enable Bitcode”选项中看到这个设置,并且关掉它

bitcode

三、编译时报错 All interface orientations must be supported unless the app requires full screen.

看到这句提示,就是说 App 默认是有开启了多任务功能,而多任务功能是需要 App 支持所有方向,如果我们 App 是有需要支持多任务,则需要开启 App 对各个方向(上、下、左、右)的支持;如果 App 不需要开启多任务,则只需要将如下示意图的requires full screen

勾选上就 ok

xcode7-2

四、应用内网络无法连接

在 App 的 Info.plist

里面加入如下信息,或者按图中方法添加

xcode7-3

五、UrlSchemes跳转返回失败

在 iOS 9 中,如果使用 URL scheme 必须在Info.plist

中将你要在外部调用的 URL scheme 列为白名单,否则不能使用。Key为 LSApplicationQueriesSchemes ,键值内容是 LSApplicationQueriesSchemes urlscheme urlscheme2 urlscheme3 urlscheme4目前已知可能需要添加的值:微信:wechat weixinQQ:mqq mqqapi mqqapiwallet支付宝:alipay alipayshare safepay

下图仅供参考

xcode7-3

六、找不到 libsqlite3 动态库

更新2.1.0版本打包工具可以解决

不更新工具可以删除原先工程中的libsqlite3.dylib,在Build Phase->Link Binary With Libraries

中添加相应的libsqlite3.tbd如果还报错,删掉libsqlite3.tbd,在build setting的other linker flags增加-lsqlite3,其他dylib也可以类似处理

七、Info.plist 中出现了NSApplication 和 Main nib file base name 这两项原先没有的项

这两项是 Mac 的 Info.plist 拷贝过来的,请删除 Mac 的 Target 和相关文件夹。如果该 Target 需要留着,请参考各语言的快速集成指南,按规则拷贝一份.xcodeproj

用于 AnySDK 打包。

如果原工程的配置有改动的话可能需要重新拷贝这份.xcodeproj。

**八、iOS9下使用了- (BOOL)application:(UIApplication)app openURL:(NSURL )url options:(NSDictionary )options 方法导致 SDK 方法未被调用

iOS9 后引入了该方法。若工程的 Delegate 中有该方法,且设备为 iOS9 以上,则走该方法,否则走原先的

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

方法

若遇到相关问题,可将

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options

方法删掉试试。如果应用必须使用该方法,则可将

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

处 AnySDK 添加的代码移到该方法下。

九、编译时各种 std 报错

若在编译时碰到如下问题,请确认Build Setting中的C++ Standard Library和你使用的框架的libc++/libstdc++相对应

stderror

stderror2

十、渠道要求启动图片要显示 3 秒以上

在入口文件中AppDelegate/AppController/UnityAppController

添加以下代码,已有该方法的话就将[NSThread sleepForTimeInterval:3.0];

添加到函数最前面。

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {      [NSThreadsleepForTimeInterval:3.0];//设置启动页面时间returnYES;}

上一篇下一篇

猜你喜欢

热点阅读