表題通りのTIPS。
Fastlaneのソースコードを見れば分かるんだけどドキュメントに載って無くて面倒なのでメモ。
version
Fastlane 2.59.0
lane
これ。
Fastfile.rb
lane :fetch_should_update_pem_apps do
rows = []
index = 0
Spaceship::Portal.login('YOUR_ID', 'YOUR_PW')
Spaceship::Portal.select_team
Spaceship::Portal.app.all.collect do |app|
next if app.details.prod_push_enabled == true
next if app.details.features['push'] == false
p app.details.name
p "> app.details.bundle_id: #{app.details.bundle_id}"
p "> app.details.prod_push_enabled: #{app.details.prod_push_enabled}"
p "> app.details.features[push]: #{app.details.features['push']}"
p '------------'
index += 1
rows << [index, app.details.name, app.details.bundle_id]
end
table = Terminal::Table.new headings: %w[Index Target BI], rows: rows
if rows.count != 0
puts "\n #{table}".red
end
end
説明
app.details.prod_push_enabled
はPush通知のCertificateが設定されていないなどであればfalse
app.details.features['push']
はPush通知の設定がONであればtrue。
つまり、 Certificateが設定されていないけどPush設定がされてて、Push通知の送信をしたそうに見えるアプリ一覧が以下の様に出力されます。
+-------+----------------------------------------------------------------------------+-------------------------------------------------------------------------+
| Index | Target | BI |
+-------+----------------------------------------------------------------------------+-------------------------------------------------------------------------+
| 1 | hogeho hogeh | ffff.f.f..f |
| 2 | hogehoge | your.host
| 3 | aaaaaaa | your domain |
メモ
処理模索方法
spaceship exposes both the Apple Developer Center and the iTunes Connect API.
より、Spaeshipを使えば情報の一括取得が出来る。
必要な処理は、ソースコードとドキュメントを見ながら処理を模索できる。
今回のでいえば、
$ fastlane spaceship
Username: XXXXXXXXXXXXXXXXXXXx
[1] pry(#<Spaceship::Playground>)> all_apps = Spaceship::Portal.app.all
The current user is in 41 teams. Pass a team ID or call `select_team` to choose a team. Using the first one for now.
=> [#<Spaceship::Portal::App:0x2345524e5768>,
#<Spaceship::Portal::App:0x3fa26ef334fd4>,
...
[2] pry(#<Spaceship::Playground>)> app = Spaceship::Portal.app.find("me.aaaaa.fccccc")
な感じで、 Spaceship::Portal::App
のObject1であることが分かる。
で、ドキュメントから安全そうなメソッドを呼びまくる。
すると、ファイル名がついてエラーがでる。
[3] pry(#<Spaceship::Playground>)> app.update_service
ArgumentError: wrong number of arguments (given 0, expected 1)
from /Users/hogehoge/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/portal/app.rb:156:in `update_service'
あとはそのソースコードを見れば何を隠し持ってるかすぐわかる。
この方法でファイル探しまくってるけど、ググった方が早そうであればググっても良いと思います。
Gemfileを利用している場合は
これが必要な場合がある。
gem 'pry'
gem 'rb-readline'
-
RubyってObjectっていうんでいいんですかね? ↩