2018-06-05 App Store ガイドライン 大幅更新 超ざっくりまとめ

英語版です。
変更箇所があまりにも多いので、今回は単語の変更や、細かい表現は省略しました。


・序文の最後の言葉が追加されました。

アプリに入れているライブラリ(解析ツール、広告、SDK)も審査対象だから厳密に見ますよ、とのこと。


・iTunes Connect の名称が App Store Connect に変更


・変更 1.5 Developer Information

開発者の連絡先を明確化しなさい。


・追加 1.6 Data Security

収集したユーザーデータは厳密に管理しなさい。


・2.3.6 変更 (2.3 Accurate Metadata)

地域に応じてアプリの年齢制限を考えなさい


・ 文末変更 2.3.7(2.3 Accurate Metadata)

メタデータのキーワードを削除するだけでなく、適切な処置をとらせてもらうぞと脅しの言葉を追加


・追加 2.3.12 (2.3 Accurate Metadata)

新着情報には正しい情報を書きなさい。


・変更 2.4.2 (2.4 Hardware Compatibility)
こっそりマイニングの明示的な禁止


・変更 2.4.4 (2.4 Hardware Compatibility)

再起動要求だけでなく、Wifiなどの機能を無効化を要求することも禁止。


・一文追加 2.5.2 (2.5 Software Requirements)

アプリの完全性について厳格化


・追加 2.5.14 (2.5 Software Requirements)

デバイスのマイクとかカメラの使用時にユーザーの確認をとること。


・追加 2.5.15 (2.5 Software Requirements)

ファイル選択画面ではiCloudを選べるようにする必要がある!?(ちょっと不明)


・大幅変更 3.1.1 In-App Purchase:

コンテンツコードの解放を禁止


・文章追加 3.1.1 In-App Purchase:


・文章追加 3.1.2(a) Permissible uses: (3.1.2 定期購読)

定期購読の無料期間可能


 

・細分化 3.1.3 Content-based “Reader” Apps
読み直し必要。


・序文削除 3.1.4 Content Codes

コンテンツコードの表現が消えて3.1.1に移動


・3.1.5 (b) Cryptocurrencies: 大幅変更 細分化

銀行、仮想通貨関係の規約が細分化


・追加 3.1.7 Advertising:

広告の扱いが厳密化。悪質広告は規制する。


・追加 3.2.2 Unacceptable (ix)

アプリ評価の強制の禁止


・細分化 4.2.3 (4.2 Minimum Functionality)

アプリの完全制に関する項目の細分化
追加コンテンツはDLサイズを明示的に示せ。2019/1/1より


・追加 4.2.7 Remote Application Mirroring:

ミラーリングアプリについて厳格化


・一文追加 4.5.4 Push Notifications

プッシュ通知の悪質な利用について、脅しの文句が追加


・追加 4.5.6 (4.5 Apple Sites and Services)

アップルのサイトには絵文字とか使ってるから、別プラットフォームでは表示できないかもしれませんよ


・変更 4.7 HTML5 Games, Bots, etc.

HTML5ゲームはWebViewを改造するな。
レビュアーがチェックできるURLとApple Developer Program Team IDを提出しなさい


・単語変更 5.1 Privacy

プライバシー保護のために、法律やガイドラインだけでなく、ベストプラクティスを考えなさいという変更


・大幅変更 5.1.1 Data Collection and Storage 付随項目も順番が変わっているので見直す必要あり


・大規模変更 5.1.2 Data Use and Sharing 全見直しの必要あり


・単語追加 5.1.4 Kids

子供のプライバシー保護に欧州ルールと地域の同等のルールに従うことが追加


・変更 5.1.5 Location Services

バックグラウンドという表現が消失
バックグラウンドでなくても位置情報をとっていたら説明しないといけない。


・序文変更 5.4 VPN Apps

VPNサービスを提供するアプリケーションは、NEVPNManager APIを利用する必要があり、組織として登録された開発者のみが提供することができます。


・追加 5.5 Developer Code of Conduct

デベロッパーはモラルを守れ、アプリで悪い事したり値段を高くしたりするな


・序文変更 After You Submit

審査はがんばりますが、時間がかかりますよ、と言い訳が増加。ガイドライン違反を繰り返すともっと時間がかるようになるぞ、と脅し。

