Flutter 集成到iOS及混合棧探索遇到的問題

環(huán)境:Flutter 1.9.1 fix6

1.The application's Info.plist does not contain CFBundleVersion.

默認(rèn)生成的Flutter module里面沒有bundle version及 build號(hào)榆俺, 填寫上即可.

2.為了方便大部分測(cè)試可能是在模擬器上進(jìn)行的,這樣首先避免了設(shè)備添加證書的限制蔫耽。

直到發(fā)現(xiàn)了一個(gè)問題卦洽,這個(gè)問題只在模擬器上出現(xiàn)火架,真機(jī)上正常:切換engin 的viewcontroller

在iOS模擬器下钠糊,第二次使用engin 創(chuàng)建FlutterViewContainer時(shí)杉女, initWithEngine: 會(huì)crash贰剥,報(bào)錯(cuò)如下

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

這個(gè)錯(cuò)誤是由于僵尸指針導(dǎo)致倾剿。打開Zombie 指針調(diào)試后 可以看到控制臺(tái)打印如下錯(cuò)誤

[FlutterView setAccessibilityElements:]: message sent to deallocated instance 0x7ff4b30a6dc0

使用Instruments Zombie 工具調(diào)試具體信息如下。


zombie.png

最終定位到源碼蚌成,是engin下的setViewController:方法導(dǎo)致

self.iosPlatformView->SetOwnerViewController(_viewController); 
"flutter::PlatformViewIOS::SetOwnerViewController(fml::WeakPtr<FlutterViewController>)+0x21"    

相關(guān)engin源碼
https://github.com/flutter/engine/blob/master/shell/platform/darwin/ios/framework/Source/FlutterEngine.mm

這個(gè)問題在真機(jī)上不會(huì)出現(xiàn)前痘,具體原因未進(jìn)行深入排查。如果不改源碼自己維護(hù)engin的話担忧,只能真機(jī)測(cè)試了芹缔。
之后改為了真機(jī)測(cè)試,也遇到了一些配置問題瓶盛。

3.flutter module中如過不使用第三方plugin或者使用純dart package可能不會(huì)出現(xiàn)異常最欠,引用三方plugin時(shí)報(bào)如下錯(cuò)誤
Could not find or use auto-linked framework 'Flutter'
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_FlutterError", referenced from:
      objc-class-ref in BatteryPlugin.o
  "_OBJC_CLASS_$_FlutterMethodChannel", referenced from:
      objc-class-ref in BatteryPlugin.o
  "_OBJC_CLASS_$_FlutterEventChannel", referenced from:
      objc-class-ref in BatteryPlugin.o
  "_FlutterMethodNotImplemented", referenced from:
      -[FLTBatteryPlugin handleMethodCall:result:] in BatteryPlugin.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解決方法:
https://github.com/flutter/flutter/issues/17749
you have to have to set ONLY_ACTIVE_ARCH = YES for debug builds. Write this to you podfile

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '4.2'
      config.build_settings['SUPPORTED_PLATFORMS'] = 'iphoneos iphonesimulator'
      if config.name == "Debug" || config.name == "Debug-alpha" || config.name == "Debug-live" || 
config.name == "Debug-development"
        config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
      else
        config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      end
    end
  end
end

將以上添加到podfile中示罗。

4.Flutter.framework: Permission denied

Command PhaseScriptExecution failed with a nonzero exit code

permission denied.png

解決:
https://github.com/flutter/flutter/issues/40146
packages/flutter_tools/bin/xcode_backend.sh 中 144行 將
RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -exec chmod a-w "{}" \;

替換為
RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -iname '.h' -exec chmod a-w "{}" \;

這個(gè)問題在1.9.1 fix6版本之前出現(xiàn),升級(jí)到1.12版本已經(jīng)修復(fù)這個(gè)問題芝硬。

5.不定期補(bǔ)充...
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蚜点,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拌阴,更是在濱河造成了極大的恐慌绍绘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迟赃,死亡現(xiàn)場(chǎng)離奇詭異陪拘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纤壁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門左刽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酌媒,你說我怎么就攤上這事悠反。” “怎么了馍佑?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵斋否,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我拭荤,道長(zhǎng)茵臭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任舅世,我火速辦了婚禮旦委,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雏亚。我一直安慰自己缨硝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布罢低。 她就那樣靜靜地躺著查辩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪网持。 梳的紋絲不亂的頭發(fā)上宜岛,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音功舀,去河邊找鬼萍倡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辟汰,可吹牛的內(nèi)容都是我干的列敲。 我是一名探鬼主播阱佛,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼戴而!你這毒婦竟也來了瘫絮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤填硕,失蹤者是張志新(化名)和其女友劉穎麦萤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扁眯,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壮莹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姻檀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片命满。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绣版,靈堂內(nèi)的尸體忽然破棺而出胶台,到底是詐尸還是另有隱情,我是刑警寧澤杂抽,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布诈唬,位于F島的核電站,受9級(jí)特大地震影響缩麸,放射性物質(zhì)發(fā)生泄漏铸磅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一杭朱、第九天 我趴在偏房一處隱蔽的房頂上張望阅仔。 院中可真熱鬧,春花似錦弧械、人聲如沸八酒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)羞迷。三九已至,卻和暖如春唁桩,著一層夾襖步出監(jiān)牢的瞬間闭树,已是汗流浹背耸棒。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工荒澡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人与殃。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓单山,卻偏偏與公主長(zhǎng)得像碍现,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子米奸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容