不合格理由
アプリがカメラ機能を使用するにもかかわらず xxx-Info.plist にカメラ機能を使用する理由の記載(NSCameraUsageDescription)がない。
カメラ機能を明示的には使用していないケースであっても、OpenCV(opencv2.framework)を組み込むとカメラ機能を呼び出す(ことができる)バイナリ・オブジェクトがアプリに含まれてしまう。
アプリがカメラ機能を使用するにもかかわらず xxx-Info.plist にカメラ機能を使用する理由の記載(NSCameraUsageDescription)がない。
カメラ機能を明示的には使用していないケースであっても、OpenCV(opencv2.framework)を組み込むとカメラ機能を呼び出す(ことができる)バイナリ・オブジェクトがアプリに含まれてしまう。
Objective-CからSwiftのクラスが参照できない。
Use of undeclared identifier 'xxx'
Objective-C(*.m, *.mm)において ProjectName-Swift.h をインポートしなければならない。
|
1 |
#import "MyProject-Swift.h" |
Objective-Cから参照するSwiftで実装するクラスは NSObject の派生クラスでなければならない。
|
1 2 3 |
class MyClass : NSObject { ... } |
ImageMagick の mogrifyコマンドを使う
|
1 |
$ mogrify -resize x240 *.png |
高さ240pxに解像度を一括変換する。
|
1 |
$ mogrify -format png *.jpg |
JPEGファイルをPNGファイルへ一括変換する。
|
1 |
enum { NO, GAIN, GAIN_BLOCKS }; |
ヘッダーファイル(*.hpp)において "Expected Identifier" が発生する。
直前のソースコードで以下の警告(Warning)が発生している。
|
1 2 3 |
#if defined(NO) # warning Detected Apple 'NO' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. #endif |
Apple (Xcode) が提供するヘッダーファイルにおいて "NO" が定義される前に、OpenCVのヘッダーファイルを先に読み込んで "NO;" を定義しなければならない。
続きを読む
2017年6月現在
OpenCV 安定板最新: 3.2.0 – Dec 23, 2016 released
2017年6月現在 Xcode 8.2.1, MacOS 10.11 (El Capitan) にてビルド成功
Dear developer,
We have discovered one or more issues with your recent delivery for “xxxxx”. To process your delivery, the following issues must be corrected:
Missing Info.plist key – This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team
アプリがカメラ機能を使用するにもかかわらず xxx-Info.plist にカメラ機能を使用する理由の記載(NSCameraUsageDescription)がない。
オブジェクトファイルのシンボルテーブルをダンプする
ipaファイルはzip形式で圧縮されている。拡張子をzipに変更するかuzipコマンドで直接展開することで中身を参照することができる。
|
1 |
$ unzip MyApp.ipa |
展開したPayloadの中をotoolでチェックする
|
1 |
$ cd Payload |
|
1 2 3 4 5 6 7 8 9 |
$ otool -hv MyApp.app/MyApp MyApp.app/MyApp (architecture armv7): Mach header magic cputype cpusubtype caps filetype ncmds sizeofcmds flags MH_MAGIC ARM V7 0x00 EXECUTE 76 7180 NOUNDEFS DYLDLINK TWOLEVEL BINDS_TO_WEAK PIE MyApp.app/MyApp (architecture arm64): Mach header magic cputype cpusubtype caps filetype ncmds sizeofcmds flags MH_MAGIC_64 ARM64 ALL 0x00 EXECUTE 76 7904 NOUNDEFS DYLDLINK TWOLEVEL BINDS_TO_WEAK PIE |
|
1 |
git log --grep <word> |
|
1 |
$ git log --grep "#1234" |
|
1 |
$ git log --all --grep "GPIO" |
|
1 |
$ git log -i --grep "code" |
|
1 |
$ git log -E --grep "c..e" |
|
1 |
$ git log -S"ErrorLog" |
|
1 |
git log --author <username> |
※ 部分一致可
※ author : 元々の編集作業を行ったユーザー。cherry-pick や rebaseの元(オリジナル)となるコミットを作ったユーザー。
|
1 |
git log --committer <username> |
※ 部分一致可
※ committer : コミットを作ったユーザー。編集作業をコミットとして反映したユーザー。
git commit でコミットを作ったときは author = committer となる。git commit --amend でコミットを作った(書き換えた)ときは author はそのまま。 committer は書き換えられる。git cherry-pick や git rebase でコミットを作ったときは author は元のコミットを踏襲する。 committer は書き換えられる。tigにおいて以下の警告(warning)が表示される。
|
1 2 |
tig warning: /usr/local/etc/tigrc:90: status-untracked-dirs has been renamed to status-show-untracked-dirs tig warning: Errors while loading /usr/local/etc/tigrc. |