SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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.com



13年3月2日土曜日
How to Use

             1. githubからcloneしてinstall.shを実行

             2. Xcodeを再起動

             3. cocoaPodを使ってプロジェクトに追加

             4. 実行中にソースを書き換えて⌃X



13年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日土曜日

Más contenido relacionado

Similar a Code injectiontool

コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようMatsuoka Hiromitsu
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7Hiroshi Oyamada
 
『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3shinyaa31
 
Ruby hiroba20130602
Ruby hiroba20130602Ruby hiroba20130602
Ruby hiroba20130602Shin Semiya
 
Introduction to guard + rspec
Introduction to guard + rspecIntroduction to guard + rspec
Introduction to guard + rspeckoko_u
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3codeal
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンYasuaki Matsuda
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Pythonの開発環境を調べてみた
Pythonの開発環境を調べてみたPythonの開発環境を調べてみた
Pythonの開発環境を調べてみたKenji NAKAGAKI
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidTaisuke Oe
 
Sinatraアプリをherokuにアップ
SinatraアプリをherokuにアップSinatraアプリをherokuにアップ
SinatraアプリをherokuにアップHiroshi Oyamada
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)DNA Data Bank of Japan center
 
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)DNA Data Bank of Japan center
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能Yoshifumi Kawai
 

Similar a Code injectiontool (20)

コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げよう
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7
 
Jenkinsについて
JenkinsについてJenkinsについて
Jenkinsについて
 
『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3
 
Ruby hiroba20130602
Ruby hiroba20130602Ruby hiroba20130602
Ruby hiroba20130602
 
Introduction to guard + rspec
Introduction to guard + rspecIntroduction to guard + rspec
Introduction to guard + rspec
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Pythonの開発環境を調べてみた
Pythonの開発環境を調べてみたPythonの開発環境を調べてみた
Pythonの開発環境を調べてみた
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
 
JUC2012
JUC2012JUC2012
JUC2012
 
CocosBuilderの紹介
CocosBuilderの紹介CocosBuilderの紹介
CocosBuilderの紹介
 
Sinatraアプリをherokuにアップ
SinatraアプリをherokuにアップSinatraアプリをherokuにアップ
Sinatraアプリをherokuにアップ
 
Beginning iPhone Vol2
Beginning iPhone Vol2Beginning iPhone Vol2
Beginning iPhone Vol2
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)[DDBJing34]  NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
[DDBJing34] NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Mac用)
 
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
[DDBJing34]NIG SuperComputer の利用方法(1) PCに公開鍵を設定してスパコンにログインする(Win用)
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Último (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Code injectiontool

  • 1. CodeInjectionTool コード編集しながらライブデバッグ体験 13年3月2日土曜日
  • 2. Injection for Xcode v3.2 http://injectionforxcode.com/ 13年3月2日土曜日
  • 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. GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています 13年3月2日土曜日
  • 5. GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています 13年3月2日土曜日
  • 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. IssuePoint 自分のプロジェクトが汚される Patchした時… main.mとPrefix.pchが書き換えられる Injectionした時… InjectionBundle.xcodeprojが作成される 実機実行の場合などは… RunScriptに追記する必要がある 間違えてcommitするとチームメイトに迷惑・・・ 13年3月2日土曜日
  • 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. Dynamic Code Injection v0.1.3 http://dyci.github.com 13年3月2日土曜日
  • 10. How to Use 1. githubからcloneしてinstall.shを実行 2. Xcodeを再起動 3. cocoaPodを使ってプロジェクトに追加 4. 実行中にソースを書き換えて⌃X 13年3月2日土曜日
  • 11. GoodPoint •cocoaPod対応 staitcライブラリリンクにも対応 • 自分のプロジェクトが汚れない • リソースファイルも追加可能 • AppCodeにも対応 13年3月2日土曜日
  • 12. GoodPoint •cocoaPod対応 staitcライブラリリンクにも対応 • 自分のプロジェクトが汚れない • リソースファイルも追加可能 • AppCodeにも対応 13年3月2日土曜日
  • 13. IssuePoint シミュレータでしか動かない 変更したファイルごとにInjectionが必要 13年3月2日土曜日
  • 14. IssuePoint インストール時にClangを置き換える Xcodeのアップデートに注意! 一旦プラグインをUninstallしてから アップデートすること 13年3月2日土曜日
  • 15. IssuePoint Storyboardに対応していない 13年3月2日土曜日
  • 16. IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! 13年3月2日土曜日
  • 17. IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! segueを書き換えると落ちます;; 13年3月2日土曜日
  • 18. IssuePoint Storyboardに対応していない 対応してみた https://github.com/ShunsukeAraki/dyci-main please clone me! segueを書き換えると落ちます;; Storyboardハックしてみませんか 13年3月2日土曜日
  • 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. 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日土曜日