酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

CocoaPodsを使ってEmbedded Frameworkにライブラリを追加したらiTunes Connectからリジェクトされる

CocoaPodsを使ってEmbedded Frameworkにライブラリを追加したらiTunes Connectからリジェクトされてしまった。

問題は解決していないので寝る前にメモを残しておきたいと思います。解決でき次第、追記するかもしれません。

やりたいこと

  • jsonをダウンロードしてパースして、その情報をアプリとTodayに表示したい
  • サードパーティーライブラリ(RealmSwift, SDWebImageなど)の管理はCocoaPodsでやっている
  • データの管理部分をアプリ本体とApp Extension(Today Extension)とで共有したい(それぞれ別個でデータを持ちたくない)
  • 処理の共有のためにEmbedded Frameworkを使っている

Podfile

platform :ios , '8.1'
frameworks!

link_with 'TodayExtension'

pod 'RealmSwift'
pod 'SDWebImage'

target :ikatomo do

    pod 'UIDeviceIdentifier', :git => 'https://github.com/squarefrog/UIDeviceIdentifier.git'

end

問題

実機ビルドしてValidateをパスしたので、iTunes Connectにアップロードするとリジェクトされる。

f:id:ch3cooh393:20151228014028p:plain

このエラー画面からコピペできないので手打ちした。

ERROR ITMS-90205: "Invalid Bundle. The bundle at 'ikatomo.app/PlugIns/TodayExtension.appex' contains disallowd nested bundles."

ERROR ITMS-90206: "Invalid Bundle. The bundle at 'ikatomo.app/PlugIns/TodayExtension.appex' contains disallowd file 'Frameworks'"

CocoaPodsの方でもIssueが上がっていた。多分同じ問題だと思う。

経緯

アプリ側でRealmSwiftを使っていてデータ管理がうまく動いていたので、Today Extensionでも同じ処理を使わせようと、Embedded Frameworkにまとめてビルドを通すようにした。

iTunes Connectでリジェクトされてしまうようになってしまった。

appex contains disallowed file 'Frameworks' (cocoapods 0.39.0.beta.4) · Issue #4203 · CocoaPods/CocoaPods · GitHub 」を参考にして、Embed Pod Frameworksを消したら、ERROR ITMS-90205のエラーが消えた。