XCode上傳至GitHub方法

  1. 為何使用GitHub?
  2. 註冊帳號
  3. XCode登入至GitHub
  4. XCode上傳至GitHub

1. 為何使用GitHub?

GitHub是版本管控程式碼好用的空間,也能做Git版本管控的簡單練習。

只要是撰寫程式,參考別人的程式碼,很多程式碼都放在GitHub上面,但不是所有,也是有別的空間可以放。

Android能做版本管控的方法,不一定要使用GitHub。

不過本網站之後會以GitHub為主要版本管控的空間,因此在此介紹GitHub。

2. 註冊帳號

GitHub帳號有分免費與專業,不過可以練習期間,先以免費為主,將來有特殊需求,再去升級也不妨。

註冊帳號請至下方GitHub網站註冊

GitHub網址

3. XCode登入至GitHub

點擊Your repositories
點擊New
Repository name設定一個儲存庫名稱
設定是公開/私有
是否新增README file之後可以自訂內容
是否新增.gitignore該儲存庫使用程式語言
是否選擇使用的license
範例參考
建立好後,如這張圖
這次選擇Setting
左邊那排往下拉,選擇Developer settings
先選擇 Personal access tokens -> Generate new token
Note填寫說明
下方選擇token權限
設定完後點擊 -> Generate token
複製token字串
回到XCode選擇
Xcode -> Preferences…
新增GitHub帳號
輸入帳號與剛剛上面申請的Token
使用Git要使用的名字與Email

4. XCode上傳至GitHub

新增專案時,記得勾選,
但專案建立後Git依然沒有與GitHub連結
新增與遠端Git
按下Create建立專案到GitHub
完成後,就將專案上傳上去囉

備註

本篇重點不是Git教學,是將Code放置GitHub
之後會寫幾篇與Git相關的文章


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Intellij IDEA 安裝與環境設置

1. 下載JDK

首先到Amazon官網下載,網址如下

https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html

下載對應的電腦版本

下載好後安裝,按照預設的安裝即可

2. 安裝Intellij IDEA

請至官網下,網址如下

https://www.jetbrains.com/idea/download/#section=windows

下載Free版本即可
勾選此,也可依照自己喜好勾選
安裝好後,打開Intellij IDEA
因為已經先前已經安裝好JDK,所以此時就會顯示安裝的JDK
將此兩選項打勾
將一些選項取消,意味著盡可能顯示更多提示
將此打勾

這樣Intellij IDEA 環境就設定好,可以開始使用囉


Intellij IDEA


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

XCode 安裝Cocoapods第三方Library的工具

1. 簡介

Cocoapods是能夠提供第三方Library的工具

使用他有一定的規則,依照此規則就能導入,所需的Library

2. 安裝Cocoapods

打開終端機->輸入以下

sudo gem install cocoapods

設定pod

pod setup –verbose

成功會顯示 Setup completed

輸入pod –version

有返回版本號代表設置完成

到此就安裝完囉

使用CocoaPods

.xcwordkspace是CocoaPods的使用時會生成的,要用此開啟專案,才會使用CocoaPods

生成.xcwordkspace方法如下

打開終端機,cd到專案路徑

之後輸入pod init

資料夾內就會出現Podfile

用XCode或文字編輯器打開它

platform :ios, ‘9.0’ 前面#拿掉,代表允許最小版本

use_frameworks!下面輸入

//使用預設版本
pod 'LabelSwitch'
//如果需要指定版本
pod 'LabelSwitch', '~> 0.1.6'
代表需要安裝'LabelSwitch'
然後儲存此文件檔案
終端機輸入pod install
就安裝完囉
之後專案由.xcwordkspace打開

XCode


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

XCode 語法快捷鍵設定與程式碼分離關注點

1. 簡介

寫程式時,常常會發生同樣的東西要輸入好幾次,在設定語法快捷鍵後,相同的程式碼,可以改成快捷鍵,這樣在撰寫程式時,可以省下不少時間

如果能讓程式碼分離關注點,會讓程式碼看起來更容易閱讀

