2019年10月28日月曜日

XcodeでTARGETを複数作ったら、ちゃんとPodfileで作ったターゲット分installしましょう的なお話

  • このエントリーをはてなブックマークに追加

タイトル通りな感じ。
今作っているものでfirebase使ってるし開発用とかでプッシュ通知とか考えるとどうしてもTARGETをわけてbudle idも変えておきたいなと。
ってな感じでTARGETもう一個作ってローカルでArchiveするともちろん問題なし。
ただしBitrise上でArchiveするとなぜかlibPods-targetname.aのlinkingが外れてる状態。

ということで今日はどうしてもlinkingが外れてしまうのはPodfileの書き方が悪いからちゃんとしましょう的なお話をば。

platform :ios, '10.0'

require_relative '../node_modules/react-native-unimodules/cocoapods'

target 'app' do
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge',
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTBlob',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
  ]

  ...

end

これはとりあえずReact Native使ったとき的な。
で、何もいじらずTARGETが一つならばこれで大丈夫。
だけどもう一個TARGETを作成してもPodfileの中身は変わらず。
なのでちゃんともう一個作ったTARGET分インストールコマンドを書きましょう的な。

platform :ios, '10.0'

require_relative '../node_modules/react-native-unimodules/cocoapods'

def install_pods
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge',
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTBlob',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
  ]

  ...

end

target 'app' do
  install_pods
end

target 'appDev' do
  install_pods
end

これでOK。
これでGitHubにアップしておけばBitriseでpod installするときに自動的にlinkingとかをしてくれる。
むしろこれを忘れるとpods関連のライブラリが読み込まれてないんだけど的な色々と問題がでる。

正直Xcode扱いたくない。
辛い。
最初はreact-native linkが問題起こしてるのかと思ったけどpodだったっていう。
しかも当初はTARGET一つでいいやと思ってたからこういう準備ができてなかったわけで。
でもローカルで動いてたのは手動でlinkingしてたからっていう。

だからちゃんとTARGETを増やしたらPodfileの中身も気をつけましょう的なみたいな。

1 件のコメント:

Adsense