CodeInjectionTool             コード編集しながらライブデバッグ体験13年3月2日土曜日
Injection for Xcode                                               v3.2               http://injectionforxcode.com/13年3月2日土曜日
How to Use             1. pkgをDLしてインストール             2. Injection Plugin.appからFile->Install Plugin             3. Xcodeを再起...
GoodPoint             • 実機でも動く             • GUIでパラメータを調節できる             • AppCodeにも対応               今回はXcode4.6でのみ確認しています...
GoodPoint             • 実機でも動く             • GUIでパラメータを調節できる             • AppCodeにも対応               今回はXcode4.6でのみ確認しています...
IssuePoint                        実機実行でハマりやすい                 Build Phases->RunScriptを追加する   echo "$CODESIGNING_FOLDER_PAT...
IssuePoint                 自分のプロジェクトが汚される        Patchした時…              main.mとPrefix.pchが書き換えられる       Injectionした時…      ...
IssuePoint                              なんかエラーが出る        Case 1.             Xcodeで複数プロジェクトを開いていると、             InjectionB...
Dynamic Code Injection                                        v0.1.3               http://dyci.github.com13年3月2日土曜日
How to Use             1. githubからcloneしてinstall.shを実行             2. Xcodeを再起動             3. cocoaPodを使ってプロジェクトに追加      ...
GoodPoint             •cocoaPod対応   staitcライブラリリンクにも対応             • 自分のプロジェクトが汚れない             • リソースファイルも追加可能           ...
GoodPoint             •cocoaPod対応   staitcライブラリリンクにも対応             • 自分のプロジェクトが汚れない             • リソースファイルも追加可能           ...
IssuePoint                シミュレータでしか動かない             変更したファイルごとにInjectionが必要13年3月2日土曜日
IssuePoint             インストール時にClangを置き換える              Xcodeのアップデートに注意!             一旦プラグインをUninstallしてから                ...
IssuePoint             Storyboardに対応していない13年3月2日土曜日
IssuePoint                 Storyboardに対応していない                          対応してみた             https://github.com/ShunsukeAraki...
IssuePoint                 Storyboardに対応していない                          対応してみた             https://github.com/ShunsukeAraki...
IssuePoint                 Storyboardに対応していない                          対応してみた             https://github.com/ShunsukeAraki...
MorePoint      InjectionされたらViewControllerをリロード@implemantation MyViewController- (void)updateOnClassInjection {! if ([self...
MorePoint      InjectionされたらViewControllerをリロード@implemantation MyViewController- (void)updateOnClassInjection {! if ([self...
Upcoming SlideShare
Loading in …5
×

Code injectiontool

1,186 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,186
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Code injectiontool

  1. 1. CodeInjectionTool コード編集しながらライブデバッグ体験13年3月2日土曜日
  2. 2. Injection for Xcode v3.2 http://injectionforxcode.com/13年3月2日土曜日
  3. 3. How to Use 1. pkgをDLしてインストール 2. Injection Plugin.appからFile->Install Plugin 3. Xcodeを再起動 4. Product->Patch Project for Injection 5. 実行中にソースを書き換えて⌘=13年3月2日土曜日
  4. 4. GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています13年3月2日土曜日
  5. 5. GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています13年3月2日土曜日
  6. 6. IssuePoint 実機実行でハマりやすい Build Phases->RunScriptを追加する echo "$CODESIGNING_FOLDER_PATH" >/tmp/"$USER.ident" && echo "$CODE_SIGN_IDENTITY" >>/ tmp/"$USER.ident" && exit; それでもCodeSignエラーが出る KeyChainに同じ名前の証明書がダブってるとダメらしい13年3月2日土曜日
  7. 7. IssuePoint 自分のプロジェクトが汚される Patchした時… main.mとPrefix.pchが書き換えられる Injectionした時… InjectionBundle.xcodeprojが作成される 実機実行の場合などは… RunScriptに追記する必要がある 間違えてcommitするとチームメイトに迷惑・・・13年3月2日土曜日
  8. 8. IssuePoint なんかエラーが出る Case 1. Xcodeで複数プロジェクトを開いていると、 InjectionBundleが全く違うプロジェクトを参照することがある  => InjectionBundleを削除して、1プロジェクトだけ開いた状態にする Case 2. StoryBoardの変更が適用されない  => 公式によるとRunScriptに以下を追加 "$HOME/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ InjectionPlugin.xcplugin/Contents/Resources/projectBuilt.pl"  => でも動かなかった。Xibもダメ・・・原因調査中 Case 3. MacのIPアドレスが変わると実機で動かない  => Macとソケット通信する仕組みのため、再Patchで対応13年3月2日土曜日
  9. 9. Dynamic Code Injection v0.1.3 http://dyci.github.com13年3月2日土曜日
  10. 10. How to Use 1. githubからcloneしてinstall.shを実行 2. Xcodeを再起動 3. cocoaPodを使ってプロジェクトに追加 4. 実行中にソースを書き換えて⌃X13年3月2日土曜日
  11. 11. GoodPoint •cocoaPod対応 staitcライブラリリンクにも対応 • 自分のプロジェクトが汚れない • リソースファイルも追加可能 • AppCodeにも対応13年3月2日土曜日
  12. 12. GoodPoint •cocoaPod対応 staitcライブラリリンクにも対応 • 自分のプロジェクトが汚れない • リソースファイルも追加可能 • AppCodeにも対応13年3月2日土曜日
  13. 13. IssuePoint シミュレータでしか動かない 変更したファイルごとにInjectionが必要13年3月2日土曜日
  14. 14. IssuePoint インストール時にClangを置き換える Xcodeのアップデートに注意! 一旦プラグインをUninstallしてから アップデートすること13年3月2日土曜日
  15. 15. IssuePoint Storyboardに対応していない13年3月2日土曜日
  16. 16. IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me!13年3月2日土曜日
  17. 17. IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! segueを書き換えると落ちます;;13年3月2日土曜日
  18. 18. IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! segueを書き換えると落ちます;; Storyboardハックしてみませんか13年3月2日土曜日
  19. 19. MorePoint InjectionされたらViewControllerをリロード@implemantation MyViewController- (void)updateOnClassInjection {! if ([self isViewLoaded]) {! ! UIView *superView = self.view.superview;! ! CGRect oldFrame = self.view.frame;! ! NSUInteger index = [superView.subviews indexOfObject:self.view];! ! [self.view removeFromSuperview];! ! self.view = nil;! ! [superView insertSubview:self.view atIndex:index];! ! self.view.frame = oldFrame;! }}13年3月2日土曜日
  20. 20. MorePoint InjectionされたらViewControllerをリロード@implemantation MyViewController- (void)updateOnClassInjection {! if ([self isViewLoaded]) {! ! UIView *superView = self.view.superview;! ! CGRect oldFrame = self.view.frame;! ! NSUInteger index = [superView.subviews indexOfObject:self.view];! ! [self.view removeFromSuperview];! ! self.view = nil;! ! [superView insertSubview:self.view atIndex:index];! ! self.view.frame = oldFrame;! }} _,CF,CA,NS,UI,Webで始まるクラスは updateOnClassInjectionが呼ばれない13年3月2日土曜日

×