LoginSignup
2
2

More than 3 years have passed since last update.

はじめに

個人アプリ作成時にLINEログイン機能を実装したので、
備忘録がてらコマンドの共有をさせていただきます。

GitHubにコードを載せていますのでぜひご覧ください。
-> https://github.com/onishi-app/LINELogin

環境
・Apple Swift version 5.3
・XCode version 12.3
・LINE Developers 5.2

完成形

ezgif.com-gif-maker.gif

実装方法

実装方法について1から説明していきます。

下記サイトを参考に機能を実装してので皆さんも参考にしていただければと思います。
-> 参考サイト

基本的にこちらを参照すれば作成出来ると思いますが
私が作成した時の流れも下に記載しておきます。
(Developerにチャネルを追加する流れやエラーの対処など)

LINE Developers

まずはじめに、LINE Developerにアクセスします。
右上のログインから自分のLINEアカウントにログインします。
スクリーンショット 2021-01-11 8.53.55.png

下にスクロールし、新規プロバイダーを作成します。
スクリーンショット 2021-01-11 8.53.58.png

適当な名前でいいのでプロバイダーを作成します。
スクリーンショット 2021-01-11 8.54.08.png

するとプロバイダーが作成されるので、
作成されたプロバイダーからLINEログインチェネルを作成します。
スクリーンショット 2021-01-11 8.54.21.png

必要な項目を入力しチャネルを作成します。
作成するとチャネルIDが定義されます。
スクリーンショット 2021-01-11 8.56.41.png

チャネルを作成後にアプリのbundle IDを入力する必要があるので、
LINEログイン機能を実装するアプリを作成します。

bundle IDは下画像のBundle Identifierがbundle IDが記載されています。
スクリーンショット 2021-01-11 9.05.30.png

チャネルのタブをLINEログイン切り替えると、iOSバンドルIDを記入する箇所があるので、
そこに先ほど作成したアプリのbundle IDを入力します。
スクリーンショット 2021-01-11 9.06.20.png

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 ・・・に
ドラッグ&ドロップします。
スクリーンショット 2021-01-11 11.33.59.png

先ほどGeneralを選択していましたが、
Build Phasesを選択し、からNew Run Script Phaseを選択します。
スクリーンショット 2021-01-11 11.39.10.png

作成されたされた Run Script に下記の3つを追加します。
/usr/local/bin/carthage copy-frameworks
$(SRCROOT)/Carthage/Build/iOS/LineSDK.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/LineSDK.framework

追加する場所は下画像を参考にしてください。
スクリーンショット 2021-01-11 11.49.08.png

Info.plist

アプリにInfo.plistファイルが作られているはずなので、
controlキーを押しながらクリック > Open As > Source Code の順に選択します。
スクリーンショット 2021-01-11 11.59.20.png

以下のスニペットを最後のタグの直前に挿入します。


<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>

追加するとこんな感じです。
スクリーンショット 2021-01-11 12.03.11.png

iOSアプリにLINEログインを組み込む

インストールなどは行えたので、次に組み込み作業を行います。
参考にした記事はコチラです。

コードを書くだけなので参考サイトと同じ内容しか書くことができないため省略します。

さいごに

なかなか大変な工程でしたがなんとかログインできました。

私が遭遇したエラーについてはある程度記述しましたが、
もしかしたらこの記事以外のエラーが発生するかもしれません。

エラーが発生したので諦めるのではなく、
エラーの文章で検索をかけて見てください!意外と出てきます!(笑)

以上、最後までご覧いただきありがとうございました。

参考

インストール方法
インストール時エラー:ユーティリティ不明
インストール時エラー:アーキテクチャ重複回避策
組み込み関連
コンパイル時エラー(Multiple commands produce)
コンパイル時エラー回避策実施後に出たエラーに対する対処
-> ファイル「XXX.entitlements」を開ませんでした。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2