• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Code injectiontool
 

Code injectiontool

on

  • 1,126 views

 

Statistics

Views

Total Views
1,126
Views on SlideShare
1,116
Embed Views
10

Actions

Likes
1
Downloads
2
Comments
0

1 Embed 10

https://twitter.com 10

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Code injectiontool Code injectiontool Presentation Transcript

    • 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を再起動 4. Product->Patch Project for Injection 5. 実行中にソースを書き換えて⌘=13年3月2日土曜日
    • GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています13年3月2日土曜日
    • GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています13年3月2日土曜日
    • IssuePoint 実機実行でハマりやすい Build Phases->RunScriptを追加する echo "$CODESIGNING_FOLDER_PATH" >/tmp/"$USER.ident" && echo "$CODE_SIGN_IDENTITY" >>/ tmp/"$USER.ident" && exit; それでもCodeSignエラーが出る KeyChainに同じ名前の証明書がダブってるとダメらしい13年3月2日土曜日
    • IssuePoint 自分のプロジェクトが汚される Patchした時… main.mとPrefix.pchが書き換えられる Injectionした時… InjectionBundle.xcodeprojが作成される 実機実行の場合などは… RunScriptに追記する必要がある 間違えてcommitするとチームメイトに迷惑・・・13年3月2日土曜日
    • 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日土曜日
    • Dynamic Code Injection v0.1.3 http://dyci.github.com13年3月2日土曜日
    • How to Use 1. githubからcloneしてinstall.shを実行 2. Xcodeを再起動 3. cocoaPodを使ってプロジェクトに追加 4. 実行中にソースを書き換えて⌃X13年3月2日土曜日
    • GoodPoint •cocoaPod対応 staitcライブラリリンクにも対応 • 自分のプロジェクトが汚れない • リソースファイルも追加可能 • AppCodeにも対応13年3月2日土曜日
    • GoodPoint •cocoaPod対応 staitcライブラリリンクにも対応 • 自分のプロジェクトが汚れない • リソースファイルも追加可能 • AppCodeにも対応13年3月2日土曜日
    • IssuePoint シミュレータでしか動かない 変更したファイルごとにInjectionが必要13年3月2日土曜日
    • IssuePoint インストール時にClangを置き換える Xcodeのアップデートに注意! 一旦プラグインをUninstallしてから アップデートすること13年3月2日土曜日
    • IssuePoint Storyboardに対応していない13年3月2日土曜日
    • IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me!13年3月2日土曜日
    • IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! segueを書き換えると落ちます;;13年3月2日土曜日
    • IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! segueを書き換えると落ちます;; Storyboardハックしてみませんか13年3月2日土曜日
    • 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日土曜日
    • 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日土曜日