追新的版本,免不了常常會遇到原本能編譯的程式碼,突然又動不了。不論是 Android 環境或是 iOS,不論熟不熟悉,遇到問題時還是要上網找別人的經驗分享。
這次是 xcode 的問題,而且這問題我竟然遇到了兩次:一次是想要在 iPhone 上編譯一個 open source 的 browser app ;沒辦法,用其他的 browser 就是會覺得一直在被監視中。另一次是為了要把舊的手機中的一些檔案傳到新買的 iPhone 中,想要把之前魔改過的 Sharik (內網檔案互傳的跨平台 App) 裝進去,在編譯時卡住了。
Flutter Browser App
GitHub - pichillilorenzo/flutter_browser_app: A Full-Featured Mobile Browser App (such as the…
Sharik
GitHub - plateaukao/sharik: Sharik is an open-source, cross-platform solution for sharing files via…
錯誤訊息大致如下,關鍵字是它在抱怨看不懂 @available

看來應該遇到的人還不少吧,比較容易的解決方式一下子就找到了。只要去修改一下 Podfile,指定平台是 iOS 14,跟把 Swift 版本設定為 5.0 就可以了。
platform :ios, '14.0'
...
...
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
config.build_settings['SWIFT_VERSION'] = '5.0'
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
'AUDIO_SESSION_MICROPHONE=0',
'DISABLE_PUSH_NOTIFICATIONS=1'
]
end
end
end
結語
能在 iPhone 上跑自己寫的程式,感覺真不錯。目前 Sharik 和 Flutter Browser 都可以正常執行了。接下來就要看要不要在 Flutter Browser 中,把一些 EinkBro 的功能移植過來,先頂一陣子。