おすすめ書籍 UNIXという考え方

UNIXの設計思想が学べる本ですが、UNIXの基礎知識がなくても読めます。
むしろ基礎知識は無いほうがいいかもしれません。

エンジニアのあるべき姿を教えてくれるような内容で、道標のような本です。
これはUNIXやLinuxの入門書ではありません。でも、入門前に読むとUNIXの印象が変わって知識を吸収しやすくなるのではないでしょうか?

こちらも会社に一冊置いておくべき本でしょう。

 

おすすめ書籍 プリンシプル オブ プログラミング

プログラミングのテクニックを101個紹介した本です。
複数の書籍からいいとこ取りしたような本なのですが、ちゃんと出典も書かれています。(出典のない本は個人的には好きではありません。)

会社に1冊は置いておき、みんながそれぞれ思ったことを書き込んでいったらいいと思います。

この本を買っておけば間違いないです。

おすすめ書籍 リーダブルコード

ちょっと前の本になりますが、名著です。
新人プログラマーには読むことをおすすめしている本です。

読みやすくて、メンテナンスのしやすいコードを描くためのノウハウが詰まっています。また、そのノウハウをつかってこの本が書かれているため、これ自体もとても読みやすいのです。

看板に偽りなしの名著、リーダブルコード。オススメです。

Amazonに中古も出ているのですが、ほとんど安くなっていません。
中古が値下がりしないのは名著の証です。

 

[iOS]エラー対応 Provisioning profile “pp” doesn’t include the currently selected device “device”.

Provisioning profile “PROVISIONING PROFILE NAME” doesn’t include the currently selected device “IPHONE NAME”. (in target ‘APPNAME’)

原因
端末のUUIDをプロビジョニングプロファイルに登録するのを忘れていた。

“[iOS]エラー対応 Provisioning profile “pp” doesn’t include the currently selected device “device”.” の続きを読む

[iOS] TestFlight テストフライト の 審査 についての問題

現在、テストフライトの外部テスター機能を使ってユーザーに配布しているが、大きな軌道修正があり、アプリのデザインが大きく変わってしまった。
この場合、次のテストフライトの作業として正しい行動はどれか?
ただし、このアプリは、まだリリースされていないものとする。

1.そもそもテストフライトに審査は無いので、なにも考慮する必要はない。
2.App Store Connectのアプリレコードを一旦削除して、新しいアプリとして作り直す必要がある。
3.テストフライトのテストユーザーへのコメント欄に、変更箇所を書く義務がある。
4.テストフライトの再審査が必要。

“[iOS] TestFlight テストフライト の 審査 についての問題” の続きを読む

[Android]エラー対策 ‘S’ is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore

‘S’ is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore

“[Android]エラー対策 ‘S’ is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore” の続きを読む

[Android]エラー対策 Android (app) has already been disposed (see the cause for stacktrace) so the child Sorry but parent: Android (app) has already been disposed (see the cause for stacktrace) so the child: {} will never be disposed

全文
Android (app) has already been disposed (see the cause for stacktrace) so the child
Sorry but parent: Android (app) has already been disposed (see the cause for stacktrace) so the child: {} will never be disposed

“[Android]エラー対策 Android (app) has already been disposed (see the cause for stacktrace) so the child Sorry but parent: Android (app) has already been disposed (see the cause for stacktrace) so the child: {} will never be disposed” の続きを読む

[Android]エラー対策Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’. Could not expand ZIP

・Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’.
> Could not expand ZIP ‘C:\Users\username\.android\build-cache\xxxxxxxxxxxxxxxxxxxxxxxx\output\jars\classes.jar’.

“[Android]エラー対策Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’. Could not expand ZIP” の続きを読む

[Android]エラー対策 Warning:The project encoding (windows-31j) does not match the encoding specified in the Gradle build files (UTF-8).

Warning:The project encoding (windows-31j) does not match the encoding specified in the Gradle build files (UTF-8).
This can lead to serious bugs.

警告:プロジェクトのエンコーディング(windows-31j)が、Gradleビルドファイル(UTF-8)で指定されたエンコーディングと一致しません。
これは深刻なバグにつながる可能性があります。

“[Android]エラー対策 Warning:The project encoding (windows-31j) does not match the encoding specified in the Gradle build files (UTF-8).” の続きを読む