ラベル リジェクト の投稿を表示しています。 すべての投稿を表示
ラベル リジェクト の投稿を表示しています。 すべての投稿を表示

2020年4月18日土曜日

アカウントの調査中という理由でiOSアプリがリジェクトされた

2020年4月9日にApp Store ConnectでiOSアプリをAppleの審査に提出した。

最近は1日か2日で審査が終わるのに、このときは5日程経過しても審査が始まらず新型コロナの影響でApple側の体制が整っていないのかと思っていた。

一週間経過した2020年4月16日にリジェクトされ、以下のようなメッセージが届いた。


Hello,

We are unable to continue this app’s review because your Apple Developer Program account is currently under investigation for not following the App Store Review Guidelines’ Developer Code of Conduct.

Common practices that may lead to an investigation include, but are not limited to:

- Inaccurately describing an app or service
- Misleading app content
- Engaging in inauthentic ratings and reviews manipulation
- Providing misleading customer support responses
- Providing misleading responses in Resolution Center
- Engaging in misleading purchasing or bait-and-switch schemes
- Engaging in other dishonest or fraudulent activity within or outside of the app

During our investigation, we will not review any apps you submit. Once we have completed our investigation, we will notify you via Resolution Center.

We do not require any additional information from you at this time, nor do we have any additional details to share. We appreciate your continued patience during our investigation.

Best regards,

App Store Review


ネットで調べた結果、どうやらアカウントの調査に一ヶ月くらいかかり、その間何もできることがないらしい。

そして、リジェクトされたアプリをApp Store ConnectのマイAppから削除し、全く同じ内容を新しいアプリとして提出したら通ったとの情報があり、それを試すことにした。

すると、今度は提出したその日の夜に直ぐ審査が始まり普通に通った!

というわけで、このようなリジェクトをされた方は面倒ですが一度アプリを削除して新しいアプリで再提出してください。

その際、削除したバンドルIDは同じものが使えないので、新しいものを作成する必要があるので注意してください。

2014年3月2日日曜日

類似アプリはリジェクトされるのか?

App Storeのレビューガイドラインにこんな記述があります。
「虚偽の記載や不正、不当な表示、類似するアプリや名前、アイコンの使用はリジェクトされます」
さて、類似するアプリとはどの程度まで許容されるのでしょうか?

ワタクシ事ですが、アプリを開発中にあるアイディアが浮かびました。
そのアプリはアルファベットをタップして英単語を作るパズルゲームでした。
「これ、アルファベットを数字に変えれば計算パズルにもできる!」

ゲームとしてのインターフェースや操作方法はそのままで良さそうなので、作っているアプリを再利用して工数を少なく新作ができそうなアイディアでした。
私はプログラマーでデザイン系の素材を用意するのがとても大変なので、それもそのまま再利用してしまおうと考えました。
そうするとほぼ見た目は同じで内容が少しだけ違うアプリが2つ出来上がることになります。
そこでふと頭をよぎったのが冒頭のアップルの規約です。

2つのアプリがどこまで類似しているのか比較してみます。
まずはメインのゲーム画面です。

えいたんご
あんざん!

左が英単語パズル「えいたんご」
右が暗算パズル「あんざん!」

マスコットキャラの位置が違ってたりしますが、基本的にアルファベットと数字が違うだけで後はほとんど一緒です。

次にタイトル画面も見てみましょう。

えいたんご
あんざん!
リンクとボタンの違いはありますが、その他のデザインは一緒です。

さらにアイコンはこんな感じです。


えいたんご
あんざん!

もはや紛らわしいというレベルですね。

ゲームの遊び方もほとんど一緒です。

えいたんご
あんざん!
『えいたんご』はアルファベットをタップして英単語をつくる
『あんざん!』は数字をタップして計算式をつくる

ここまで類似していて果たして大丈夫なのでしょうか。
結論は、全く問題なくリリースできました

ここで誤解が無いように補足しますが、あくまでこれは同一作者のアプリだということです。
他人のアプリをパクっても問題ないということではありませんのであしからず。

最後に実際にアプリを見てどこまで類似しているのか確認してみたい方は以下からダウンロードしてみてください(無料アプリです)。


 えいたんご (無料アプリ)
http://itunes.apple.com/jp/app/eitango/id770302074





あんざん!(無料アプリ)
http://itunes.apple.com/jp/app/anzan/id815969606

2014年3月1日土曜日

IDFA(advertisingIdentifier)「PLA 3.3.12」リジェクトとの闘いの軌跡

IDFA(advertisingIdentifier)「PLA 3.3.12」リジェクトとの闘いの軌跡


二度リジェクトされた私はこうして審査を通過しました



今、iOSアプリ開発者の間で最もホットな話題かもしれないIDFAリジェクト問題。
私もそれで二度リジェクトされましたが、つい先日何とか審査を通過しました。
そこで、他の開発者たちの参考になればとどのような経過を辿ったのかをまとめます。


事の起こり


リジェクト

2014/2/11にアプリの申請を行い、2/19に「In Review」となったのですが審査の結果「App Submission Feedback」、以下の理由でリジェクトされたのです。


Resolution Centerからのメッセージ

==============================================================

Reasons

Program License Agreement


PLA 3.3.12

We found your app uses the iOS Advertising Identifier but does not include ad functionality. This does not comply with the terms of the iOS Developer Program License Agreement, as required by the App Store Review Guidelines.

Specifically, section 3.3.12 of the iOS Developer Program License Agreement states:

"You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier."

Note: iAd does not use the AdSupport framework, ASIdentifierManager, or the Advertising Identifier. Therefore they are not required for iAd implementations and should not be included in your app for iAd support. 

