将棋プログラミング

(将棋に関する)ソフトウェア開発のノウハウ等。

iOS

Xcode 15 に更新した際の問題

Xcode 14.2 で開発したアプリを App Store Connect にアップロードしたところ、次の問題が表示された。 SDK version issue. This app was built with the iOS 16.2 SDK. Starting April 29, 2024, all iOS and iPadOS apps must be built with the iOS 17 SD…

iOS WKWebView のクッキーを処理する

Objective-C のコード例が殆どないので、記録しておく。 1.WKWebView のクッキーを取得する if (@available(iOS 11.0, *)) { [WKWebsiteDataStore.defaultDataStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *aCookies) { NSLog(@"aCookies=%@", aCookies</nshttpcookie>…

iOS の Objective-C で UTType を使う

iOS の Objective-C で、例えば、次のように UTType を使う場合、 NSArray *theTypes = [UTType typesWithTag: @"extension" tagClass: UTTagClassFilenameExtension conformingToType: nil];次の import が必要だった。 #import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>リンク時、次のエラーになっ</uniformtypeidentifiers/uniformtypeidentifiers.h>…

iOS - UITableView の detailTextLabel を更新

UITableView の表示を更新するためには、通常、次のコードを実行する(UITableViewController の場合)。 [self.tableView reloadData];以前は問題なかったが、 Xcode 13 で作成し、iOS 15 で実行すると、なぜか、このコードを実行しても detailTextLabel が…

Objective-C での iOS 15 対応

Xcode 13 で、iOS 15 に対応する際に必要になった変更をまとめる。 最近のコードの例は、殆ど Swift なので、Objective-C のコード例が役に立つ人もいると思う。 1. ナビゲーションバー・ツールバーの色が変わる scrollEdgeAppearance を指定する。developer…

iOS 13 以降、UITableView の scrollToRowAtIndexPath が正しく動作しない場合がある

iOS 13 以降、UITableView の scrollToRowAtIndexPath が正しく動作しない場合がある。 最初に気がついたのは、iOS 13 になったとき、iPad では、scrollToRowAtIndexPath が正しく動作しなくなった時であった。 この時、animated が NO だと問題があり、YES …

Xcode 12 でシミュレータを対象にビルドし Framework not found (2)

App Store へアプリをアップロードする際、Xcode 12 で作成することが必須になった。 そこで、Xcode 11.7 から 12.5 へ乗り換えた。 そして、以前にも書いたように、シミュレータを対象にビルドしたとき、次のエラーが表示された。 Framework not found ***…

iTunes Connect と App Store Connect

Apple の App を販売する "App Store Connect" は、以前は、"iTunes Connect" だった。 それで、ブラウザのブックマークにも "iTunes Connect" として記録されていた。最近、"App Store Connect" にログインするために、"iTunes Connect" のブックマークにア…

Xcode 11: Your session has expired, please login

Xcode 11.7 で、 Distribute APP を実行したところ、 Your session has expired, please loginが繰り返し表示され、ログインできない状態となった。 これは多く人で起きているようで、次のようにすると問題がない。 (1) Xcode 11 で Archive を作成する。 (2…

Xcode 12 でシミュレータを対象にビルドし Framework not found

Xcode を 11.7 で問題なかったプロジェクトを 12.3 でシミュレータを対象にビルドしたとき、次のエラーが表示された。 Framework not found ***検索すると、多くの解決策が表示されるが、僕の場合は、次の設定で解決した。 1. Architectures で "Any iOS Sim…

Xcode 12 で missing one or more architectures

Xcode を 11.7 から 12.0 にアップデイトしたところ、従来問題のなかったプロジェクトで、シミュレータ用のビルド時、次のエラーが起きるようになった。 The linked library '***.a' is missing one or more architectures required by this target: arm64.B…

iOS の開発で Undefined symbols

iOS での開発中、次のエラーが出た。 Undefined symbols for architecture armv7: "_OBJC_CLASS_$_WKWebView", referenced from:WebKit.framework をリンクし、解決した。さらに、次のエラーが出た。 Undefined symbols for architecture x86_64: "_OBJC_CLA…

Xcode 11.6 のクラッシュ

ビルドエラーのため、プロジェクトの設定の変更が必要になった。 しかし、プロジェクトの設定を変更しようとすると、Xcode 11.6 がクラッシュする、という現象が起きた。 古くから開発しているプロジェクトのため、次の警告が出ていた。 Update to recommend…

UIWebView から WKWebView への書き換え:iOS 9 で異常終了

2020年12月から、UIWebView は使えず、WKWebView に書き換えなければならない。 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 r…

iOS の等幅フォント

iOS の通常のフォントは、半角空白が等幅でないが、iOS 13 から、半角空白を含め、等幅なフォントが使えるようになった。 1. monospacedDigitSystemFontOfSize: weight: iOS 9.0 以降では、このフォントが使えるが、半角空白は等幅でない。 https://develope…

iOS 和暦の落とし穴

iOS で、西暦年を取得する際、大きな落とし穴がある。 これが原因で、10年程前にトラブルが起き、以来、注意していたが、最近も失敗してしまった。iOS の Objective-C で、西暦年を4桁の数字で取得する際、次のようなコードとなる。 NSDateFormatter *forma…

iOS 13 のダークモードへの対応(ダークモードにしない)

Xcode 10.2 以降、旧CPUに対する最適化にバグがあるので、Xcode 10.1 を使い続けていたが、2020年4月からは、いよいよ Xcode 11 以降で作成しないと、App Store に提出できなくなる。 ykakinoki.hateblo.jp ITMS-90725: SDK Version Issue - This app was b…

iOS の定期購読のリジェクト事例

iOS

参考として、iOS の定期購読のリジェクト事例を紹介する。 従来、承認されていた iOS アプリのアップデイトが次の理由でリジェクトされた。 Guideline 3.1.2 - Business - Payments - Subscriptions We noticed that one or more of your auto-renewable sub…

iOS版 VLCKit MobileVLCKit で音声を消す

MobileVLCKit (Version 3.1.0) で音声を消す場合のコード VLCMediaPlayer *_mediaPlayer = [[VLCMediaPlayer alloc] init]; _mediaPlayer.audio.muted = YES; // 音声を消す

iOS版 VLCKit MobileVLCKit 3.1.2 の問題

iOS

MobileVLCKit 3.1.2 で RTMP の動画を再生すると、フリーズする。 3.1.0 では、問題がない。参考サイト: code.videolan.org

iOSアプリのリジェクト - We discovered that your app contains obfuscated code...

iOS

iOSアプリのアップデイトが次の理由でリジェクトされた。 We discovered that your app contains obfuscated code, selector mangling, or features meant to subvert the App Review process by changing this app's concept after approval to the App Sto…

Xcode 10.2 の最適化のバグ

Xcode が 10.2 にアップデイトされ、それでアプリをリリースしたところ、一部の機種で動作が異常になった。 問題を確認できた機種は、iPhone 4s や iPad 3代目である。恐らく、32bit CPU の機種だろうと思われる。 ソースを変更していない部分で起きた問題…

error: Invalid bitcode signature

iOS

Xcode 9.2 でビルドしたとき、次のエラーが表示された。 error: Invalid bitcode signatureProduct / Clean で解決した。qiita.com

iOS版 Twitter Kit: Attempt made to Log in or Like a Tweet without a valid Twitter Kit URL Scheme set up in the app settings.

iOS

iOS版アプリに Twitter Kit を組み込んだ。 インストール方法は、次に説明がある。 github.comまず、次のエラーが表示され、動作対象を iOS 9.0 以降にしないといけなかった。 error: "TwitterKit doesn't support iOS 8.x and lower. Please, change your m…

Twitter apps dashboard: Error You must add your mobile phone to your Twitter profile before creating an application.

Twitter を使うアプリを開発する際、Twitter apps dashboard にアプリを登録する。 今回、新しいアプリを登録しようとすると、次のエラーになった。 Error You must add your mobile phone to your Twitter profile before creating an application. Please …