6度目のリジェクト


本日、リジェクトされました。
日本史一問一答というアプリなんですが、
大幅リニューアルで便利な機能をアプリ内課金で追加できるようにしたんです。
ただ、なかなか通らない。。
実に6度目のリジェクトです。
2ヶ月間、モヤモヤしています。

しかも1回目のリジェクト理由と今回の理由が一緒です。
なんということでしょう。
どうなるのでしょう。
乞うご期待。

①Jun 6, 2014

We found that your app offers In-App Purchase(s) that can be restored but does not include a “Restore Purchases” feature to allow users to restore the previously purchased In-App Purchase(s), as specified in the “Restoring Purchase Products” section of the In-App Purchase Programming Guide
“Users restore transactions to maintain access to content they’ve already purchased. For example, when they upgrade to a new phone, they don’t lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button.”
To restore previously purchased In-App Purchase products, it would be appropriate to provide a “Restore” button and initiate the restore process when the “Restore” button is tapped by the user.


②Jun 13, 2014

2.2: Apps that exhibit bugs will be rejected
Thank you for resubmitting your app.
2.2
We found that your app exhibited one or more bugs, when reviewed on iPad running iOS 7.1.1 and iPhone 5s running iOS 7.1.1, on both Wi-Fi and cellular networks, which is not in compliance with the App Store Review Guidelines.
Specifically, after restoring, the purchased features did not function.
For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
– complete details of your rejection issue(s)
– screenshots
– steps to reproduce the issue(s)
– symbolicated crash logs – if your issue results in a crash log
If you have difficulty reproducing a reported issue, please try testing the workflow as described in https://developer.apple.com/library/ios/qa/qa1764/Technical Q&A QA1764: How to reproduce a crash or bug that only App Review or users are seeing.


③Jul 16, 2014

Reasons
2.25: Apps that display Apps other than your own for purchase or promotion in a manner similar to or confusing with the App Store will be rejected, unless designed for a specific approved need (e.g. health management, aviation, accessibility, etc.) or which provide significant added value for a specific group of customers
2.25
Your app displays apps, other than your own, for purchase or promotion. This is not in compliance with the App Store Review Guidelines.
Specifically, your app contains a section that includes 3rd-party apps from other developers. The attached screenshot has been provided to help show this issue.
It would be appropriate to remove this feature from your app to be in compliance with the App Store Review Guidelines.


④Jul 25, 2014

Reasons
Program License Agreement
Thank you for your response.
We continued our review, but we still could not observe any ads within your app. Also, the In-App Purchase was not showing. Please refer the attached screenshots.
In order for your application to be reconsidered for the App Store, please resolve the issues communicated and upload your new binary for review. We look forward to reviewing your revised app.


⑤Jul 23, 2014

Thank you for resubmitting your app.
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.
If 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 all previous versions of your app prior to testing
– Provide us the steps to locate ads in your app
If your app does not serve ads, 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, please see the nm man page.
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.


⑥Aug 1, 2014

Thank you for resubmitting your app. We verified the ads and IAPs within your app, but found the following issue.
We found that your app offers In-App Purchase(s) that can be restored but does not include a “Restore Purchases” feature to allow users to restore the previously purchased In-App Purchase(s), as specified in the “Restoring Purchase Products” section of the In-App Purchase Programming Guide
“Users restore transactions to maintain access to content they’ve already purchased. For example, when they upgrade to a new phone, they don’t lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button.”
To restore previously purchased In-App Purchase products, it would be appropriate to provide a “Restore” button and initiate the restore process when the “Restore” button is tapped by the user.