20210727のiOSに関する記事は4件です。

Unity2019.1.7f1のiOSビルドで、大きいファイルがアップロード出来ない

Unity2019.1.7f1のiOSビルドから、UnityWebRequestを使用して動画を送信しようとしたところ、アップロードされた動画が壊れ再生出来ない状態でした。 今更ながら、2019バージョンですが、備忘録的に残しておきます。 1. 結論 こちらのフォーラムを参照しました。 You could think that the issue is on our side, but in fact if we update the "streamSize" value of the generated UnityWebRequest.mm then it works at 100%. 上記のように、iOSビルドで生成された UnityWebRequest.mm の [streamSize] を大きい値に変更すると、正常に動画を送信することが出来ました。 2019.2以降では正常に動作するみたいです。 2. UnityWebRequestでファイルを送信する 自分用にファイル送信のコード残しておきます。 SendCapture.cs string filePath = "端末のファイルパス"; string fileName = "test" string uploadURL = "https://test.com/xxx" public IEnumerator UploadFile() { byte[] movieByteArray = File.ReadAllBytes(filePath); // formにバイナリデータを追加 WWWForm form = new WWWForm(); form.AddBinaryData("file", movieByteArray, fileName, "video/mp4"); // HTTPリクエストを送る UnityWebRequest request = UnityWebRequest.Post(uploadURL, form);         yield return request.SendWebRequest(); if (request.isNetworkError || request.isHttpError) { // POSTに失敗した場合,エラーログを出力 Debug.Log("responseCode / error : " + request.error); } else { // POSTに成功した場合,レスポンスコードを出力 Debug.Log("responseCode / success : " + request.responseCode); } }
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

iOS9以降はNotificationCenterのremoveObserverは不要になった話

投稿の経緯 業務でNotificationCenterを使うタイミングがあり、公式ドキュメントを見ていると、どうやらiOS9以降はremoveObserverが不要になったことに気付いたので備忘録として投稿。 公式情報 公式ページ にはこのように記載。 If your app targets iOS 9.0 and later or macOS 10.11 and later, and you used addObserver(_:selector:name:object:) to create your observer, you do not need to unregister the observer. If you forget or are unable to remove the observer, the system cleans up the next time it would have posted to it. 翻訳すると? アプリの対象がiOS 9.0以降またはmacOS 10.11以降で、addObserver(_:selector:name:object:)を使ってオブザーバーを作成した場合は、オブザーバーの登録を解除する必要はありません。オブザーバーを忘れたり、削除できなかったりした場合は、次にそのオブザーバーに投稿したであろう時にシステムがクリーンアップします。 とのこと? お知らせ 現在、iOS開発案件を業務委託で募集中です(副業)。TwitterDMでご依頼をお待ちしています。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Bitrise から App Store へアプリをデプロイする

0.はじめに iOS アプリを提供するにあたって、Bitrise を使って、App Store へデプロイする手順を試してみました。 Git リポジトリは、GitHub を利用。 Bitrise の接続先を、AWS CodeCommit から GitHub に変更する - Qiita 1.Worlflows Activate SSH key (RSA private key) : ※デフォルト Git Clone Repository : ※デフォルト Bitrise.io Cache:Pull : ※デフォルト File Downloader Replaces Xcode's project PRODUCT_BUNDLE_IDENTIFIER Set Xcode Project Build Number Set Xcode Plist Value (〜) Script Certificate and profile installer : ※デフォルト Recreate User Schemes Run CocoaPods install Xcode Archive & Export for iOS Deploy to Bitrise.io - Apps, Logs, Artifacts : ※デフォルト Bitrise.io Cache:Push : ※デフォルト Deploy to iTunes Connect - Application Loader File Downloader Input variables Download source url [ダウンロードファイルパス] Download destination path [ダウンロード保存先ファイルパス] Replaces Xcode's project PRODUCT_BUNDLE_IDENTIFIER Input variables Xcode project path $BITRISE_SOURCE_DIR/$BITRISE_XCODEPROJ_PATH New bundle identifier $BUNDLE_IDENTIFIER Set Xcode Project Build Number Input variables Info.plist file path $BITRISE_SOURCE_DIR/$BITRISE_SCHEME/$BITRISE_SCHEME/Info.plist Version Number $CFBundleShortVersionString Set Xcode Plist Value Input variables Info.plist file path $BITRISE_SOURCE_DIR/$BITRISE_SCHEME/$BITRISE_SCHEME/Info.plist Plist key [Info.plist の置換するキー] Plist value [Info.plist の置換するキーの値] Script #!/usr/bin/env bash # fail if any commands fails set -e # debug log set -x # write your script here echo "Hello World!" ls -la ls -la ${BITRISE_SCHEME} ls -la ${BITRISE_XCODEPROJ_PATH} # Code Signing (project.pbxproj) export PROJECT_PBXPROJ_PATH=${BITRISE_XCODEPROJ_PATH}/project.pbxproj sed -i -e 's|DEVELOPMENT_TEAM .*;|DEVELOPMENT_TEAM = [Apple Developers Team ID];|g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|CODE_SIGN_IDENTITY .*;||g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|PROVISIONING_PROFILE .*;||g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|PROVISIONING_PROFILE_SPECIFIER .*;||g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|CODE_SIGN_STYLE .*;|CODE_SIGN_STYLE = Manual;CODE_SIGN_IDENTITY = "iPhone Distribution";PROVISIONING_PROFILE_SPECIFIER = [Code Signing に登録したプロビジョニングファイルの名称];|g' ${PROJECT_PBXPROJ_PATH} cat ${PROJECT_PBXPROJ_PATH} # Info.plist cat ${BITRISE_APP_PATH}/Info.plist cat ${BITRISE_APP_PATH}/GoogleService-Info.plist # Pods Deintegrate & Cache Clean cd ${BITRISE_SCHEME} gem install cocoapods --pre pod deintegrate pod cache clean --all rm -f Podfile.lock ls -la # or run a script from your repository, like: # bash ./path/to/script.sh # not just bash, e.g.: # ruby ./path/to/script.rb Code Signing (project.pbxproj) Code Signing を自動ではなく、指定のプロビジョニングファイルで行う為の設定。 # Code Signing (project.pbxproj) export PROJECT_PBXPROJ_PATH=${BITRISE_XCODEPROJ_PATH}/project.pbxproj sed -i -e 's|DEVELOPMENT_TEAM .*;|DEVELOPMENT_TEAM = [Apple Developers Team ID];|g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|CODE_SIGN_IDENTITY .*;||g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|PROVISIONING_PROFILE .*;||g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|PROVISIONING_PROFILE_SPECIFIER .*;||g' ${PROJECT_PBXPROJ_PATH} sed -i -e 's|CODE_SIGN_STYLE .*;|CODE_SIGN_STYLE = Manual;CODE_SIGN_IDENTITY = "iPhone Distribution";PROVISIONING_PROFILE_SPECIFIER = [Code Signing に登録したプロビジョニングファイルの名称];|g' ${PROJECT_PBXPROJ_PATH} cat ${PROJECT_PBXPROJ_PATH} Pods Deintegrate & Cache Clean CocoaPods をクリーンする。 # Pods Deintegrate & Cache Clean cd ${BITRISE_SCHEME} gem install cocoapods --pre pod deintegrate pod cache clean --all rm -f Podfile.lock Recreate User Schemes Input variables Project or Workspace path $BITRISE_PROJECT_PATH Run CocoaPods install Input variables Podfile path [Podfile のパス] ※例 : $BITRISE_SCHEME/Podfile Xcode Archive & Export for iOS Input variables Select method for export app-store Debug Do a clean Xcode build before the archive? yes Deploy to iTunes Connect - Application Loader Input variables Apple ID: Email $APPLE_ID Apple ID: Password $APPLE_PASSWORD Apple ID: Application-specific password $APPLE_APPLICATION_SPECIFIC_PASSWORD 2.Code Signing PROVISIONING PROFILE 必要なプロビジョニングファイルを登録します。 CODE SIGNING CERTIFICATES 必要な証明書(*.p12)を登録します。 GENERIC FILE STORAGE 今回は、アプリに Firebase ライブラリを利用しているので、構成ファイル(GoogleService-Info.plist)を登録しています。 3.Secrets Secret Environment Variables APPLE_ID App Store へのデプロイに使用される Apple ID APPLE_PASSWORD App Store へのデプロイに使用される Apple ID APPLE_APP_ID アプリ ID APPLE_APPLICATION_SPECIFIC_PASSWORD App Store へのデプロイに使用されるアプリ用のパスワード App 用パスワードを使う - Apple サポート (日本) 4.Env Vars App Environment Variables BITRISE_PROJECT_PATH ワークスペースファイル (*.xcworkspace) のパス BITRISE_PROJECT_PATH プロジェクトファイル (*.xcodeproj) のパス BITRISE_APP_PATH アプリのベースフォルダのパス BITRISE_SCHEME アプリのリソース名称 BUNDLE_IDENTIFIER アプリのバンドルID(Bundle identifier) CFBundleShortVersionString アプリのバージョン ※例 : 1.0.0 5.App Store 確か、こんな感じだった気がする… 【2020年度版】 iOSアプリをApp Storeに公開する手順を簡潔に解説 - Qiita 99.ハマりポイント うーん。覚えてないなぁー XX.まとめ 以前、こちらの記事を書いたんですが、iOS アプリも記事を書こうと思いつつ… だいぶ時間が空きましたが、記事を書くことが出来て良かったです! Bitrise から Google Play へアプリをデプロイする - Qiita では♪ ※参考 : 参考にさせて頂いたサイトがたくさんあったと思うんですが…、すいません、忘れてしまいました…。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

iOS SimulatorがRefreshされ続けた

問題 ExpoのiOS Simulatorを使用していたら、Refreshが繰り返されて先に進めなかった。 環境 M1 mac 11.4 expo 4.3.2 原因 Expoで開いていた開発データが、再起動をきっかけにiCloudと連携されていた。 DesktopやDocumentフォルダが対象として設定されていた。 解決 1.「システム環境設定」から「iCloud」の「オプション」を開く。 2.連携するデータの一覧が出るので、「"デスクトップ"フォルダと"書類"フォルダ」からチェックを外す。 これで解決しない場合は、 iCloud Drive配下から、開発データのファイルをコピーして、ローカルの連携していないフォルダに移す。 お役に立てれば幸いです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む