2. 新增快捷鍵的方法

對選取的程式碼按右鍵 -> Create Code Snippet
自己新增的會放在User,點選Edit可以編輯他
上方MARK Comment是描述
語言Swift
且是iOS
在所有位置
輸入mark時,會出現中間的文字
中間文字輸入<#Section Heading#>會自動變成可以輸入的文字
如圖顯示

這樣快速指令就設定完囉

要甚麼快捷鍵,都可以依這方法操作

分離關注點方法

在XCode裡面,如果輸入

//MARK: -時,如下

點選XCode上方如圖
有MARK: -的會自動分割

因此可以利用extension 做程式碼的擴展

將繼承的Delegate各別寫成一個擴展

class ViewController: UIViewController {

}
//MARK: - ManagerDelegate
extension ViewController: ManagerDelegate {

}

如上程式碼,將ManagerDelegate 寫成一個擴展,所有有關ManagerDelegate 的都寫在此

UIViewController 做為主架構,不在多繼承其他Delegate

達到關注點分離,讓程式碼更容易閱讀


XCode


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Android Studio 語法快捷鍵設定

1. 簡介

寫程式時,常常會發生同樣的東西要輸入好幾次,在設定語法快捷鍵後,相同的程式碼,可以改成快捷鍵,這樣在撰寫程式時,可以省下不少時間

2. 新增快捷鍵的方法

File -> Setting -> Editor -> Live Templates

如果是Kotlin設定在AndroidKotlin裡面

如果是Java設定在Java裡面即可

本文以Kotlin為主

所以設定在Android Kotlin裡面

假設我要的固定格式如下

/**
* @param 引數資訊
* @return 返回資訊
* @throws 丟擲異常資訊
* @see 有的函式需要藉助其他類或者函式或者屬性,就用該標籤標識
* @Description 函式不建議使用,原因是
* @since 自哪個版本開始
* @author John
*/
新增一個專屬自己配置的群組
幫群組命名
在群組上新增Live Template
Abbreviation是輸入的快捷鍵
Description是描述
Template text是輸入快捷鍵後產生的文字
快捷鍵選擇使用的程式語言
輸入快捷鍵時,顯示的提示
按下Enter後直接跑出剛才設定的

還有一個快速引入參數的用法,如下

private const val KEY_$value$ = "$value$"

使用時,$value$是可以手動輸入的,當$value$輸入時,前後都會一起改變

如下圖

$value$可以自己設定,任何名字都可以

相同的名字輸入時,就會同時改變

這樣快速指令就設定完囉


Android Studio


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Sourcetree 使用GitHub版本管控

1. 簡介

Sourcetree是一個提供版本管控GUI介面,包含Git

提供Windows與MacOS兩個版本

Sourcetree網站下載:

https://www.sourcetreeapp.com/

本文章以Windows來介紹,他與GitHub之間如何使用

需準備GitHub帳號

GitHub網站:

https://github.com/

無法Push的問題,參考:
Sourcetree GitHub不接受帳戶密碼驗證解決方法

2. 建立GitHub專案

Repository name是這個Git的名稱

Description是描述專案內容

public是指公開的意思

Private是指私有的意思,使用必須登入帳號

Add a README file新增一個說明文件

Add .gitgnore新增一個過濾文件

Choose a license如果有用到License可以在此新增

都好了以後,按下Create repository

複製Git網址

將專案使用Sourcetree開啟

有兩個方法

  1. 使用上面複製的Git網址
  2. 連接GitHub帳號

使用Git網址方法如下

備註:此方法無法使用Private專案,會要求Login,密碼為Token

申請Token的方法,參考:

Sourcetree GitHub不接受帳戶密碼驗證解決方法

按下上方Clone -> 輸入網址以及存放位置 -> 按下下方Clone
按下左方History就會顯示與GitHub一樣的資訊囉
並且檔案也已經下載至剛才指定的本地路徑

連接GitHub帳號

