iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
Mobile Development

挑戰 Kotlin Multiplatform Mobile 跨平台開發,透過共同的Kotlin模組同時打造iOS與Android應用!系列 第 6

Day 6:Hello....iOS world! 建立第一個KMM專案(iOS)

Keyword:Xcode,simulator
到Day6完成第一個KMM專案的Code放在
KMMDay6


第一次開啟KMM專案的iOS部分,還會需要一些設定.

首先讓我們現在專案裡面找到iOS的專案文件

在Android Studio內切換展示頁面 由"Android" 換成”Project“

切換的地方通常在左上角工具列的下方

https://github.com/officeyuli/itHome2021/raw/main/day5/chage%20display%20type.jpg

Android 頁籤只會顯示有關於Android的部分,如果想要看到iOS的部分,則需要把整個專案的檔案都顯示出來.

可以在iOSApp的資料夾底下,找到一個xcodeproj檔案,這個就是Xcode的專案設定檔案

https://github.com/officeyuli/itHome2021/raw/main/day5/iOS%20Path.jpg

在資料夾上面,右鍵選擇: Open in... →Finder 使用Finder打開專案檔案所在的資料夾

在Finder裡面,Xocde專案應該會像這樣

https://github.com/officeyuli/itHome2021/raw/main/day5/iOS%20in%20Finder.jpg

使用Xocde 打開專案

https://github.com/officeyuli/itHome2021/raw/main/day5/xcode.jpg

上方偏左的區塊與Android Studio類似 是模擬器的位置.

https://github.com/officeyuli/itHome2021/raw/main/day5/Generic%20iOS%20Device.jpg

如果沒有更新到最新版的macOS與Xcode 這邊就會是 Generic iOS Device

如果已經更新到最新版,則這邊就會出現模擬器.

https://github.com/officeyuli/itHome2021/raw/main/day5/iOS%20simulateor.jpg

點選左邊的三角形Run 便會開始編譯執行

這時候...有可能會出現問題...

https://github.com/officeyuli/itHome2021/raw/main/day5/No%20such%20module.jpg

原因是因為共用的shared部分還沒編譯好,Xcode認不得.

修正Module問題

回到Android Studio,我們需要先編譯好shared的部分,才可以讓iOS也享用到.

在右手邊的Gradle裡面,可以找到預先寫好的一些Task.

https://github.com/officeyuli/itHome2021/raw/main/day5/Task.jpg

這次我們要編譯shared,所以選擇shared內的”Build“ Task,開始建立shared的編譯

(如果找不到Tasks,有可能是因為Gradle編譯有問題,可以在File → Invalid Cache/Restart 清除Cache後重新開啟,讓Gradle重新再跑一次)

https://github.com/officeyuli/itHome2021/raw/main/day5/Task2.jpg

完成

執行完成後 在Xcode應該就能正常執行了

結果如下

https://github.com/officeyuli/itHome2021/raw/main/day5/iOS%20Display.jpg

之後也能在Android Studio直接編譯iOS的版本了

明天我們來看看這個範例專案的內容


上一篇
Day 5:Hello....android world! 建立第一個KMM專案(Android)
下一篇
Day 7:How do you turn this on? KMM是如何做到的?
系列文
挑戰 Kotlin Multiplatform Mobile 跨平台開發,透過共同的Kotlin模組同時打造iOS與Android應用!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言