一煤伟、iOS 靜態(tài)庫為什么這么大?會導(dǎo)致打出來的包體積大很多嗎轩缤?
.a 文件的體積(46.8 M) = 真機用的 .a (28.1M) + 模擬器用的 .a (18.7 M),當然每個 .a 文件還支持了不同架構(gòu):arm64 armv7 armv7s i386 x86_64。.a 的部分都只包含了代碼的部分,靜態(tài)庫是在編譯時鏈接二進制代碼控妻,對產(chǎn)生的二進制文件的大小并不會有太大的影響,目前 iOS 的 Sample 引入 AnySDK Framework 產(chǎn)生的大小也只有 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 選項默認是設(shè)置為YES的。我們可以在”Build Settings”->”Enable Bitcode”選項中看到這個設(shè)置邦蜜,并且關(guān)掉它
三依鸥、編譯時報錯 All interface orientations must be supported unless the app requires full screen.
看到這句提示,就是說 App 默認是有開啟了多任務(wù)功能畦徘,而多任務(wù)功能是需要 App 支持所有方向毕籽,如果我們 App 是有需要支持多任務(wù),則需要開啟 App 對各個方向(上井辆、下、左溶握、右)的支持;如果 App 不需要開啟多任務(wù)杯缺,則只需要將如下示意圖的requires full screen
勾選上就 ok
四、應(yīng)用內(nèi)網(wǎng)絡(luò)無法連接
在 App 的 Info.plist
里面加入如下信息睡榆,或者按圖中方法添加
五萍肆、UrlSchemes跳轉(zhuǎn)返回失敗
在 iOS 9 中,如果使用 URL scheme 必須在Info.plist
中將你要在外部調(diào)用的 URL scheme 列為白名單胀屿,否則不能使用塘揣。Key為 LSApplicationQueriesSchemes ,鍵值內(nèi)容是 LSApplicationQueriesSchemes urlscheme urlscheme2 urlscheme3 urlscheme4目前已知可能需要添加的值:微信:wechat weixinQQ:mqq mqqapi mqqapiwallet支付寶:alipay alipayshare safepay
下圖僅供參考
六宿崭、找不到 libsqlite3 動態(tài)庫
更新2.1.0版本打包工具可以解決
不更新工具可以刪除原先工程中的 libsqlite3.dylib
亲铡,在 Build Phase->Link Binary With Libraries
中添加相應(yīng)的libsqlite3.tbd
如果還報錯,刪掉 libsqlite3.tbd
葡兑,在build setting
的other linker flags
增加 -lsqlite3
奖蔓,其他dylib
也可以類似處理
七、Info.plist 中出現(xiàn)了NSApplication 和 Main nib file base name 這兩項原先沒有的項
這兩項是 Mac 的 Info.plist 拷貝過來的讹堤,請刪除 Mac 的 Target 和相關(guān)文件夾吆鹤。如果該 Target 需要留著,請參考各語言的快速集成指南洲守,按規(guī)則拷貝一份.xcodeproj
用于 AnySDK 打包疑务。
如果原工程的配置有改動的話可能需要重新拷貝這份.xcodeproj沾凄。
**八、iOS9下使用了- (BOOL)application:(UIApplication )app openURL:(NSURL )url options:(NSDictionary<NSString, id> )options 方法導(dǎo)致 SDK 方法未被調(diào)用
iOS9 后引入了該方法知允。若工程的 Delegate 中有該方法撒蟀,且設(shè)備為 iOS9 以上,則走該方法廊镜,否則走原先的
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
方法
若遇到相關(guān)問題牙肝,可將
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
方法刪掉試試。如果應(yīng)用必須使用該方法嗤朴,則可將
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
處 AnySDK 添加的代碼移到該方法下配椭。
九、編譯時各種 std 報錯
若在編譯時碰到如下問題雹姊,請確認Build Setting
中的C++ Standard Library
和你使用的框架的libc++/libstdc++
相對應(yīng)
十股缸、渠道要求啟動圖片要顯示 3 秒以上
在入口文件中
AppDelegate/AppController/UnityAppController
添加以下代碼,已有該方法的話就將
[NSThread sleepForTimeInterval:3.0];
添加到函數(shù)最前面吱雏。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[NSThread sleepForTimeInterval:3.0];//設(shè)置啟動頁面時間
return YES;
}