はじめに
個人アプリ作成時にLINEログイン機能を実装したので、
備忘録がてらコマンドの共有をさせていただきます。
GitHubにコードを載せていますのでぜひご覧ください。
-> https://github.com/onishi-app/LINELogin
環境
・Apple Swift version 5.3
・XCode version 12.3
・LINE Developers 5.2
完成形
実装方法
実装方法について1から説明していきます。
下記サイトを参考に機能を実装してので皆さんも参考にしていただければと思います。
-> 参考サイト
基本的にこちらを参照すれば作成出来ると思いますが
私が作成した時の流れも下に記載しておきます。
(Developerにチャネルを追加する流れやエラーの対処など)
LINE Developers
まずはじめに、LINE Developerにアクセスします。
右上のログインから自分のLINEアカウントにログインします。
するとプロバイダーが作成されるので、
作成されたプロバイダーからLINEログインチェネルを作成します。
必要な項目を入力しチャネルを作成します。
作成するとチャネルIDが定義されます。
チャネルを作成後にアプリのbundle IDを入力する必要があるので、
LINEログイン機能を実装するアプリを作成します。
bundle IDは下画像のBundle Identifierがbundle IDが記載されています。
チャネルのタブをLINEログイン切り替えると、iOSバンドルIDを記入する箇所があるので、
そこに先ほど作成したアプリのbundle IDを入力します。
LINE Developerはいったんここまでです。
次にターミナルを開きます。
※ CocoaPods と Homebrew をインストールしておく必要があるので
そちらのインストールを事前にお願いします。
CocoaPods
ディレクトリの移動を行います。
cd /**/**/**/アプリフォルダ
ターミナルの操作方法が分からない方は、
cdの後にFinderからアプリフォルダをドラッグ&ドロップすると自動で入力されます。
Podfileの作成を行います。
$ pod init
Podfileに下記内容を追記します。
(Finderからの操作でもviコマンドからの操作でも構いません。)
pod 'LineSDKSwift', '~> 5.0'
podのインストールを行います。
pod install
Carthage
Cartfileを作成し、編集します。
(Finderからの操作でもviコマンドからの操作でも構いません。
今回はviからの操作を記述しておきます。)
$ vi Cartfile
「 i 」を押すと編集モードになりますので
下記コマンドを入力後「 esc 」 -> 「 :wq 」を押します。
( vi コマンド 検索すると操作方法が出てくると思います。)
github "line/line-sdk-ios-swift" ~> 5.0
画面が戻ったらアップデートを行います。
$ carthage update line-sdk-ios-swift
この時、下記のエラーが出力される方は、コチラの記事を参考にしてください。
A shell task (/usr/bin/xcrun xcodebuild -workspace /Users/ryosuke/Desktop/project/LINELogin/Carthage/Checkouts/line-sdk-ios-swift/LineSDK.xcworkspace CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES -list) failed with exit code 72:
xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH
エラー対処後再度アップデートをお願いします。
私の場合は少し進みましたが、さらにエラーが発生しました。
下記エラーが出力された方はコチラの記事を参考にしてください!
記事の「How to make it work」から下の部分を行えば上手くいきます。
Build Failed
Task failed with exit code 1:
/usr/bin/xcrun lipo -create /Users/ryosuke/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/line-sdk-ios-swift/5.7.0/Build/Intermediates.noindex/ArchiveIntermediates/LineSDK/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/LineSDK.framework/LineSDK /Users/ryosuke/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/line-sdk-ios-swift/5.7.0/Build/Products/Release-iphonesimulator/LineSDK.framework/LineSDK -output /Users/ryosuke/Desktop/project/LINELogin/Carthage/Build/iOS/LineSDK.framework/LineSDK
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/4s/408j5zx12f1b7my_mjvm6xw80000gn/T/carthage-xcodebuild.FJHOKm.log
上手くいくと下記のようなログが出力されます。
MacBook-Pro:LINELogin ユーザ名$ carthage.sh bootstrap --platform iOS --cache-builds
*** Checking out line-sdk-ios-swift at "5.7.0"
*** No cache found for line-sdk-ios-swift, building with all downstream dependencies
*** xcodebuild output can be found in /var/folders/4s/408j5zx12f1b7my_mjvm6xw80000gn/T/carthage-xcodebuild.YksYHO.log
*** Downloading line-sdk-ios-swift.framework binary at "5.7.0"
*** Building scheme "LineSDKObjCBinary" in LineSDK.xcworkspace
*** Building scheme "LineSDKObjC" in LineSDK.xcworkspace
*** Building scheme "LineSDK" in LineSDK.xcworkspace
MacBook-Pro:LINELogin ユーザ名$
ディレクトリ内を確認するといくつかのファイルが作成されていると思います。
CartfileやPodfileが作成されていると思います。
LINELoginは、今回私が作成したアプリの名前になります。
$ ls -al
total 48
drwxr-xr-x 14 ******* staff 448 1 11 09:45 .
drwxr-xr-x@ 8 ******* staff 256 1 11 09:04 ..
-rw-r--r--@ 1 ******* staff 6148 1 11 09:32 .DS_Store
drwxr-xr-x 12 ******* staff 384 1 11 09:11 .git
-rw-r--r-- 1 ******* staff 0 1 11 09:19 5.0
-rw-r--r-- 1 ******* staff 40 1 11 09:44 Cartfile
-rw-r--r--@ 1 ******* staff 41 1 11 09:45 Cartfile.resolved
drwxr-xr-x 3 ******* staff 96 1 11 09:45 Carthage
drwxr-xr-x 8 ******* staff 256 1 11 09:04 LINELogin
drwxr-xr-x@ 5 ******* staff 160 1 11 09:10 LINELogin.xcodeproj
drwxr-xr-x@ 5 ******* staff 160 1 11 09:10 LINELogin.xcworkspace
-rw-r--r--@ 1 ******* staff 265 1 11 09:09 Podfile
-rw-r--r--@ 1 ******* staff 330 1 11 09:10 Podfile.lock
drwxr-xr-x 8 ******* staff 256 1 11 09:10 Pods
ターミナルを使うのはここまでになります!お疲れ様です。
LineSDK.frameworkファイルのリンク
ここまで上手くいくと、下記の階層にLineSDK.frameworkが作成されます。
プロジェクト > Carthage > Build > iOS > LineSDK.framework
それを、XCode > プロジェクト名 > General > Frameworks ,Libraries, and ・・・に
ドラッグ&ドロップします。
先ほどGeneralを選択していましたが、
Build Phasesを選択し、+
からNew Run Script Phaseを選択します。
作成されたされた Run Script に下記の3つを追加します。
・/usr/local/bin/carthage copy-frameworks
・$(SRCROOT)/Carthage/Build/iOS/LineSDK.framework
・$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/LineSDK.framework
Info.plist
アプリにInfo.plistファイルが作られているはずなので、
controlキーを押しながらクリック > Open As > Source Code の順に選択します。
以下のスニペットを最後のタグの直前に挿入します。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<!-- LINEからアプリに戻る際に利用するURLスキーマを追加 -->
<string>line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- アプリからLINEを起動する際に利用するURLスキーマを追加 -->
<string>lineauth2</string>
</array>
iOSアプリにLINEログインを組み込む
インストールなどは行えたので、次に組み込み作業を行います。
参考にした記事はコチラです。
コードを書くだけなので参考サイトと同じ内容しか書くことができないため省略します。
さいごに
なかなか大変な工程でしたがなんとかログインできました。
私が遭遇したエラーについてはある程度記述しましたが、
もしかしたらこの記事以外のエラーが発生するかもしれません。
エラーが発生したので諦めるのではなく、
エラーの文章で検索をかけて見てください!意外と出てきます!(笑)
以上、最後までご覧いただきありがとうございました。
参考
・インストール方法
・インストール時エラー:ユーティリティ不明
・インストール時エラー:アーキテクチャ重複回避策
・組み込み関連
・コンパイル時エラー(Multiple commands produce)
コンパイル時エラー回避策実施後に出たエラーに対する対処
-> ファイル「XXX.entitlements」を開ませんでした。