Hatena::Groupiphone-dev

Takuma104.m

2009-11-06

Three20でUndocumented APIが使われている件

23:03 | Three20でUndocumented APIが使われている件 - Takuma104.m を含むブックマーク はてなブックマーク - Three20でUndocumented APIが使われている件 - Takuma104.m Three20でUndocumented APIが使われている件 - Takuma104.m のブックマークコメント

Three20というすばらしいiPhone向けオープンソースライブラリがありますが、これがどうも、Undocumented APIを含んでしまっているようです。Three20のコードを含んだアプリをAppStoreに提出したのですが、この件でRejectをくらいました。作者様にはさきほどメールしておいたのですが、いちおうどこがまずそうなのかをとりいそぎということで。

@implementation UITouch (TTCategory)
 
- (id)initInView:(UIView *)view location:(CGPoint)location {
  if (self = [super init]) {
    _tapCount = 1;
    _locationInWindow = location;
    _previousLocationInWindow = location;
 
    UIView *target = [view.window hitTest:_locationInWindow withEvent:nil];
    _view = [target retain];
    _window = [view.window retain];
    _phase = UITouchPhaseBegan;
    _touchFlags._firstTouchForView = 1;
    _touchFlags._isTap = 1;
    _timestamp = [NSDate timeIntervalSinceReferenceDate];
  }
  return self;
}
 
- (void)changeToPhase:(UITouchPhase)phase {
  _phase = phase;
  _timestamp = [NSDate timeIntervalSinceReferenceDate];
}
 
@end

http://github.com/joehewitt/three20/blob/master/src/UIViewAdditions.m#L47-64

の黄色くハイライトされたあたりです。このUITouchクラスのメンバ変数にはcategoryを使うとアクセスできてしまいますが、これはやはりまずそうです。

こういったOpen Sourceのコードを使う上では、ライセンス上、AS ISになっていますので、コード作者ではなく、もちろん使う側に責任があります。使う上ではこういったリスクもあります。

おそらく今後もこういったことは起きないとも限らないので、ビルドしたあと、そのバイナリを静的に解析して、そのアプリでUndocumented APIやPrivate APIが使われていないかどうかをチェックするツールが欲しいなあと思ったのですが(たぶんAppleも審査時にこういう方法で試験しているものと思います)、こういったものって、存在するんでしょうか?

もしないとすると、とりあえず作ろうと思っています。多分、PublicなFrameworkのヘッダをすべてスキャンして、使えるAPIのリストを作り、なおかつビルド後のバイナリからclass-dump-xなど経由ですべての使用しているAPIのリストをとり、その差分を取ることで、これが可能な気もしています。が、できるのかなあ。。もしこの辺の情報お持ちの方おられましたら、@takuma104 あたりまでコメントお願いできればと思います。

(追記)

Three20のこの件は、すでに既出の話題だったのを教えていただきました。うーん、、御本人はレスしてないかあ。とりあえず fork してこの辺のコードを削除してpull request送るとかなんでしょかね。こういう場合。

http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139

kimadakimada2009/11/07 00:24これはつらいケースですね。。。><

UITouch.hを見ると、これらのインスタンス変数はprotectedなので、サブクラスからでもアクセスできますし、「物理的」には問題ないはずです。
ただ、気になるのは、

// Note: all instance variables will become private in the future. Do not access directly.

というコメントがひっそりと書かれていることです。これに抵触しているということでしょうか。。。

もしそうだとすると、ふつうは気付かないですし、機械的にチェックするのは難しいかもしれないですね。
Appleの方で、こういうバラバラな情報を、どこか1ヶ所に集めて公開してほしいところです。
せめて、審査に関わるような、ヘッダのコメントには、共通のタグをつけてくれるくらいは、してほしいと思います。

内容が、はずれてたらすみません。。
何か、いい解決方法が見つかるといいですね。

takuma104takuma1042009/11/07 00:35コメントありがとうございます! とりあえず、アプリは、幸いこの部分は未使用コードだったので、この部分削って再提出しました。

ですね。基本すべてのメンバ変数への直接のアクセスはNGのようですね。

