4

領収書の検証に頭を悩ませています。

証明書が有効かどうかを検証する段階にあり、ASN1 ファイルを解析する必要があります。

Apple は、次のように asn1c を使用することをお勧めします。

 #include "Payload.h" /* This header file is generated by asn1c. */

 void *pld = NULL;
 size_t pld_sz;

 Payload_t *payload = NULL;
 asn_dec_rval_t rval;

 rval = asn_DEF_Payload.ber_decoder(NULL, &asn_DEF_Payload, (void **)&payload, pld, pld_sz, 0);

https://github.com/vlm/asn1cから asn1c-master.zip を既にダウンロードしています。

このライブラリを Xcode にインストールする方法がわかりません。追加の作業が必要な場合、または asn1c をインストールした後に Apple の例として開始できますか?

手伝ってくれてありがとう。

編集 :

INSTALL ファイルの指示に従って実行します: asn1c-master ファイルで、ターミナルで実行します:

./configure
make
make check
make install

その後、別のフォルダー ファイルを作成し、receipt.asn1このテキストを追加します。

 ReceiptModule DEFINITIONS ::=
 BEGIN

 ReceiptAttribute ::= SEQUENCE {
     type    INTEGER,
     version INTEGER,
     value   OCTET STRING
 }

 Payload ::= SET OF ReceiptAttribute

 END

その後、私は走ります

asn1c -fnative-types receipt.ans1

しかし、私は腹を立てました:

-fnative-types: Deprecated option
ASN.1 grammar parse error near line 1 (token "{"): syntax error, unexpected '{', expecting TOK_typereference or TOK_capitalreference
Cannot parse "receipt.asn1"
4

1 に答える 1

3

http://github.com/vlm/asn1c/blob/master/INSTALLの指示に従った後

新しいディレクトリ (つまり、Mac OS X フォルダー) で次の操作を行います。

# Terminal command line from: https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateLocally.html#//apple_ref/doc/uid/TP40010573-CH1-SW3
asn1c -fnative-types receipt.ans1
# the file receipt.ans1 has contents from Listing 1-1 in the above URL

# converter-sample.c has a main. Don't want that!
rm converter-sample.c

rm Makefile.am.sample

次に、結果の .c および .h ファイルを Xcode グループにドラッグしてください。Mac フォルダーをプロジェクトに直接配置しないでください。そうしないと、.c および .h ファイルがプロジェクトに追加されません。したがって、それらはビルドされず、リンカー エラーが発生します。

于 2014-03-29T17:41:32.313 に答える