注意: 密碼是Token
成功後會出現綠色勾勾
帳號連接成功後,按下Refresh即可刷新
並會出現GitHub所有專案(包含Private)
滑鼠右鍵->Clone

Sourcetree介面

左側的BRANCHES是指本地的分支名稱

左側的REMOTES是指遠端的代表名字

中間的main代表本地這個版本main持有

中間的origin/main代表遠端這個版本origin/main持有

origin/HEAD代表遠端起始HEAD,一般不會去動他,保持遠端有最初始的版本

中間main左邊的空心球,代表本地的HEAD,指本地當前使用的版本

可以使用滑鼠右鍵Checkout…或雙擊兩下切換本地HEAD

中間的Inital commit是此版本的描述

下方的+ .gitgnore代表此版本新增了這個檔案

滑鼠右鍵,可以針對這個版本做一些動作

Tag…代表為此新增標記

打勾Push tag可以同步origin遠端
沒勾代表只有本地新增Tag
新增Tag後
GitHub跟著同步Tag

Archive…代表備份當前選擇的

Archive file代表儲存的檔案路徑
Folder prefix代表打包後,包起來的資料夾名稱

Branch…代表新增分支

new Branch代表新分支名稱

Checkout New Branch代表新增後以他為準做控制

有資料夾內有檔案變化時

Staged files代表準備要Commit的檔案,可以點右邊的-號,就會自動跑至Staged files

Unstaged files代表尚未加入要Commit的檔案,可以點右邊的+號,就會自動跑至Staged files

對檔案右鍵->Remove會從資料夾中被刪除

對檔案右鍵->Discard會從資料夾中被還原成未修改前的檔案(檔案本身就存在,但內容被修改時)

打勾下方的Push代表,Commit後會把當前檔案Push至遠端,並新增新的版本

不勾只會本地新增新的版本,遠端依然是舊的

當Staged files有檔案後,可以按左上角Commit,會轉到此畫面

切換分支

這樣本地和遠端都成功同步版本囉


Sourcetree


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Sourcetree GitHub不接受帳戶密碼驗證解決方法

1. 問題

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

2. 官方訊息

裡面其中一項,不受此更改影響
如果帳戶啟用了雙重身份驗證,使用基於令牌或 SSH 的身份驗證

本文章以此方法來解決

申請雙重認證

GitHub官網:

https://github.com/

手機App下載 Google Authenticator,然後用此App掃描QRCode

之後會在此生成一組限時的密碼,將此輸入

成功後的畫面
避免手機App被移除或手機遺失
在此新增一組自己的電話,收簡訊認證

接下來又符合雙重認證的條件了

申請Token令牌

按下Generate new token
新增Note註解,設定Token存活時間
根據自己的需求勾選權限,之後按Generate token
完成後會出現一組Token,請妥善保管,只會顯示這一次
如果忘記,需要重新申請,這組就必須要刪除了

到此GitHub前置作業就完成囉

Sourcetree使用方法

有兩種方式可以使用

方法1(較不推薦)

Clone的時候格式如下

https://<token>@<git_url>.git

例如

網址為https://xxxx.git

toekn為ghp_ZGGGGqXi2nyRRRRRRRRw0qw1KKKK

clone時

https://ghp_ZGGGGqXi2nyRRRRRRRRw0qw1KKKK@xxxx.git

此方法有一個缺陷,必須要提供給別人token才能夠正常Push檔案

方法2(推薦)

曾經已經安裝過sourcetree,且已經有Login過帳號的人

就算移除Sourcetree重新安裝,依然會有問題,解決方案如下

先關閉Sourcetree

至C:\Users\<使用者帳號>\AppData\Local\Atlassian\SourceTree

刪除passwd檔案

重新打開Sourcetree,此時Push檔案時,會跳出下圖

Username是帳號
Password是剛才申請的Token

Login後就可以正常使用囉

如果還是不行,刪除passwd檔案,重新Clone,再測一次


Sourcetree


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Windows 使用Visual Studio Code方法

1. 簡介

Visual Studio Code簡稱VSCode

是用來閱讀源碼的好工具,跨平台Windows、macOS、Linux都可以使用