あと、AppleのiPhone SDK Agreement 3.3.1条項の姿勢としては、ドキュメントに載ってないのは
NGとしているような気がしていて、ヘッダからのスキャンだと差がある可能性もあって、
不十分かもですねえ。

手作業で作るのも相当面倒そうだし、、こういう情報をwiki的に編集できるようにして、みんなで編集してもらうとかしかないかなあ。。

kimadakimada2009/11/07 01:02とりあえず、再提出できたのはよかったですね!

> ですね。基本すべてのメンバ変数への直接のアクセスはNGのようですね。

そう解釈するのが安全な気がしますね。
UIKit.frameworkの中のヘッダファイルを、いくつか見てみたんですが、インスタンス変数にスコープが切られてないのは、UITouchくらいな気がします。
きっと、privateとかpackageにすると、都合が悪いことがあるんでしょうね。。
何だか、例外的なこと(バグ??)のような感じなので、審査時にわかってるんであれば、リリースノートには書いておいてほしいところです。

> 手作業で作るのも相当面倒そうだし、、こういう情報をwiki的に編集できるようにして、みんなで編集してもらうとかしかないかなあ。。

そういう場があれば、ありがたいですね。。
でも、そこまでしなくてもいい状況になるのが、もっとありがたいですね ;)

BeitskeBeitske2013/10/14 14:25We've arvried at the end of the line and I have what I need!

DheniferDhenifer2013/10/15 04:03This site is like a <a href="http://nhbtufuuje.com">cloasrosm,</a> except I don't hate it. lol

SunamyttahSunamyttah2013/10/15 15:39I rellay needed to find this info, thank God! http://dmduhvyqtj.com [url=http://iamizfmjn.com]iamizfmjn[/url] [link=http://cofmqdgnog.com]cofmqdgnog[/link]

CorazonCorazon2013/11/03 18:15A million thanks for posting this <a href="http://tvivvlx.com">innaimotrof.</a>

LilyLily2013/11/14 12:03Wait, I cannot fathom it being so stwoaghtfarrird. http://vpoyas.com [url=http://nqbdgmbimal.com]nqbdgmbimal[/url] [link=http://lclrvk.com]lclrvk[/link]

YogiYogi2013/11/18 02:51I think you hit a buleslye there fellas! http://twpymp.com [url=http://tntiaofqfj.com]tntiaofqfj[/url] [link=http://mnxvsd.com]mnxvsd[/link]

2008-10-21

[pending contract]住所の文字化けの修正依頼メール文面(参考)

15:14 |  [pending contract]住所の文字化けの修正依頼メール文面(参考)  - Takuma104.m を含むブックマーク はてなブックマーク -  [pending contract]住所の文字化けの修正依頼メール文面(参考)  - Takuma104.m  [pending contract]住所の文字化けの修正依頼メール文面(参考)  - Takuma104.m のブックマークコメント

AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か? - Takuma104.m - iPhoneアプリ開発グループに関連して。

僕は、iTSPayments@apple.comとdevcontracts@apple.comそれぞれに以下のような文面でメールしたら住所が英語になりました。(ただし、どちらとも返事がなかった)また、iTunes株式会社からもその前に住所問い合わせのメールがあったので、いまいち意味あるかわからないんですが。。

英語はちょっと自信ないですがw,もしよろしければ、なにかの参考まで。

To whom it may concern,

I'm a iPhone Developer Program member.

I'm asking for pending contract problem.
I've been in pending contract problem for more then three weeks.

I don't know that it relate to the issue, I found some bugs
in Contact Info "Company (Legal Entity) Address".
It seems my address is unreadable.
(It might be Japanese Character.)


The following currently displayed.
--
??? ?????? ????
City:??????
State/Province:???
Zip/Postal Code:100-0000
Country:Japan


The following is correct info.
--
#301 hogehoge
City: Ohta-ku
State/Province: Tokyo
Zip/Postal Code:100-0000
Country:Japan


Would you please fix it?

Best regards,

---
Takuma Mori <takuma@104.net>
#301 hogehoge, Ohta-ku Tokyo, Japan
Person ID: *****
Application Name: ******
Apple ID: ******