Please check your code - including any third-party libraries - to remove any instances of:

class: ASIdentifierManager
selector: advertisingIdentifier
framework: AdSupport.framework

If you are planning to incorporate ads in a future version, please remove the Advertising Identifier from your app until you have included ad functionality.

To help locate the Advertising Identifier, use the “nm” tool. For information on the “nm” tool, open a terminal window and enter, “man nm.” 

If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool lists the methods that the library calls, and "otool -ov" will list the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.

==============================================================
私はここで初めて「PLA 3.3.12」「advertisingIdentifier」というキーワードを眼にしたのです。


一度目のリジェクト対策

調べてみると「advertisingIdentifier」いわゆるIDFAという広告識別子を広告以外の用途で使用してはならないとのこと。
2014年2月から新しくそのような規約「PLA 3.3.12」が追加された為に大量のリジェクトが発生していることが判明しました。

外部ライブラリに問題あり

私のアプリはAdMobメディエーションでNend、AdMob、iAdを切り替えて表示するようにしていますが、その広告以外でIDFAを使っている覚えがありませんでした。
よくよく調べてみると外部のライブラリで使用している場合があり、私の場合はアクセス解析の「Google Analytics」で使用されていることが分かりました。
他にも効果測定計のモノやあんまり関係無さそうな「Unity」も引っかかるらしいです。

Google Analytics SDKの更新

私が使用していたのはv3(Beta)版で、ビルドするのに「AdSupport.framework」が必要でした。
この「AdSupport.framework」を広告用途以外で使用すると審査に引っかかる模様。
最新のv3.03aでは不要となっていたので、それに更新して2/19に再申請しました。



二度目のリジェクト

2/26にようやく「In Review」となったのですが、またも「App Submission Feedback」、リジェクト理由は以下でした。

Resolution Centerからのメッセージ(二度目)

==============================================================

Reasons

Program License Agreement
Thank you for contacting us.

We have verified that your app contains code that is accessing the Advertising Identifier, however, we did not see ads served in your app. As stated in section 3.3.12 of the iOS Developer Program License Agreement, an app must serve ads in order to use the Advertising Identifier:

“You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier.” 

We have seen this behavior in apps that include third-party libraries. These libraries are often analytics engines, ad engines, or other types of third-party services.

We require that you locate and remove this code prior to resubmitting, and recommend that you use the "nm" tool or the command line tools "strings" or "otool -ov" to find the following entities:

- class: ASIdentifierManager
- selector: advertisingIdentifier
- framework: AdSupport.framework

If you are unable to locate these entities, you may wish to work with an Apple Developer Technical Support engineer. 

If you believe your app is serving ads, please:

- ensure that you have tested your app on a device, not just the simulator, and that you have removed previous versions of your app prior to testing

- provide us the steps to locate ads in your app

==============================================================
前回と同じやんけ!



二度目のリジェクト対策


Resolution Centerに返答

広告を掲載しているので「AdSupport.framework」を使用していますが、問題ないはずです。
色々と調べている内にAppleは広告に使っていても「AdSupport.framework」を使っているアプリを闇雲にリジェクトしているという噂があり、どうやら私もそれをやられたようです。
私は怒りを抑えつつ、以下の文面でResolution Centerに返答しました。

返答内容

==================================
I have to display the ad.
So, I'm using "AdSupport.framework".
Are there any problems?
==================================
(広告を表示しています。)
(ですから、”AdSupport.framework”を使用しています。)
(何か問題ありますか?)
上記の意味で翻訳サイトを使った拙い英語で返答しました。
これについての返信は次の日2/27に来ました。


Resolution Centerからの回答

==============================================================

Program License Agreement

Thank you for your response.
However, as stated previously, the app should contain non iAds.
Please let us know if you have any other questions and thank you for your cooperation.

==============================================================
えーと、いいからiAdを消せってことでしょうか?
このメッセージを見た私は「どうせいっちゅうねん」と途方にくれました。


Resolution Centerに返答(二度目)

この後、色々と調べたのですがやはり問題ないはずです。
人によっては広告を表示したスクリーンショットの提出を求められたり、「再申請してくれ」といったら通ったという情報があったので、それらを盛り込んで再度2/27にResolution Centerへメッセージを投げました。
==============================================================
Please look at the screen shot.
I have display ads definitely like this.
Please try the examination again.

スクリーンショットを見てください。
このように間違いなく広告を表示しています。
もう一度審査をやり直してください。


==============================================================
  • 問題ないという証拠としてのスクリーンショットの提示
  • 「再審査をしてくれ」というはっきりとした要求
  • 英語ではニュアンスが違うかも知れないので日本語も併記
一度目を踏まえて上記を盛り込んだメッセージを送りました。
返答はまたしても翌日の2/28、この辺りの非効率さ加減もイライラします。


審査通過

2/28未明にResolution Centerから返答があったようですが、内容は確認できませんでした。
なぜなら、そのあと直ぐにステータスが「In Review」となり速攻で審査を通過していて、朝確認したときには「Ready for Sale」となっていました。
そのときにはもうResolution Centerとのやり取りが見られなくなっていました。
審査は通過したのですが、なんだかモヤモヤが残るあっけない幕切れでした。



闘いを終えて

二度目のリジェクトを食らったときはさすがに参りましたが、ネットに情報を公開している方々のおかげで何とか乗り越えることができました。
なので、今回の私の出来事をここに記すことによって誰かのお役に立てれば幸いです。



二度のIDFAリジェクトを乗り越えたアプリ

ということで3/1に無事アプリをリリースしました。
タップで計算式を作って暗算する知育系アプリです。
あなたの脳偏差値はいくつかな?