<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>App Development &#8211; Tjitjing Blog</title>
	<atom:link href="http://localhost/index.php/category/app-development/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.tjitjing.com/</link>
	<description>This is my blog on technology related stuff and on occation other things too...</description>
	<lastBuildDate>Sun, 02 Oct 2022 07:16:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.16</generator>
	<item>
		<title>Capacitor 4 upgrade gives processDebugManifest Android Build error</title>
		<link>https://blog.tjitjing.com/index.php/2022/10/capacitor-4-upgrade-gives-processdebugmanifest-android-build-error.html</link>
					<comments>https://blog.tjitjing.com/index.php/2022/10/capacitor-4-upgrade-gives-processdebugmanifest-android-build-error.html#respond</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Sun, 02 Oct 2022 07:16:47 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Ionic Framework]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[Android Studio]]></category>
		<category><![CDATA[Capacitor]]></category>
		<category><![CDATA[Error Message]]></category>
		<guid isPermaLink="false">https://blog.tjitjing.com/?p=856</guid>

					<description><![CDATA[Check your Cordova plugins if you get :capacitor-cordova-android-plugins:processDebugManifest error after upgrading to Capacitor4 Problem After upgrading to Capacitor 4 everything worked fine when buidling using ionic cap sync (I am using Ionic Framework) and worked fine in Xcode and iOS. However, when building in Android Studio I got this error: :capacitor-cordova-android-plugins:processDebugManifestManifest merger failed with multiple&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2022/10/capacitor-4-upgrade-gives-processdebugmanifest-android-build-error.html">Continue reading <span class="screen-reader-text">Capacitor 4 upgrade gives processDebugManifest Android Build error</span></a>]]></description>
										<content:encoded><![CDATA[
<p><strong>Check your Cordova plugins if you get :capacitor-cordova-android-plugins:processDebugManifest error after upgrading to Capacitor4</strong></p>



<h2>Problem</h2>



<p>After upgrading to Capacitor 4 everything worked fine when buidling using <code>ionic cap sync</code> (I am using Ionic Framework) and worked fine in Xcode and iOS. <strong>However, when building in Android Studio I got this error:</strong></p>



<p><code>:capacitor-cordova-android-plugins:processDebugManifest<br>Manifest merger failed with multiple errors, see logs</code></p>



<h2>Solution</h2>



<p>The error message does not give much of a hint but after lots of trials, I found out that one of my Cordova plugins was the cause. In my case it was <strong>onesignal-cordova-plugin</strong> that was on version 2.11.4 and needed to be upgraded to version 3. So a simple <code>npm i onesignal-cordova-plugin@3</code> solved this problem for me.</p>



<h2>Did this solution help you?</h2>



<p>I hope this helped!&nbsp;<strong>Please comment</strong>&nbsp;if it did, or if you had any problem with it. Also let me know if you got it working (or not) using other versions or if you found a better solution –&nbsp;<strong>it will help me and others!</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2022/10/capacitor-4-upgrade-gives-processdebugmanifest-android-build-error.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Get Capacitor iOS to log to console.app</title>
		<link>https://blog.tjitjing.com/index.php/2022/07/get-capacitor-ios-to-log-to-console-app.html</link>
					<comments>https://blog.tjitjing.com/index.php/2022/07/get-capacitor-ios-to-log-to-console-app.html#respond</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Mon, 11 Jul 2022 09:11:08 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Ionic Framework]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[Capacitor]]></category>
		<category><![CDATA[console.app]]></category>
		<category><![CDATA[Ionic]]></category>
		<category><![CDATA[iOs]]></category>
		<guid isPermaLink="false">https://blog.tjitjing.com/?p=843</guid>

					<description><![CDATA[Solution on how to get Capacitor to log to the iOS Device log / Native log that can be read from console.app. This is a must if you need to debug an approved and published App Store production app. Problem with Capacitor logging Capacitor only logs to the Xcode console (or Safari console) but not&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2022/07/get-capacitor-ios-to-log-to-console-app.html">Continue reading <span class="screen-reader-text">Get Capacitor iOS to log to console.app</span></a>]]></description>
										<content:encoded><![CDATA[
<p><strong>Solution on how to get Capacitor to log to the iOS Device log / Native log that can be read from console.app. This is a must if you need to debug an approved and published App Store production app.</strong></p>



<h2>Problem with Capacitor logging</h2>



<p>Capacitor only logs to the Xcode console (or Safari console) but not to the iOS device console (aka the native log), for example from your <strong>Capacitor plugins</strong> or <strong>Cordova plugins</strong>, or <strong>console.log</strong> and <strong>console.debug</strong> statements in your code.</p>



<p>Having the debug log in Xcode or Safari only is fine when debugging during development or in Testflight. But once your app is published to the AppStore and has some specific error that does not show in dev or Testflight, you need to have log write to the iOS device log, which can be read by <strong>console.app on your Mac</strong>. </p>



<h2>Solution</h2>



<p>There is a <a rel="noreferrer noopener" href="https://github.com/ionic-team/capacitor/issues/2320" target="_blank">Capacitor feature request</a> regarding this but if you don&#8217;t want to wait for that, this is <strong>how to quickly fix it in your project</strong>:</p>



<ol><li>Open the file capacitor/ios/Capacitor/Capacitor/CAPLog.swift either from your favourite editor or directly in Xcode.</li><li>Comment out the line starting with Swift.print</li><li>Instead add the line: NSLog(String(describing: item))</li></ol>



<pre class="wp-block-code"><code>public class CAPLog {
    public static var enableLogging: Bool = true

    public static func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
        if enableLogging {
            for (itemIndex, item) in items.enumerated() {
                //Swift.print("\(item)".prefix(4068), terminator: itemIndex == items.count - 1 ? terminator : separator)
                NSLog(String(describing: item))
            }
        }
    }
}</code></pre>



<p>Now you are ready to build and upload to Apple App Store. Once approved by Apple, start debugging your production build in console.app.</p>



<p>This was tested using Capacitor 3.6.0 / @capacitor/ios 3.6.0 (on an Ionic Framework 6 project)</p>



<h3>Note on performance</h3>



<p>Swift.print is a more resource effective, but also more limited, way of logging. I doubt that this has much practical impact, but this is something to consider, you may want to revert back to Swift.print after you&#8217;re done debugging. </p>



<h3>Note on logging</h3>



<p>I used NSLog but there are also other ways to use logging that you may want to look into. For example Logger and Apple&#8217;s concept of <a rel="noreferrer noopener" href="https://developer.apple.com/documentation/os/logging" data-type="URL" data-id="https://developer.apple.com/documentation/os/logging" target="_blank">Universal logging / Unified logging system</a>.</p>



<p></p>



<h2>Did this solution help you?</h2>



<p>I hope this helped!&nbsp;<strong>Please comment</strong>&nbsp;if it did, or if you had any problem with it. Also let me know if you got it working (or not) using other versions or if you found a better solution –&nbsp;<strong>it will help me and others!</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2022/07/get-capacitor-ios-to-log-to-console-app.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Auto-increment build number in Xcode 11 / Xcode 12</title>
		<link>https://blog.tjitjing.com/index.php/2021/09/auto-increment-build-number-in-xcode-11-xcode-12.html</link>
					<comments>https://blog.tjitjing.com/index.php/2021/09/auto-increment-build-number-in-xcode-11-xcode-12.html#comments</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Tue, 14 Sep 2021 06:12:09 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[avgtool]]></category>
		<category><![CDATA[CFBundleVersion]]></category>
		<category><![CDATA[Info.plist]]></category>
		<category><![CDATA[pbxproj]]></category>
		<category><![CDATA[Xcode 11]]></category>
		<category><![CDATA[Xcode 12]]></category>
		<guid isPermaLink="false">https://blog.tjitjing.com/?p=818</guid>

					<description><![CDATA[Xcode 11 moved version handling to the .pbxproj file, in addition to Info.plist, which broke my script to automatically increase build number on each build. Solution for Xcode 11/12 is shown below. Background &#8211; pre Xcode 11 / Xcode 12 Before Xcode 11 the &#8220;normal&#8221; way to auto increment build number was to read current&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2021/09/auto-increment-build-number-in-xcode-11-xcode-12.html">Continue reading <span class="screen-reader-text">Auto-increment build number in Xcode 11 / Xcode 12</span></a>]]></description>
										<content:encoded><![CDATA[
<p><strong>Xcode 11 moved version handling to the .pbxproj file, in addition to Info.plist, which broke my script to automatically increase build number on each build. Solution for Xcode 11/12 is shown below.</strong></p>



<h2>Background &#8211; pre Xcode 11 / Xcode 12</h2>



<p>Before Xcode 11 the &#8220;normal&#8221; way to auto increment build number was to read current build number from <strong>Info.plist</strong> using the MacOS PlistBuddy tool and then increment that number and write the updated build number back to Info.plist, again using PlistBuddy. Or you could use avgtool or some 3rd party solution.</p>



<p>However, with Xcode11 (and currently Xcode12) version number and buildnumber are set in the <strong>pbxproj</strong> file, and Info.plist only reference what is set in pbxproj.</p>



<p>This change got my old script to generate an error on build: <strong>Command PhaseScriptExecution failed with a nonzero exit code</strong></p>



<pre class="wp-block-preformatted">$(CURRENT_PROJECT_VERSION) + 1: syntax error: operand expected (error token is "$(CURRENT_PROJECT_VERSION) + 1")<br>Command PhaseScriptExecution failed with a nonzero exit code</pre>



<p>This is what Info.plist now looks like in Xcode11 / Xcode12, i.e. there is no longer an actual build number to read from Info.plist, only a reference to what is set in the pbxproj file.</p>



<pre class="wp-block-preformatted">&lt;key&gt;CFBundleShortVersionString&lt;/key&gt; 
&lt;string&gt;$(MARKETING_VERSION)&lt;/string&gt; 

&lt;key&gt;CFBundleVersion&lt;/key&gt;
&lt;string&gt;$(CURRENT_PROJECT_VERSION)&lt;/string&gt;</pre>



<h2>Solution for Xcode 11 / Xcode 12</h2>



<p>So, in Xcode 11/12 we now need to update the pbxproj file instead of Info.plist.</p>



<p><strong>Use this script to auto increment build number:</strong></p>



<pre class="wp-block-preformatted">buildNumber=$(xcodebuild -showBuildSettings | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION =')
buildNumber=`echo $buildNumber +1|bc`
xcrun agvtool new-version $buildNumber</pre>



<p><strong>To add the script in Xcode 12, follow these steps:</strong></p>



<ol><li>Select your Project Target (Target, not Project)</li><li>Select Build Phases</li><li>Add a new Build Phase by clicking the plus (+) icon on top left</li><li>If you wish you can rename the new Build phase, e.g. Set Build Number</li><li>Copy the script above and paste it</li><li>You can leave all other Build Phase settings as default</li><li>Done &#8211; Build your project and watch build number increment with 1 for each build</li></ol>



<p>This was latest tested on Xcode 12.5 and macOS Big Sur 11.5.2 on a MacBook Air M1</p>



<h2>Did this solution help you?</h2>



<p>I hope this helped! <strong>Please comment</strong> if it did, or if you had any problem with it. Also let me know if you got it working (or not) using other versions or if you found a better solution – <strong>it will help me and others!</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2021/09/auto-increment-build-number-in-xcode-11-xcode-12.html/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>How to use iOS device settings for language in Ionic 5 / Cordova</title>
		<link>https://blog.tjitjing.com/index.php/2021/03/how-to-use-ios-device-settings-for-language-in-ionic-5-cordova.html</link>
					<comments>https://blog.tjitjing.com/index.php/2021/03/how-to-use-ios-device-settings-for-language-in-ionic-5-cordova.html#respond</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Sun, 21 Mar 2021 08:27:44 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Ionic Framework]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[Globalization]]></category>
		<category><![CDATA[Ionic5]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Locale]]></category>
		<category><![CDATA[Localization]]></category>
		<guid isPermaLink="false">https://blog.tjitjing.com/?p=815</guid>

					<description><![CDATA[How do set language for context menus (select all, cut, copy, paste&#8230;), file upload, camera dialogues and other iOS or plugin functionality that is outside of your core project? The answer is CFBundleDevelopmentRegion set in info.plist It seems CFBundleDevelopmentRegion is always set to en_US by default (or maybe this is because I build on a&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2021/03/how-to-use-ios-device-settings-for-language-in-ionic-5-cordova.html">Continue reading <span class="screen-reader-text">How to use iOS device settings for language in Ionic 5 / Cordova</span></a>]]></description>
										<content:encoded><![CDATA[
<p>How do set language for context menus (select all, cut, copy, paste&#8230;), file upload, camera dialogues and other iOS or plugin functionality that is outside of your core project?</p>



<p>The answer is CFBundleDevelopmentRegion set in info.plist</p>



<p>It seems CFBundleDevelopmentRegion is always set to en_US by default (or maybe this is because I build on a laptop that has these settings) thus showing context menus, file upload dialog etc in English.</p>



<p>I found that <strong>setting CFBundleDevelopmentRegion to empty uses device settings for language.</strong></p>



<p>It seems making the change directly in Xcode does not work for some reason.</p>



<p>Put this in your config.xml ios section.</p>



<pre class="wp-block-code"><code><code>&lt;platform name="ios">
   &lt;config-file parent="CFBundleDevelopmentRegion" target="*-Info.plist">
        &lt;array>
            &lt;string />
        &lt;/array>
    &lt;/config-file>
&lt;/platform></code>
</code></pre>



<p>Note that some plugins seem to set language, so if you cannot get this to work, check your plugins. This was tested in Ionic 5 / Angular / Cordova.</p>



<p>Thanks to <a rel="noreferrer noopener" href="https://stackoverflow.com/a/55729308/2820510" data-type="URL" data-id="https://stackoverflow.com/a/55729308/2820510" target="_blank">Maximillion Bartango on SO</a> for putting me on the right track.</p>



<p>Please comment if this worked for you or if you have problems or other solutions.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2021/03/how-to-use-ios-device-settings-for-language-in-ionic-5-cordova.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instruction for Apple App Store upload (from an App Developer to Client)</title>
		<link>https://blog.tjitjing.com/index.php/2020/02/instruction-for-apple-app-store-upload-from-an-app-developer-to-client.html</link>
					<comments>https://blog.tjitjing.com/index.php/2020/02/instruction-for-apple-app-store-upload-from-an-app-developer-to-client.html#respond</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Wed, 12 Feb 2020 22:27:43 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[App Store]]></category>
		<category><![CDATA[App Upload]]></category>
		<category><![CDATA[Apple Developer]]></category>
		<category><![CDATA[Instruction]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://blog.tjitjing.com/?p=806</guid>

					<description><![CDATA[This is a blog post I wrote at my company web site MobilApp.nu (mobile app development) It is aimed for our customers, who are mainly non-developers, on the steps for first time setup Apple Developer and App Store Connect for us to be able to sign and upload apps that we have developed for them.&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2020/02/instruction-for-apple-app-store-upload-from-an-app-developer-to-client.html">Continue reading <span class="screen-reader-text">Instruction for Apple App Store upload (from an App Developer to Client)</span></a>]]></description>
										<content:encoded><![CDATA[
<p>This is a blog post I wrote at my company web site <a rel="noreferrer noopener" aria-label="MobilApp.nu (mobile app development) (opens in a new tab)" href="https://mobilapp.nu/" target="_blank">MobilApp.nu (mobile app development)</a></p>



<p>It is aimed for our customers, who are mainly non-developers, on the steps for first time setup Apple Developer and App Store Connect for us to be able to sign and upload apps that we have developed for them. But it should be usable for any non-developer or developer in that same situation.</p>



<pre class="wp-block-preformatted"><a href="https://www.mobilapp.nu/2020/02/12/tutorial-add-your-app-to-apple-app-store-preparations-for-non-developers/" target="_blank" rel="noreferrer noopener" aria-label="https://www.mobilapp.nu/2020/02/12/tutorial-add-your-app-to-apple-app-store-preparations-for-non-developers/ (opens in a new tab)">https://www.mobilapp.nu/2020/02/12/tutorial-add-your-app-to-apple-app-store-preparations-for-non-developers/</a></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2020/02/instruction-for-apple-app-store-upload-from-an-app-developer-to-client.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial: Sign in with Apple (SIWA) and Ionic, Cordova, AngularFire, Firebase</title>
		<link>https://blog.tjitjing.com/index.php/2020/01/tutorial-sign-in-with-apple-siwa-and-ionic-cordova-angularfire-firebase.html</link>
					<comments>https://blog.tjitjing.com/index.php/2020/01/tutorial-sign-in-with-apple-siwa-and-ionic-cordova-angularfire-firebase.html#comments</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Wed, 29 Jan 2020 13:14:22 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Ionic Framework]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Xcode]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Angular]]></category>
		<category><![CDATA[AngularFire]]></category>
		<category><![CDATA[AngularFire2]]></category>
		<category><![CDATA[Firebase]]></category>
		<category><![CDATA[Ionic]]></category>
		<category><![CDATA[Ionic4]]></category>
		<category><![CDATA[iOs]]></category>
		<category><![CDATA[Sign in with Apple]]></category>
		<category><![CDATA[SIWA]]></category>
		<guid isPermaLink="false">http://blog.tjitjing.com/?p=794</guid>

					<description><![CDATA[Since a few months back Apple does not approve apps that have only social media login (ie not good old fashioned username and password) unless it also has &#8220;Sign in with Apple&#8221; (SIWA) All this is probably too new for it to be any good tutorials or examples available, at least I could not find&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2020/01/tutorial-sign-in-with-apple-siwa-and-ionic-cordova-angularfire-firebase.html">Continue reading <span class="screen-reader-text">Tutorial: Sign in with Apple (SIWA) and Ionic, Cordova, AngularFire, Firebase</span></a>]]></description>
										<content:encoded><![CDATA[
<p>Since a few months back Apple does not approve apps that have only social media login (ie not good old fashioned username and password) unless it also has &#8220;<strong>Sign in with Apple</strong>&#8221; (SIWA)</p>



<p>All this is probably too new for it to be any good tutorials or examples available, at least I could not find any and I spent quite some time looking. I also spent quite a few hours getting it to work, but here it is: </p>



<h2>Solution</h2>



<p>I used the plugin <a href="https://github.com/pscsrv/cordova-plugin-apple-login" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">cordova-plugin-apple-login</a> (version 1.0.0) so go ahead and install it using:</p>



<pre class="wp-block-preformatted">npm i cordova-plugin-apple-login<br>ionic cordova plugin add cordova-plugin-apple-login</pre>



<p>Note that there is no Ionic Native wrapper for the plugin, so you have to declare it instead of importing it on your page:</p>



<pre class="wp-block-preformatted">declare var SignInWithApple: any;</pre>



<p>This is the login function:</p>



<pre class="wp-block-preformatted"> loginWithApple() {<br><br>    SignInWithApple.request({requestedScopes: [ SignInWithApple.Scope.Email, SignInWithApple.Scope.FullName ]})<br>    .then((appleCredential) =&gt; {<br>      const credential =  new firebase.auth.OAuthProvider('apple.com').credential(appleCredential.identityToken);<br>      this.afAuth.auth.signInWithCredential(credential)<br>      .then((response) =&gt; {<br>        console.log('Login successful');<br>      })<br>      .catch((error) =&gt; {<br>        console.log(error);<br>        alert('error:' + JSON.stringify(error));<br>      });<br>    });<br><br>  }</pre>



<p>This was done using Ionic 4 / Angular, AngularFire2 5.30 and the cordova-plugin-apple-login 1.0.0</p>



<h2>Configuration</h2>



<p>You also have to do some configurations&#8230;</p>



<p>-&gt; Xcode: Add capability for Sign in with Apple<br>-&gt; Apple Developer:&nbsp;<a href="https://developer.apple.com/account/resources/identifiers/serviceId/add/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Add Services id</a><br>-&gt; Firebase console: Add Sign-in method for Apple, leave all fields blank if you only use on iOS</p>



<p>If you want to support Android and or Web / PWA, you will need to do some more configuring.</p>



<h2>Did this solution help you?</h2>



<p>Please comment if it did, or if you had a problem with it. Also if you got it working (or not) using other versions of plugins, frameworks etc or if you found a better solution – it will help others! </p>



<p>P.s. I also posted this solution to <a href="https://stackoverflow.com/a/59967026/2820510" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Stack Overflow</a> (my first anwer there, yay!)</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2020/01/tutorial-sign-in-with-apple-siwa-and-ionic-cordova-angularfire-firebase.html/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Ionic Cordova Error &#8211; ENOENT: no such file or directory</title>
		<link>https://blog.tjitjing.com/index.php/2018/12/ionic-cordova-error-enoent-no-such-file-or-directory.html</link>
					<comments>https://blog.tjitjing.com/index.php/2018/12/ionic-cordova-error-enoent-no-such-file-or-directory.html#respond</comments>
		
		<dc:creator><![CDATA[Max]]></dc:creator>
		<pubDate>Fri, 28 Dec 2018 14:14:53 +0000</pubDate>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Ionic]]></category>
		<guid isPermaLink="false">http://blog.tjitjing.com/?p=787</guid>

					<description><![CDATA[When trying to build (&#8220;ionic cordova build ios&#8221;) my Ionic Cordova project, I got this error: &#8220;Error: ENOENT: no such file or directory&#8220;. Took me awhile to figure out since I had just copied the project from an older project, made a few changes etc. Turns out the cause was that I had used a&#8230; <a class="more-link" href="https://blog.tjitjing.com/index.php/2018/12/ionic-cordova-error-enoent-no-such-file-or-directory.html">Continue reading <span class="screen-reader-text">Ionic Cordova Error &#8211; ENOENT: no such file or directory</span></a>]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>When trying to build (&#8220;ionic cordova build ios&#8221;) my Ionic Cordova project, I got this error: &#8220;<strong>Error: ENOENT: no such file or directory</strong>&#8220;.</p>



<p>Took me awhile to figure out since I had just copied the project from an older project, made a few changes etc. Turns out the cause was that I had used a slash (&#8220;/&#8221;) in the app <strong>name in config.xml</strong>, changing the name fixed the issue.</p>



<p>[code]Copying iOS template project to /xxx/platforms/ios<br>shell.js: internal error<br>Error: ENOENT: no such file or directory, rename &#8216;/xxx/platforms/ios/__TEMP__.xcodeproj&#8217; -> &#8216;/xxx/platforms/ios/project/name.xcodeproj&#8217;<br>at Object.renameSync (fs.js:594:3)<br>at /xxx/node_modules/cordova-ios/node_modules/shelljs/src/mv.js:77:8<br>at Array.forEach (&lt;anonymous>)<br>at Object._mv (/xxx/node_modules/cordova-ios/node_modules/shelljs/src/mv.js:53:11)<br>at Object.mv (/xxx/node_modules/cordova-ios/node_modules/shelljs/src/common.js:186:23)<br>at copyTemplateFiles (/xxx/node_modules/cordova-ios/bin/lib/create.js:124:11)<br>at Object.exports.createProject (/xxx/node_modules/cordova-ios/bin/lib/create.js:228:5)<br>at Api.createPlatform (/xxx/node_modules/cordova-ios/bin/templates/scripts/cordova/Api.js:122:14)<br>at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/platform/addHelper.js:188:28<br>at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:854:54<br>[ERROR] An error occurred while running subprocess cordova.<br>cordova platform add ios &#8211;verbose &#8211;save exited with exit code 1.<br>Re-running this command with the &#8211;verbose flag may provide more information. [/code]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tjitjing.com/index.php/2018/12/ionic-cordova-error-enoent-no-such-file-or-directory.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