MahmoodMahmood2013/01/21 03:25You've got it in one. Couldn't have put it bteter.

ynxibbnynxibbn2013/01/21 20:05VWmdQ8 <a href="http://osfvmpaygmoi.com/">osfvmpaygmoi</a>

flbocyyxgcflbocyyxgc2013/01/22 21:59gFSXtw , [url=http://rorjyqkkairj.com/]rorjyqkkairj[/url], [link=http://kfpaikmgnini.com/]kfpaikmgnini[/link], http://ujpuyhutjujd.com/

elnkelelnkel2013/01/23 13:18HCMq7J , [url=http://daztauznrxhg.com/]daztauznrxhg[/url], [link=http://wdlvwhciyvbk.com/]wdlvwhciyvbk[/link], http://txghpdoianke.com/

2008-10-06

AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か?

06:42 | AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か? - Takuma104.m を含むブックマーク はてなブックマーク - AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か? - Takuma104.m AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か? - Takuma104.m のブックマークコメント

f:id:takuma104:20080924073425p:image

いま僕のアプリ(NatsuLiphone)は、FreeAppとして提出しているにもかかわらず、3週間以上Pending Contractの刑を食っているという謎な状況になっています。*1

iTunes Connect の "Contracts, Tax, & Banking Information" の "Your Contracts In Process" 部分のスクリーンショットはこんな感じで、Free Applicationのところの "Setup Complete" がグリーンになっていないことが分ります。

週末Twitterで、実際にFreeアプリケーションをAppStoreでリリースされている方に状況とかを確認してみたのですが、総合すると、どうやら問題は、


アプリの審査終了時点(Ready for Saleメールが来た段階)で、"Contracts, Tax, & Banking Information"画面の、Paid ApplicationのContact InfoのEditで見れる"Company (Legal Entity) Address"が化けないで(??とかにならないで)表示されている


というのが1つの条件になるようです。また、名前の部分も僕の場合「琢磨 Mori」などとなっていますが、これは問題にならないようです。*2 ということで、ここの住所部分が文字化けしている人は、アプリを申請する前にでも、iTSPayments @ apple.com もしくは、 devcontracts @ apple.com にメールするなりして修正してもらったのを確認してから提出するのが良いと思われます。また7/11以前にDev Programsに加入できた人は、どうやらここの住所はiTunes Storeの情報ではない(?)ようなので、7/11以降に加入した人が対象になっているものと思われます。

それで、結局僕のほうは、これが2日前に修正されたわけなのですが、一向にまだPending Contract状態のままです。もしかすると、いまのこの状態から、このPending Contractを解除する人が仕事をちゃんとしていないのではないか、という余計な邪推もできます。今週動きがなかったら、また電話するなりしてみようと思います。

*1:Pending Contract問題については、fladdictさんのまとめが分りやすいかと思います

*2:なぜかというと、Rejaw for iPhoneなどが、ここが漢字のまま公開されているためです

ku-sukeku-suke2008/10/14 14:13なぜか僕の画面とちょっと違うのは、個人と法人の区分でしょうか?
http://f.hatena.ne.jp/ku-suke/20081014141255

takuma104takuma1042008/10/29 02:56お返事遅れました。。"Your Contract in Effect"になってれば、それはContract処理は終了ということなので、ku-sukeさんの場合は、Pending Contract にはならないかと思われます。

takuma104takuma1042008/10/29 02:59ちなみにPending Contractから1ヶ月ぐらいで脱出組なのですが、現状は、in Effectのところで、こんな表示になっています。
http://gyazo.com/9b57556c0941d937b2c4c7bb1997170d.png

2008-08-25

iPhone SDK の NDA の廃止を嘆願する署名運動が行われています

| 17:47 | iPhone SDK の NDA の廃止を嘆願する署名運動が行われています - Takuma104.m を含むブックマーク はてなブックマーク - iPhone SDK の NDA の廃止を嘆願する署名運動が行われています - Takuma104.m iPhone SDK の NDA の廃止を嘆願する署名運動が行われています - Takuma104.m のブックマークコメント

ここで行われているようです。

http://www.ipetitions.com/petition/iPhoneNDA/index.html

さっそく僕も署名しました。NDA自体は廃止してもらったほうが良いとは思いますが、全廃じゃなくても、個人的には以下の3つが出来るようになれば良いと考えているので、そのように署名コメントしてみました。

  • iPhone SDKについて書かれた本が自由に出版できること
  • NDA締結者同士の無制限の情報交換を可能にすること(オンライン・オフライン問わず)
  • iPhone SDK用に自分達が書いたコードが自由に公開できること

なおこの署名サイト iPetitions は、署名すると、「iPetitionsサイト維持のために、募金してくれ画面」が出ますが、任意でないようで実は任意です。募金しないでも、署名自体は行われますので、ご注意ください。

AmalAmal2012/02/08 21:14I'm not easily irmpessed. . . but that's impressing me! :)

wagaodwagaod2012/02/09 02:38hGZB9Y <a href="http://sjouojouyeuw.com/">sjouojouyeuw</a>

mqkpiklhmqkpiklh2012/02/10 03:16A3oTad , [url=http://rukzmtsadatf.com/]rukzmtsadatf[/url], [link=http://emyloqfpchho.com/]emyloqfpchho[/link], http://mljqprrdbomh.com/

acuasjzacuasjz2012/02/10 04:406lcvrm , [url=http://xhrfwtqmhefk.com/]xhrfwtqmhefk[/url], [link=http://ncwfgjkqcdui.com/]ncwfgjkqcdui[/link], http://ojjbhoksvoht.com/

yazpogpvgyazpogpvg2012/02/10 07:34jQnxBc , [url=http://xcukgoctfrnf.com/]xcukgoctfrnf[/url], [link=http://nxrcrjhjhffi.com/]nxrcrjhjhffi[/link], http://pxwrwckkabvj.com/

vvtxhwvvtxhw2012/02/10 08:46aQgI9F , [url=http://gigqvvyodnda.com/]gigqvvyodnda[/url], [link=http://nmfqewycgafr.com/]nmfqewycgafr[/link], http://wxemrlcutonv.com/

fokqbwcoonafokqbwcoona2012/02/10 10:26k2mBKU , [url=http://wltwrxaqpxzx.com/]wltwrxaqpxzx[/url], [link=http://xisrhhlctufv.com/]xisrhhlctufv[/link], http://mjruhhcbndgy.com/

ltmpeutoxltmpeutox2012/02/10 11:13BPwR3M , [url=http://mfpkprmttwtw.com/]mfpkprmttwtw[/url], [link=http://tgxgwdhviwii.com/]tgxgwdhviwii[/link], http://blnhclqmleue.com/

ogvylscrdtogvylscrdt2012/02/11 21:16NMRuLV <a href="http://gxejemqsqsfk.com/">gxejemqsqsfk</a>

hszhxkhszhxk2012/02/13 04:397qMEYY , [url=http://ybwtdmvfcppf.com/]ybwtdmvfcppf[/url], [link=http://bowclkezixjt.com/]bowclkezixjt[/link], http://sqonhwdgectn.com/

2008-08-13

iPhone SDKを使ったオープンソースアプリの一部

| 17:52 | iPhone SDKを使ったオープンソースアプリの一部 - Takuma104.m を含むブックマーク はてなブックマーク - iPhone SDKを使ったオープンソースアプリの一部 - Takuma104.m iPhone SDKを使ったオープンソースアプリの一部 - Takuma104.m のブックマークコメント

iPhone SDKを使った(と思われる)ソースコードをいくつか見つけたので貼っておきます。ここに挙げたもののほかに、yanbeさんが見つけたZXing も、それっぽいです。

そもそもNDA的に、SDK開発を行ったアプリケーションをオープンソースにできるのかどうかは良くわかってません。いまのところ、少なくとも Wordpress および MyMote は AppStore にて配布されている(つまりAppleの審査を通過した)ようです。

Wordpress for iPhone

Wordpress Client

MyMote

Mythtv frontends

Colloquy for iPhone and iPod touch

IRC Client

iphone-exif

Library for Exif tag manipulation in images directly on iPhone

iPhoneUnitTesting

unit test