投稿

ラベル(Xcode)が付いた投稿を表示しています

2024年4月29日以降からはXcode15が必須の様子。

イメージ
Xcode15が必須になります。 また、この季節が来ました。 AppleStoreにアップ可能な要件が代わります。 皆さん注意をしてください。 ---- 2024年4月29日以降、 App Store Connectにアップロードするアプリは iOS 17、iPadOS 17、tvOS 17、 またはwatchOS 10向けにXcode 15 でビルドする必要があります。 ---- 引用: https://developer.apple.com/jp/news/upcoming-requirements/?id=04292024a

【iOS】今更聞けない UIViewControllerのライフサイクル その2 (Swift)

【iOS】今更聞けないUIViewControllerのライフサイクル その2 (Swift) 過去に書いていたのですが、意外と観ていただいている人がいたので、更新版です 忘れやすいですよね もう少し、細かいイベントを追加しました 表示する時 awakeFromNib loadView viewDidLoad loadViewIfNeeded viewWillAppear viewLayoutMarginsDidChange viewSafeAreaInsetsDidChange updateViewConstraints viewIsAppearing viewWillLayoutSubviews viewDidLayoutSubviews viewDidAppear 別ページ表示する時 viewWillLayoutSubviews viewDidLayoutSubviews viewWillDisappear viewWillLayoutSubviews viewDidLayoutSubviews viewDidDisappear import UIKit class ViewController: UIViewController { override func awakeFromNib() { super.awakeFromNib() print("awakeFromNib") } override func loadView() { super.loadView() print("loadView") } override func viewDidLoad() { super.viewDidLoad() print("viewDidLoad") } override func loadViewIfNeeded() { super.loadViewIfNeeded() print("loadViewIfNeeded")

2022年4月以降 からはXcode13が必須の様子。

イメージ
 タイトル通りですが、 2022年4月からは、Xcode13が必須な様子 公式のサイトに記載があった、 でもこれが、 更新もなのか新規なのかはこれだけではちょっと解らない。 でも、Xcode13でさっさとやるのには良さそう。

StoryboardからXcodeのversionを探す

Xcode で開発を進めていて、あれ? Xcodeのversionいくつで開発してたっけ? 的な事ってありませんか?    Storyboard の触った時に自動で書き込まれる部分ところに番号がいろいろと記載されていて、そこからXcodeのバージョンがわかるかな? 的な事を思いつきました。  com.apple.InterfaceBuilder.IBCocoaTouchPlugin  のversionから判定してみる。 なんとか、Xcodeのバージョン確認できそうです。 気が向いたら、他のversionも記載していこう。 基本的に私が目視で確認したものとなります。 gitとかで管理している場合、Xcodeでファイルを開く(表示)だけでバージョンが上書きされて、差分が発生する所がいやな所ですね 一覧 Xcode Version   build   IBCocoaTouchPlugin Version 14.1 14B47b 21507 13.2.1 13C100 19519 13.0 13A233 19144 12.5 12C33 18093 12.3 12A7209 17703 12.0 12A7209 17125 11.4.1 11E503a 16087 11.3.1 11C505 15706

【Swift】Zipファイル判定

Swiftで ZIP判定用です。 もっとスマートなやり方は有ると思いますが暫定で作成です。 よく見かける物を関数にしたもの。 ・ファイルを読み込む。 ・先頭4byteを取得 ・ZIPのheaderをcheckしてZIPのheaderならtrue を返す

【Socket】Socket 通信で何度もBindしてたら、Bindができなくなった。

表題の通りで、 ソケット通信を利用したく、 何度も、bindをおこなっていたら、 突然「address already in use」が出るようになり、 アプリを再起動しないと再接続ができなくなった。 色々と調査していると、 CLOSE_WAITやらTIME_WAITなどがのキーワードが出てきて、 なんか、開放されるまでに時間がかかるとの事 えー。 とおもってもう少し調査していると。 SO_REUSEADDR を bind する前にセットすれば、可能になるとの事。  setsockopt(s,SOL_SOCKET, SO_REUSEADDR, (const char *)&yes, sizeof(yes)); これね。 まとめると、 bindする前に、おまじないを書く。これだけ。 いやー、ハマった、ハマった。  BOOL yes = 1;  s = socket(AF_INET, SOCK_STREAM, 0);  addr.sin_family = AF_INET;  addr.sin_port = htons(65000);  addr.sin_addr.S_un.S_addr = INADDR_ANY;  setsockopt(s,SOL_SOCKET, SO_REUSEADDR, (const char *)&yes, sizeof(yes));  bind(s, (struct sockaddr *)&addr, sizeof(addr)); --- 処理 -- close(s); 2021/01/15 追記 あと、素直に特定条件下で、Closeを呼びそこねているパターンがあり、 Bindしっぱなしだった、ちゃんとCloseする処理書いたら、発生しなくなりました。

【Xcode】 ショートカットキー メモ

Xcode ショートカットキー メモ ソースコードのフォーマット ctrl + i ⌘  + a してから  ctrl  + i がよく使う流れ、

【Mac】CocoaPods を入れようとしたらエラーが出た。

CocoaPodsを入れようと下記をターミナルで入れたら。 sudo gem install cocoapods -- 抜粋 You might have to install separate package for the ruby development environment, ruby-dev or ruby-devel for example. -- こんな エラーが出た。 Xcode のcommand Line tools をいれたらなおりました

【iOS】iOS 13で WKWebView を使ったアプリは必ず実機で動作を確認しよう。

表題の通りです、 エミュレータと挙動が違います。 <a> ですが、 リンク先の記載方法によって、遷移してくれない現象がありました。 html のデータをローカルにファイルとして保存して、それを表示するタイプは <a> の記載方法によって、URLを選択した時に発火するイベントが受け取れません。 内部でセキュリティーの警告がでて、反応しません、 注意してください。 具体的には、 a タグの  href に記載されているURL等が / (root) から始まっているものがだめのようです。 エミュレータだと、問題なく、イベントが発火されますが 実機だと発火しません。

【 ITMS-90809 】UIWebview の警告が出るようになってます。

アプリのアップデートは2020年 12月までに UIWebviewを変更しましょう  審査にかけると、下記ような警告が出ます。 ITMS-90809: Deprecated API Usage - App updates that use UIWebView will no longer be accepted as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

【iOS】 [Process] kill() returned unexpected error 1

iOS 13 で ログ タイトルのエラーが大量にでる・・・。 原因はなんだろうか? 少し調べたら、なんと、OS側のバグの可能性があるとの事。 開発中すごく邪魔・・・。 どうにかならないものか。 2020/03/18  追記   バグらしい。

【iOS】MPMoviePlayerViewController iOS 13.3 え まだ使っているの?

MPMoviePlayerViewController って 過去の遺物になってます。 ええ、iOS 9 で非推奨になっています。 未だに、使ってい人がいるのでは? はい!  使ってます。 iOS13.2 で 特定のパラメーターを設定すると、再生しない不具合があるようです。 別のに変更するってのが正しいのですが、共有しときます。 @property(nonatomic) MPMovieSourceType movieSourceType; このパラメータですが、 MPMovieSourceTypeUnknown 以外のパラメータを設定すると再生されなくなります。 開くのですが、すぐに画面が閉じる現象になります。 あ、Xcode 10.3 で の事です。 Xcode 11.3 だと、 MPMoviePlayerViewController がもう存在しておらず、 処理を走らせると、強制終了します。 いや、だから、さっさと新しいのに変えればいいのだ。 2020年4月から Xcode 11 必須だしね。

【iOS】指定の言語のStringを取得したい時

多言語化を実装されていて、とある要件で日本語の端末の状態で、 日本語と英語だった場合のStringがほしい時に書きました。 ja.lproj とか en.lproj とかを直接読み込んで、やってます。 引数に、 en とか iOS でローカライズ化した言語を指定する。 key は、ローカライズのkeyです。 エラー処理等は入れて無いので、適宜やってね。 func SelectLocalizeString(lang: String ,   key: String ) -> String {      let p: String ? = Bundle . main . path (forResource: lang, ofType: "lproj" )     let b: Bundle ? = Bundle (path: p!)     return NSLocalizedString (key, tableName: nil , bundle: b!, value: key, comment: nil ) }

【iOS】今更聞けない、UIViewControllerのライフサイクル。 (Swift)

いまさら聞けない、UIViewControllerのライフサイクル。(Swift) 下記が主なイベント class ViewController : UIViewController {     override func viewDidLoad () {         super . viewDidLoad ()         print ( "viewDidLoad" )     }          override func viewWillAppear ( _ animated: Bool ) {         super . viewWillAppear (animated)         print ( "viewWillAppear" )     }     override func viewDidAppear ( _ animated: Bool ) {         super . viewDidAppear (animated)         print ( "viewDidAppear" )     }     override func viewWillLayoutSubviews () {         super . viewWillLayoutSubviews ()         print ( "viewWillLayoutSubviews" )     }     override func viewDidLayoutSubviews () {         super . viewDidLayoutSubviews ()         print ( "viewDidLayoutSubviews" )     }     override func viewWillDisappear ( _ animated: Bool ) {         super . viewWillDisappear (animated)         print ( &quo

【iOS】swift の 配列を for する時、、、

Swift 4で確認済み ちょっと恥ずかしい話、 var array = [ "1" , "2" ] for i in 0 ... array . count - 1 {          print ( array [i]) } ↓ こう書けば良かったんだ。 for i in 0 ..< array . count {          print ( array [i]) } いや、必ず要素が1個以上ある場合は、いいんだけど。 要素が0個の時、強制終了する。

【iOS】UIViewの当たり判定( swift )

UIViewの当たり判定メモ          let myView:UIView = UIView     override func hitTest( _ point: CGPoint , with event: UIEvent ?) -> UIView ? {         let v =  myView . hitTest (point, with: event)          return  v     } こんな感じで取れる。 あたって入ればvの中にはあたったViewが入ってる。 ハズレならnil 

【iOS】UIStackViewでマージンとか設定したい。

メモ 疑問:UIStackViewで中の奴らにマージンを設定したい。 結論:無理なんで、UIViewを入れろ。 ------- iOSのAutoLayoutでUIStackViewを使って縦に積み重ねて行く場合、 途中で空白を指定したい場合ってあったりしますか? ViewとViewの間に10pt隙間を空けたいとか。 試しに topやbottom に10pt 指定してもエラー出るし。。。。 ああ。。。 じゃUIStackView をやめて地道に 指定して行こうと・・・。 ふと。 間に縦10pt指定した、Viewをおいてしまえばよいのでは? と思い、Viewをドラック&ドロップ。  frame部分の heightを10 に・・・・。 あれ? いれても 50とかに戻るんですけど・・・・。 Constraint の方に 10を直接指定すれば・・・。 あ、できた。 覚えておこう。

とうとうきたか。

appleさんが公式発表してますね。 2018年7月 に アプリのアップデートでも iOS SDK 11 と iPhone Xの対応(のっち対応)が 必須との事。 ちなみに、iOS SDK 11 なので、 Xcodeも 9以上が 必須ですね。

ターミナルでなんか同意しろとでた。

Macのターミナルで下記のようなのが出るようになった。 Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” and then retry this command. ターミナルから下記を実行 ・sudo xcodebuild -license ・enter 押す ・一番したまでスクロール ・agree を入力してenter  でOK

【iOS】iOSにてアイコン画像の色を変えたい場合。UIImageRenderingModeAlwaysTemplate を利用

メモ アイコン画像を自分の指定の色で塗りつぶす //templateの画像を読み込む。  UIImage *img = [[UIImage imageNamed:@"img_name"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; //UIImageをセットする。 UIImageView * view = [[UIImageView alloc] initWithImage:img]; //表示したい色を指定する。   view.tintColor = [UIColor redColor]; わすれることが有るので。メモがてら記載しています。 複数色のicon画像を用意する必要がなくなります。