アプリ内購入詐欺の問題を修正するために Apple がリリースした新しいVerificationController.mクラスを実装しようとしています。
Apple によってリリースされたすべてのものと同様に、これはもう 1 つのあいまいで、不完全で、説明が不十分なドキュメントであり、誰もが回避/理解できない多くの空白と不明な点があります。
私はそれを実装しようとしていますが、コードの最後に次の 4 つのメソッドがあります。
- (NSString *)encodeBase64:(const uint8_t *)input length:(NSInteger)length
{
#warning Replace this method.
return nil;
}
- (NSString *)decodeBase64:(NSString *)input length:(NSInteger *)length
{
#warning Replace this method.
return nil;
}
#warning Implement this function.
char* base64_encode(const void* buf, size_t size)
{ return NULL; }
#warning Implement this function.
void * base64_decode(const char* s, size_t * data_len)
{ return NULL; }
Apple がコードの最後に C 関数を実装するのを怠っていたことがわかります。私の C/C++ 能力は悪臭を放つので、これら 2 つの関数を C/C++ で実装する必要があり、それらは char と void (???) を返さなければならないことがわかりました。他の人が SO でそれを行うルーチンを投稿しましたが、それらは Objective-C にあるか、char と void (??) を返していません。
注: これは私が抱えている別の問題です: Apple がこの形式で使用する場合、メソッドはどのように void を返すことができますか?
uint8_t *purchase_info_bytes = base64_decode([purchase_info_string cStringUsingEncoding:NSASCIIStringEncoding], &purchase_info_length);
uint8_t を返すべきではありませんか?
注2:私が抱えている別の問題は、Appleがbase64_encodeが必要であると言っていますが、提供されたコードでは使用されていないことです。彼らは悪いものを吸っていると思いますか、私の C/C++ の知識は本当に悪臭を放っています。
それでは、最初の質問に戻ります。宣言されたメソッドbase64_encodeおよびbase64_decodeの要件に従うジョブを実行できるメソッドを誰かが投稿/指摘できますか? Apple が課したこれらの要件に適合しない Objective-C メソッドの投稿は控えてください。
ありがとう。