2. 環境設定

以下介紹如何編譯MinGW、Clang、LLVM的環境設定

首先下載本體:

https://code.visualstudio.com/

MinGW與Clang環境設定

再來下載編譯環境的工具(以下網址為Windows編譯工具):

https://winlibs.com/

此文章使用黃色選取的版本
下載後解壓縮,像此圖一樣

接下來設定環境變數

Windows旗子右鍵
->設定
點擊進階系統設定
Path雙擊兩下
新增C:\mingw64\bin

設定好後,打開Windows PowerShell輸入

g++ –version
clang –version

此時會返回版本號,如果沒有注意環境變數與解壓縮的路徑是否一致

到此MinGW、Clang已經建立好環境了

MSVC環境設定

下載Visual Studio 2022,下載社群版,免費的就好

https://visualstudio.microsoft.com/zh-hant/downloads/

安裝時,開發桌面C++要打勾

安裝後,打開Developer Command Prompt for VS 2022

輸入cl.exe

如果此指令可以使用,代表環境也建立好了

到此

MinGW、Clang LLVM、MSVC三個環境皆建立完成

3. VSCode環境設定

打開VSCode,並且按下左邊第五個(Ctrl+Shift+X)

安裝Chinese (Traditional) Language Pack for Visual Studio Code VSCode工具就會變成繁體中文

繁體中文(可安裝可不安裝)

安裝C/C++ Extension Pack

到此環境就安裝好了

4. VSCode編譯C++

這裡會使用MinGW、Clang LLVM、MSVC這三個編譯C++

MinGW編譯

label是幫這個task命名,可以不改
-std=c++20是把版本設定成C++20


到此MinGW就可以運行囉

Clang LLVM編譯

與MinGW設定方式一樣

唯一不一樣,這裡選擇clang++.exe

MSVC編譯

此處比較不一樣

先把VSCode關掉

打開Developer PowerShell for VS 2022

切換到要編譯的資料夾

輸入: dir (檢查一下,是否是自己要的路徑)

確定後輸入: code .

(.要記得輸入)

此時他會"自動"運行VSCode,並且導入MSVC的環境變數

“/std:c++latest"是設定為最終版本的C++

訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Android Studio運行main編譯錯誤問題?

問題

當執行public static void main(String[] args)時,報出以下錯誤訊息

SourceSet with name ‘main’ not found.

解決方法

如下,新增下面那行即可編譯

<option name="delegatedBuild" value="false" />


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

Android Studio 使用Gradle生成jar與aar

jar與aar差異

jar僅能含java class不能含有資源

aar除了java class外,還可以包括資源在內

一個library如果要編譯成aar,不能implementation aar,否則會編譯失敗,但可以含有jar

生成jar

  • 打開專案Gradle
  • 在Gradle內將
//id 'com.android.application'註解
id 'com.android.library'改為這個
//applicationId 'com.xxx.xxx'這個也註解
  • 在Gradle最下方新增下方程式碼
task deleteJar(type: Delete) {
    delete 'libs/commonTest.jar'
}


task createJar(type: Copy) {
    from('build/intermediates/compile_library_classes_jar/release/')
    into('libs/')
    include('classes.jar')
    rename('classes.jar', 'commonTest.jar')
}

createJar.dependsOn(deleteJar, build)
之後點選Sync Now
  • 再來打開右方Gradle,點選createJar
雙擊兩下執行

備註:這裡需要使用Tasks,如果找不到Tasks
參考這個文章Android Studio 右側Gradle Tasks選項消失?

  • 執行完後會在app/libs下方生成
這樣就成功編譯出Jar囉

備註:刪除jar一樣,找到deleteJar雙擊兩下執行,就可以囉

生成aar

  • 打開專案Gradle
  • 在Gradle內將
//id 'com.android.application'註解
id 'com.android.library'改為這個
//applicationId 'com.xxx.xxx'這個也註解
點選兩個其中一個
會在此生成aar


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

透過 WordPress.com 建置的網站.

向上 ↑